Google検索の裏側〜自然言語処理の形態素解析について〜
Googleで「近くの美味しいイタリアンを探して」って言ったら、うまい具合に検索してくれるあれ、凄くないですか。
スマートスピーカーやGoogle検索の裏側には自然言語処理が使われています。今回はその中の形態素解析というお話を東大のゼミでやったのでまとめてみます。
形態素解析とは、意味を持つ表現要素の最小単位である形態素に文章を分けて解析を行うものです。
まあ平たく言うと、文章を品詞に分けるってことです。
これは、単語同士が繋がってる日本語で特に大切ですが、英語でも必要になります。
例えば以下の例文。
Time flies like an arrow
人間が普通に読むと、Timeを名詞と解釈して「時間は矢のように飛んでいく=光陰矢の如し」という意味だと分かります。
一方で、Timeを動詞、fliesを名詞と解釈すると、「矢のようにハエを測る」という意味になります。機械に文章を与えられただけでは、このどちらの意味で解釈すれば良いのか判断できません。
引用:http://www.mi.u-tokyo.ac.jp/6university_consortium.html
このように、文章を品詞に分けることで意味を適切に捉えることができます。
どのように品詞の種類を見極めているかというと、最小コスト化法というのが使われたりしているようです。こちらに詳しく載っていました。
要するに、様々なパターンで単語を区切ってみて単語同士をくっつけるコストを計算し、そのコストが最も低いパターン =「一番繋がりやすい単語の組み合わせ」を見つけるというものです。
例えば、アメを舐めるの時、『お菓子のアメ』のほうが『天気の雨』よりも『舐める』に繋がりやすいことを計算で求めるイメージです。
このような仕組みがGoogle検索でも使われています。最初の例で言うと、
「近くの美味しいイタリアンを探して」
という文章に対して形態素解析を行います。すると、「近く/の/美味しい/イタリアン/を/探し/て」という品詞分解ができることがわかります。
この中から、助詞を抜き、検索に適した形にすることで、良い具合の検索結果を出せるようにしているわけです。
つまり、「近く 美味しい イタリアン」で検索したことと実質同じになる訳です。それならちゃんと検索してくれることにも納得ですよね。
色々調べていると、自然言語処理は既に周りの色んなところで使われていることがわかり面白かったです。
この記事が気に入ったらサポートをしてみませんか?