TensorFlow によるテキストおよび自然言語処理

テキストデータでモデルをトレーニングする前に、通常はテキストを処理(または前処理)する必要があります。多くの場合、テキストをモデルに入力する前にトークン化とベクトル化を行う必要があり、場合によっては正規化や特徴選択などの追加の前処理手順が必要になることもあります。

テキストを適切な形式に処理した後、テキスト分類、テキスト生成、要約、翻訳などの自然言語処理 (NLP) ワークフローで使用できます。

TensorFlow は、テキストおよび自然言語処理用の 2 つのライブラリ、KerasNLP ( GitHub ) と TensorFlow Text ( GitHub ) を提供します。

KerasNLPは、最新のトランスフォーマーベースのモデルと低レベルのトークン化ユーティリティをすべて備えた、高レベルのNLPモデリングライブラリです。ほとんどのNLPユースケースに推奨されるソリューションです。TensorFlow Textをベースに構築されたKerasNLPは、低レベルのテキスト処理操作を使いやすさを重視したAPIに抽象化しています。Keras APIを使いたくない場合や、低レベルのテキスト処理操作にアクセスする必要がある場合は、TensorFlow Textを直接使用できます。

ケラスNLP

TensorFlow でテキスト処理を始める最も簡単な方法は、 KerasNLPを使用することです。KerasNLP は、最先端のプリセット重みとアーキテクチャを備えたモジュール式コンポーネントから構築されたワークフローをサポートする自然言語処理ライブラリです。KerasNLP コンポーネントは、すぐに使用できる設定で使用できます。より詳細な制御が必要な場合は、コンポーネントを簡単にカスタマイズできます。KerasNLP はすべてのワークフローにグラフ内計算を提供するため、TensorFlow エコシステムを使用して容易に本番環境に移行できます。

KerasNLPには、 BERTFNetといった一般的なモデルアーキテクチャのエンドツーエンド実装が含まれています。KerasNLPのモデル、レイヤー、トークナイザーを使用することで、機械翻訳テキスト生成テキスト分類Transformerモデルのトレーニングなど、最先端のNLPワークフローを数多く実行できます。

KerasNLPはコアKeras APIの拡張であり、高レベルKerasNLPモジュールはすべてLayerまたはModelです。Kerasに精通している方は、KerasNLPの大部分を既に理解していることになります。

TensorFlowテキスト

KerasNLPは、レイヤーまたはモデルとして利用可能な高レベルのテキスト処理モジュールを提供します。低レベルのツールが必要な場合は、 TensorFlow Textを使用できます。TensorFlow Text は、生のテキスト文字列やドキュメントの処理に役立つ演算とライブラリを提供します。TensorFlow Text は、テキストベースのモデルで一般的に必要とされる前処理を実行できるだけでなく、シーケンスモデリングに役立つその他の機能も備えています。

TensorFlow Text を使用すると、次のことが可能になります。

  • 文字列を空白で分割したり、単語や句読点を分離したり、トークンとともにバイト オフセットを返したりできる機能豊富なトークナイザーを適用して、ソース テキスト内の文字列の所在地を把握できるようにします。
  • トークンが指定された文字列パターンに一致するかどうかを確認します。大文字、句読点、数値データ、その他のトークンの特徴をチェックできます。
  • トークンを n-gram に結合します。
  • TensorFlow グラフ内のテキストを処理して、トレーニング中のトークン化が推論時のトークン化と一致するようにします。

どこから始めるか

次のリソースは、TensorFlow テキスト処理を開始するのに役立ちます。