わたしが選んだ「自然言語処理(Natural Language Processing:NLP)」とは、
自然言語(日本語や英語など)をコンピュータに理解させるための技術
である。
自然言語は柔らかい(*1)
それに対して、コンピュータ言語(*2)は規則に縛られて固い。
だから、
柔らかい言語を頭の固いコンピュータに理解させるのは一筋縄ではいかない難しい問題だ。
ーそんな話でこの本は始まる(*3)
言語の意味の最小単位は「単語」である。
だから、
コンピュータに単語の意味を理解させるために、
単語の意味をうまくとらえた表現方法を考える。
方法は3つあり、
そのなかでいちばんいい方法が、
3つめのword2vecを使った推論ベースの手法だが、それは第3章で解説される。
本章(第2章)では、
1.シソーラス(*4)による手法
に簡単に触れ、
2.カウントベースの手法
で、
① 単語の「分散表現」と
② 重要な手法の根拠となっている「分布仮説」
について詳説している。
単語をベクトルであらわす
という文系には想像もつかない方法が、①分散表現だ。
なるほど、
ベクトルなら足したり引いたり計算できる。
さらに、
単語の意味は、周囲の単語によって形成される
というのが、②分布仮説だ。
だから、
意味的に近い単語はベクトル空間で距離的にも近いはず
と考える。
それを、カウントベースの手法、
単語の共起行列(*5)を作り、
PPMI行列(*6)に変換し、
ロバスト性(*7)を高めるため、
SVDによる次元削減(*8)を行い、
各単語の分散表現を得ること
PPMI行列(*6)に変換し、
ロバスト性(*7)を高めるため、
SVDによる次元削減(*8)を行い、
各単語の分散表現を得ること
で確かめる。
話はややこしいのだが、
文系分野のアイテムを、
計算で解決しようという理系への変換のチカラ技が、新鮮でおもしろい。
ひとつひとつのコードを確認する力量はないので、まずは概念を理解して次の章に進む。
ゼロつく2こと『ゼロから作るDeep Learning2 自然言語処理編』はこちらから!