Kerasにおける「Tokenizer」と「pad_sequences」は、自然言語処理(NLP)でテキストデータをニューラルネットワークに入力できる数値形式に変換するための基本的な前処理ツールです。以下にそれぞれの役割と使い方を詳しく説明します。
1. Tokenizerとは
Tokenizerは、テキストを整数の列に変換するためのユーティリティクラスです。各単語や文字に対して一意のインデックス(トークン)を割り当てます。
主な機能
-
語彙の構築(頻度に基づいてインデックスを付与)
-
テキストの整数シーケンス化(数値のリストに変換)
-
ワンホットエンコーディングの生成(必要に応じて)
-
単語とインデックスの相互変換(
word_indexやindex_word)
使い方
2. pad_sequencesとは
pad_sequencesは、長さが異なるシーケンスを指定した長さに揃えるための関数です。ニューラルネットワークでは入力の次元を固定する必要があるため、短いシーケンスにはパディング(補完)を、長いシーケンスにはカット(切り捨て)を行います。
主な引数
-
sequences: リストのリスト(各リストは整数のトークン列) -
maxlen: 出力の長さ(指定しない場合は最長のシーケンスに合わせる) -
padding:'pre'または'post'(前か後にパディング) -
truncating:'pre'または'post'(前か後を切り捨てる) -
value: パディングに使う数値(デフォルトは0)
使い方
3. 一連のテキスト前処理フロー(まとめ)
4. 注意点
-
Tokenizerはデフォルトで小文字変換や句読点の除去を行う英語向け仕様。日本語では事前に形態素解析(例:MeCabやJanome)が必要な場合もあります。 -
語彙数が多い場合は
num_wordsで制限し、未知語への対応も検討します(oov_token引数を活用)。
5. 実用例(分類タスク前処理)
このように、Tokenizerとpad_sequencesを組み合わせることで、任意の長さのテキストデータをニューラルネットワークが処理可能な形式に前処理することができます。必要に応じて形態素解析や前処理関数と組み合わせることで、さらに高度なテキスト処理が可能です。
生成日:2025/05/22