【まとめ】単語をベクトル化する!!ー文系分野をチカラ技で理系の世界へ!〜ゼロつく2・2章

AIアプリ制作
natural girlで検索した画像。

わたしが選んだ「自然言語処理(Natural  Language ProcessingNLP)」とは、

自然言語(日本語や英語など)をコンピュータに理解させるための技術

である。

俳句を詠むAIを作る! ©️AI一茶くん

自然言語は柔らかい(*1)
それに対して、コンピュータ言語(*2)は規則に縛られて固い
だから、
柔らかい言語頭の固いコンピュータに理解させるのは一筋縄ではいかない難しい問題だ。

ーそんな話でこの本は始まる(*3)

ゼロつく2というらしい(本当かどうか知らんけど)

*1 柔らかいとは、柔軟に意味や形が変わるあいまいさがあることを指す。
*2 機械語、プログラミング言語、マークアップ言語など。
*3 第1章はニューラルネットワークの復習で、本編は第2章から始まる。

言語の意味の最小単位は「単語」である。

だから、
コンピュータに単語の意味を理解させるために、
単語の意味をうまくとらえた表現方法を考える。

方法は3つあり、
そのなかでいちばんいい方法が、
3つめのword2vecを使った推論ベースの手法だが、それは第3章で解説される。

本章(第2章)では、

1.シソーラス(*4)による手法

に簡単に触れ、

2.カウントベースの手法

で、
① 単語の「分散表現」
② 重要な手法の根拠となっている「分布仮説」
について詳説している。

*4 シソーラス(類似辞書)とは、同義語 、類義語 、上位 ・下位関係など 、単語の意味的な関係を記述した言語資源。有名なものに「WordNet」がある。

単語をベクトルであらわす

という文系には想像もつかない方法が、①分散表現だ。

なるほど、
ベクトルなら足したり引いたり計算できる。

さらに、

単語の意味は、周囲の単語によって形成される

というのが、②分布仮説だ。

だから、

意味的に近い単語はベクトル空間で距離的にも近いはず

と考える。

それを、カウントベースの手法

単語の共起行列(5)を作り、
PPMI行列(*6)に変換し、
ロバスト性(*7)を高めるため、
SVDによる次元削減(*8)を行い、
各単語の分散表現を得ること

で確かめる。

話はややこしいのだが、
文系分野のアイテムを、
計算で解決しようという理系への変換のチカラ技が、新鮮でおもしろい。

ひとつひとつのコードを確認する力量はないので、まずは概念を理解して次の章に進む。

*5 共起行列 共起する単語をテーブルにまとめたもの。そのテーブルの各行がベクトルに対応する。共起とは、ある単語がある文章に出たとき、その文章に別の限られた単語がひんぱんに出現すること。例「しとしと」と「雨」
*6 PPMI行列 共起行列から’the’のような高頻度単語のノイズを取り除いた行列。
*7 ロバスト性 さまざまな外部の影響によって影響されにくい性質のこと。
*8 SVDによる次元削減 疎な行列(意味のない0が多い)であるPPMI行列を、特異値分解(SVD)という手法を使い重要な情報だけ残して密な行列に変換すること。

ゼロつく2こと『ゼロから作るDeep Learning2 自然言語処理編』はこちらから!

Follow me!