python関数-Keras分詞器Tokenizer


文書ディレクトリ
  • 0. 前言
  • 1. 構文
  • 1.1構造パラメータ
  • 1.2戻り値
  • 1.3類方法
  • 1.4属性
  • 2. 簡単な例
  • 3. 共通例
  • python関数シリーズディレクトリ:python関数-ディレクトリ
    0.はじめにTokenizerは、テキストを量子化したり、テキストをシーケンス(すなわち、単一の単語および対応する下付き文字からなるリスト)に変換したりするためのクラスである.は、テキストの前処理に使用される最初のステップです.分詞です.簡単なイメージの例を組み合わせるともっと理解しやすくなります.
    1.構文
    公式文法は次の1つです.
    Code.1.1分詞器Tokenizer構文
    keras.preprocessing.text.Tokenizer(num_words=None,
                                       filters='!"#$%&()*+,-./:;<=>?@[\]^_`{|}~\t
    '
    , lower=True, split=" ", char_level=False)

    1.1構築パラメータ
  • num_words:デフォルトではNoneがすべての単語を処理しますが、整数に設定すると、最も一般的で、最も頻度の高いnum_wordsの単語が最後に返されます.
  • filters:いくつかの特殊な文字をフィルタして、デフォルトの上記の書き方でいいです.
  • lower:すべて小文字に変換
  • split:文字列、単語の区切り記号、例えばスペース
  • 1.2戻り値
    文字列リスト
    1.3種類の方法
    次のセクションでは、関連するクラスメソッドについて説明します.
    方法
    パラメータ
    戻り値
    fit_on_texts(texts)
    texts:訓練に使用するテキストリスト
    -
    texts_to_sequences(texts)
    texts:シーケンスに変換するテキストリスト
    各シーケンスが入力テキストに対応するシーケンスのリスト
    texts_to_sequences_generator(texts)
    texts:シーケンスに変換するテキストリスト
    この関数はtexts_to_sequencesのジェネレータ関数版は、呼び出しのたびに入力テキストに対応するシーケンスを返す
    texts_to_matrix(texts, mode)
    texts:量子化されるテキストのリスト;mode:『binary』,『count』,『tfidf』,『freq』の1つで、デフォルトは『binary』
    形は(len(texts)、nb_words)のnumpy array
    fit_on_sequences(sequences)
    sequences:トレーニングに使用するシーケンスのリスト
    -
    sequences_to_matrix(sequences)
    sequences:量子化されるシーケンスのリスト;mode:『binary』,『count』,『tfidf』,『freq』の1つで、デフォルトは『binary』
    戻り値:たとえば(len(sequences)、nb_words)のnumpy array
    1.4属性
  • word_counts:辞書は、単語(文字列)を訓練中に現れる回数にマッピングします.fit_on_textsが呼び出された後にのみ設定されます.
  • word_docs:単語(文字列)をトレーニング中に表示されるドキュメントまたはテキストの数にマッピングする辞書.fit_on_textsが呼び出された後にのみ設定されます.
  • word_index:辞書は、単語(文字列)をランキングまたはインデックスにマッピングします.fit_on_textsが呼び出された後にのみ設定されます.
  • document_count:整数.分詞器が訓練されたドキュメント(テキストまたはシーケンス)の数.fit_on_textsまたはfit_on_sequencesが呼び出された後にのみ設定されます.

  • 2.簡単な例
    Code.2.1簡単な例
    >>>from keras.preprocessing.text import Tokenizer
    Using TensorFlow backend.
    
    #        Tokenizer   
    >>>tokenizer = Tokenizer()
    
    #  text
    >>>text = ["           ", "       "]
    
    #  fit_on_texts   
    >>>tokenizer.fit_on_texts(text)
    
    #  word_counts  
    >>>tokenizer.word_counts
    OrderedDict([('  ', 2),
                 ('  ', 1),
                 (' ', 1),
                 (' ', 1),
                 (' ', 2),
                 (' ', 1),
                 ('  ', 1)])
    
    #  word_docs  
    >>>tokenizer.word_docs
    defaultdict(int, {' ': 1, '  ': 1, '  ': 2, ' ': 1, ' ': 2, ' ': 1, '  ': 1})
    
    #  word_index  
    >>>tokenizer.word_index
    {'  ': 1, ' ': 2, '  ': 3, ' ': 4, ' ': 5, ' ': 6, '  ': 7}
    
    #  document_count  
    >>>tokenizer.document_count
    2
    

    3.一般的な例
    また、上記のtokenizerのオブジェクトに基づいて、texts_to_sequences()メソッドとシーケンス前処理メソッドkeras.preprocessing.sequence.pad_sequencesとを併用することが多いpad_sequencesの使用方法についてはpython関数-シーケンス前処理pad_を参照してください.シーケンスパディング
    Code.3.1一般的な例
    >>>tokenizer.texts_to_sequences(["        "])
    [[4, 5, 6, 7]]
    
    >>>keras.preprocessing.sequence.pad_sequences(tokenizer.texts_to_sequences(["        "]), maxlen=20)
    array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7]],dtype=int32)
    

    https://keras-cn.readthedocs.io/en/latest/preprocessing/text/#_1 ↩︎