テキスト データでモデルをトレーニングする前に、通常はテキストを処理 (または前処理) する必要があります。多くの場合、テキストをモデルにフィードする前に、テキストをトークン化してベクトル化する必要があり、場合によっては、テキストに正規化や特徴選択などの追加の前処理ステップが必要になります。
テキストが適切な形式に処理された後は、テキスト分類、テキスト生成、要約、翻訳などの自然言語処理 (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 には、 BERTやFNetなどの一般的なモデル アーキテクチャのエンドツーエンド実装が含まれています。 KerasNLP モデル、レイヤー、トークナイザーを使用すると、機械翻訳、テキスト生成、テキスト分類、トランスフォーマー モデルのトレーニングなど、多くの最先端の NLP ワークフローを完了できます。
KerasNLP はコア Keras API の拡張機能であり、すべての高レベルの KerasNLP モジュールはLayer
またはModel
です。 Keras に精通している場合は、KerasNLP のほとんどをすでに理解しています。
TensorFlow テキスト
KerasNLP は、レイヤーまたはモデルとして利用できる高レベルのテキスト処理モジュールを提供します。下位レベルのツールにアクセスする必要がある場合は、 TensorFlow Textを使用できます。 TensorFlow Text は、生のテキスト文字列とドキュメントの操作に役立つオペレーションとライブラリを提供します。 TensorFlow Text は、テキストベースのモデルで定期的に必要とされる前処理を実行でき、シーケンス モデリングに役立つその他の機能も備えています。
TensorFlow Text を使用すると、次のことができます。
- 文字列を空白で分割し、単語と句読点を分離し、トークンを使用してバイト オフセットを返すことができる機能豊富なトークナイザーを適用することで、ソース テキスト内の文字列がどこにあるかを知ることができます。
- トークンが指定された文字列パターンと一致するかどうかを確認します。大文字、句読点、数値データ、その他のトークンの特徴を確認できます。
- トークンを N グラムに結合します。
- TensorFlow グラフ内のテキストを処理して、トレーニング中のトークン化が推論時のトークン化と一致するようにします。
どこから始めれば
次のリソースは、TensorFlow テキスト処理を開始するのに役立ちます。
- TensorFlow Text : TensorFlow Text と KerasNLP を使用してテキストを処理するのに役立つチュートリアル、ガイド、およびその他のリソース。
- KerasNLP : KerasNLP のドキュメントとリソース。
- TensorFlow チュートリアル: TensorFlow のコア ドキュメント (このガイド) には、いくつかのテキスト処理チュートリアルが含まれています。
- Google 機械学習: テキスト分類ガイド: テキスト分類を段階的に紹介します。機械学習を初めて使用する場合は、ここから始めるのが良いでしょう。