AIに「ことば」を理解させたい(2)
前回は、AIにおける「ことば」(=自然言語)の扱いと、「ことば」をAIで学習することで実現できることの例についてお話ししました。
(前回の記事はこちら:AIに「ことば」を理解させたい(1))
今回は、実際に「ことば」を数値化する手法の例として「Bag of Words」および「Word2Vec」について紹介します。
- 目次
数値化の手法(1)Bag of Words
Bag of Wordsは、文書における単語の出現頻度を用いて数値化する手法です。
Bag of Wordsを用いることで、ある文書の中で、どのような単語が多く使われているかを知ることができます。
例として、2つの文書を使用します。
文書1:「私はAIを勉強する。」
文書2:「彼は英語を勉強する。」
「私」「彼」「は」「AI」「英語」「を」「勉強」「する」の出現回数を数えてみましょう。
出現回数を表にしたものが下表です。この表の値が、文書1と文書2のBag of Wordsとなります。
数値化の手法(2)Word2vec
Word2Vecは、単語の概念上の位置(=意味)を数値化する手法です。
位置として数値化することで、例えば、以下のように単語同士で計算することなどができます。
「王」ー「男」+「女」=「王妃」
※上の式は、「王」という単語から「男」という単語の持つ概念を引いて「女」という単語の持つ概念を足すと「王妃」という単語になる、ということを意味しています。
次に、Word2Vecにおける「王」と「王妃」が持つ意味の位置関係のイメージをつかむため、表形式で見てみましょう。
「権力の強さ」などの項目は、「王」「王妃」が持つ概念のイメージです。このように数値化することで、単語同士の計算などを可能にしています。
ただし、実際には、各項目は「項目A」「項目B」のような形式で出力されるため、イメージとして挙げた上の表のように、各項目を象徴する言葉は出力されませんので、ご注意ください。
では、どのようにして上記のように単語の意味を数値化するのでしょうか。
Word2Vecでは、「似た意味の単語は、前後に出てくる単語も似ている」と仮定したうえで、その傾向をニューラルネットワークで算出しています。
例えば、「AI」と「人工知能」という2つの単語において、その前後の文脈で「機械学習」や「自動化」という単語が共通して頻出する場合、「AI」と「人工知能」は似た意味の単語とみなします。
また、ニューラルネットワークについては、こちらの記事もあわせて参考にされてください。
■あわせて読みたい:ニューラルネットワークのCNNとRNNを理解しよう
なお、Word2Vecでは「単語」の概念上の位置関係を数値化しますが、「文書」の概念上の位置関係を数値化する、Doc2vecという手法もあります。
まとめ
Bag of wordsやWord2vecなどによって「ことば」を数値化することで、コンピュータは「ことば」を「データ」として扱うことができます。これにより、ある単語や文書の相関を調べるといった、「ことば」の分析ができるようになります。
さて、今回は、「ことば」を数値化する手法についてご説明しました。
実は、日本語を数値化する場合、今回ご紹介した手法を行うために「単語に分割する」という前処理が必要になります。こちらについては、またの機会にご説明できればと思います。
最後までお読みいただき、ありがとうございました。