Googleは、TensorFlowディープラーニングプラットフォーム用の新しいテキスト処理ライブラリであるTensorFlow.Text(TF.Text)をリリースした。このライブラリにより、トークン化などの一般的なテキスト前処理アクティビティをTensorFlowグラフ計算システムで処理できるようになり、自然言語処理(NLP)のためのディープラーニングモデルの一貫性と移植性が向上する。
最近のブログ投稿で、ソフトウェアエンジニアおよびTF.TextチームリーダーのRobbie Neale氏は、テキスト文字列のトークン化のための新しいツールに焦点を当てて、新しいリリースの内容の概要を説明した。このライブラリには、パターンマッチング、n-gram作成、Unicode正規化、シーケンス制約のためのツールも含まれている。このコードは、RaggedTensorsで動作するように設計されている。RaggedTensorsは、テキストシーケンスの処理に適した可変長テンソルである。Neale氏によると、ライブラリの主な利点は、これらの前処理ステップがTensorFlow計算グラフを適用できる好適な対象であり、そのシステムのすべての利点が得られる。特に、ドキュメントによると、「トレーニングにおけるトークン化が、推論のトークン化と異なることを心配する必要はありません。」
ディープラーニングアルゴリズムでは、すべてのデータを数字のリスト(別名テンソル)として表現する必要があるため、自然言語処理タスクの最初のステップは、テキストデータを数値データに変換することである。通常、これは、結果をディープラーニングフレームワークに渡す前に、前処理スクリプトで実行される。最も一般的な操作はトークン化である。テキストを個々の単語に分割する。一意の単語にはそれぞれ数値のIDが与えられる。多くの場合、これはすべての既知の単語のリスト内の単純なインデックスである。結果は、ニューラルネットワークに入力できる一連の数値である。
ただし、トークン化は厳密にはニューラルネットワークモデルの一部ではないが、完全なNLP「パイプライン」の必要なコンポーネントである。NLP推論のためにトレーニングされたニューラルネットワークを使用するコードは、トークン化およびトレーニングシステムに含まれていた他の前処理タスクを複製する必要がある。TF.Textを使用すると、これらの前処理タスクをTensorFlowの操作として表すことができるようになったため、完全なパイプラインをモデルの一部として保存し、追加ステップなしで推論時に一貫して再現できる。
Twitterユーザは、TensorFlowの上で実行される高レベルのディープラーニングAPIであるKerasには、すでにテキスト前処理機能があることを指摘した。Neale氏は次の通り答えた。
Kerasにはサブセットがありますが、TF.Textほどカバーしていません。言語エンジニアが望むギャップを埋めるために積極的に話し合っていますが、それはコアKeras APIでは提供されていません。将来、TF.Textによって追加のKerasレイヤーが提供されても驚くことはありません。
TensorFlow.Textのソースコードとチュートリアルノートブックは、GitHubで入手できます。