Text Preprocessing

Tokenizer

keras.preprocessing.text.Tokenizer(num_words=None, filters='!"#$%&()*+,-./:;<=>?@[\\]^_`{|}~\t\n', lower=True, split=' ', char_level=False, oov_token=None, document_count=0)

テキストをトークン化するユーティリティクラス.

このクラスは,各テキストを整数の列(各整数はは辞書におけるトークンのインデックス)または単語のカウントやtf-idfなどに基づいて各トークンをバイナリとした係数からなるベクトルに変換することで,テキストコーパスをベクトル化します.

テキストをベクトル化する,または/かつ,テキストをシーケンス(= データセット中でランクi(1から始まる)の単語がインデックスiを持つ単語インデックスのリスト)に変換するクラス.

引数

  • num_words: 利用する単語の最大数で単語の頻度に基づきます.一般的にはnum_words-1が用いられます.
  • filters: テキストからフィルタする文字の要素からなる文字列.デフォルトでは全ての句読点に加えてタブや開業,マイナス,'文字です.
  • lower: 真理値.テキストを小文字にするかどうか.
  • split: 文字列.単語を分割するセパレータ.
  • char_level: Trueなら,全文字はトークンとして扱われます.
  • oov_token: 与えられた場合,単語のインデックスに付与され,text_to_sequenceが呼ばれた時に語彙にない単語を入れ替えるために使われます.

デフォルトでは全ての句読点は削除され,('文字は含まれるかもしれませんが)スペースで区切られた単語の列に変換されます.これらの列はトークンのリストに分割されます.これらは更にインデックス化またはベクトル化されます.

0はどの単語にも割り当てられない予約済みのインデックスです.


hashing_trick

keras.preprocessing.text.hashing_trick(text, n, hash_function=None, filters='!"#$%&()*+,-./:;<=>?@[\\]^_`{|}~\t\n', lower=True, split=' ')

テキストを固定長のハッシュ空間におけるインデックスの系列に変換します.

引数

  • text: 入力テキスト(文字列).
  • n: ハッシュ空間の次元数.
  • hash_function: デフォルトはpythonのhash関数で,'md5'か文字列を整数に変換する任意の関数にもできます.'hash'は安定したハッシュ関数ではないことに注意してください.そのため,実行ごとに一貫しません.一方で'md5'は安定なハッシュ関数です.
  • filters: 句読点などフィルタする文字を含むリスト(あるいはコレクション).デフォルトは基本的な句読点,タブ,改行を含む!"#$%&()*+,-./:;<=>?@[\]^_{|}~\t\n`です.
  • lower: 真理値.テキストを小文字にするかどうか.
  • split: 文字列.単語を分割するセパレータ.

戻り値

単語のインデックスを表す整数のリスト(単一性を保証しない).

0はどの単語にも割り当てられない予約済みのインデックスです.

ハッシュ関数の衝突の可能性があるため,2つ以上の単語が同じインデックスに割り当てられるかもしれません.この衝突の可能性はハッシュ空間の次元と固有のオブジェクトの数に関係しています.


one_hot

keras.preprocessing.text.one_hot(text, n, filters='!"#$%&()*+,-./:;<=>?@[\\]^_`{|}~\t\n', lower=True, split=' ')

文章を単語インデックス(語彙数n)のリストにone-hotエンコードします.

ハッシュ関数としてhashを使用するhashing_trickのラッパーです.単語の単一性の保証はしません.

引数

  • text: 入力テキスト(文字列).
  • n: 整数.語彙数.
  • filters: 句読点などフィルタする文字を含むリスト(あるいはコレクション).デフォルトは基本的な句読点,タブ,改行を含む!"#$%&()*+,-./:;<=>?@[\]^_{|}~\t\n`です.
  • lower: 真理値.テキストを小文字にするかどうか.
  • split: 文字列.単語を分割するセパレータ.

戻り値

[1, n]の整数から構成されるリスト.各整数は単語をエンコードします(単一性は保証されません).


text_to_word_sequence

keras.preprocessing.text.text_to_word_sequence(text, filters='!"#$%&()*+,-./:;<=>?@[\\]^_`{|}~\t\n', lower=True, split=' ')

文章を単語(またはトークン)のリストに分割します.

  • 引数

  • text: 入力テキスト(文字列).

  • filters: 句読点のようなフィルタする文字を含むリスト(あるいは連結文字列).デフォルトは基本的な句読点,タブ,改行を含む!"#$%&()*+,-./:;<=>?@[\]^_{|}~\t\n`です.
  • lower: 真理値.テキストを小文字にするかどうか.
  • split: 文字列.単語を分割するセパレータ.

戻り値

単語(またはトークン)のリスト.