6章埋め込みによる感情のプログラム化

「5章 自然言語処理入門」では、単語をトークン化する方法と、単語で構成された文をトークンのシーケンスにエンコードする方法を学びました。必要に応じてパディング、切り捨てを行い、最終的にはニューラルネットワークの学習に使えるような形の揃ったデータセットを作成しました。この中には、単語の「意味」をモデル化したものは全く出てきません。確かに、意味をカプセル化できる数字のエンコーディング方式に絶対的なものはありませんが、相対的なものはあります。この章では、それらについて、特に「埋め込み(embedding)」について学びます。埋め込みとは、高次元空間におけるベクトルを用いて単語を表現することです。これらのベクトルの方向性は、コーパスの中の単語の使用状況に基づいて、時間をかけて学習することができます。それにより、与えられた文章の単語ベクトルの方向を調べてそれらを合計し、その合計の全体的な方向から、その文章の感情を単語の積として求めることができます。

この章では、それがどのように機能するかを探ります。「5章 自然言語処理入門」のSarcasmデータセットを使い、モデルが文中の皮肉を検出するのに役立つ埋め込みを作ります。また、優れた可視化ツールにより、コーパス内の単語がどのようにベクトルにマッピングされるかを理解し、どの単語が全体の分類を決定しているのかを確認します。

6.1 単語から意味を求める

埋め込みのための高次元ベクトルの話に入る前に、いくつかの簡単な例で、数値から意味を導き出す方法を視覚化してみましょう。例えば、「5章 自然言語処理入門」のSarcasmデータセットを使って、皮肉な見出しを構成する単語をすべて正の数字で、現実的な見出しを構成する単語を負の数字で符号化するとどうなるでしょうか? ...

Get 動かして学ぶAI・機械学習の基礎 ―TensorFlowによるコンピュータビジョン、自然言語処理、時系列データの予測とデプロイ now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.