Deep Learning ライブラリ「word2vec」で関連のある単語を予測するシステムを作った
Deep Learningとは
Deep Learningは、ICML・ACLといった機械学習関連の主要な学会のチュートリアルでも紹介され、近年注目を集めています。Deep Learningといえば、Googleによる猫の識別を始めとした画像認識で特に有名ですが、今年に入ってもその勢いは増すばかりで、
GoogleがDeep Learningの第一人者Hinton先生を生徒ごと買収したり、Deep Learning主体の学会ができたりと、多くの話題を作っています。詳しい動向・中身に関しては以下のページでよくまとめられています。
ニューラルネットの逆襲 | Preferred Research
データマイニングコンペティションサイト Kaggle にも Deep Learning ブームがきてるかと思ったのでまとめる - 糞ネット弁慶
DEEP LEARNERについて
簡単に扱えるライブラリとしてTheanoなどが有名ですが、今回、GoogleによってNLP(自然言語処理)に特化したツール「word2vec」が公開(Google Open Source Blog: Learning the meaning behind words)されたので、可視化するツール「DEEP LEARNER」を作成しました。また、日本語版Wikipediaの全記事をmecabで形態素解析して作成した日本語のコーパスを用いることにより、日本語によるデモも可能にしました。
このツールでは、例えば「中村俊輔」といった単語に近い単語を拾ってきたり(「中田英寿」「中山雅史」「香川真司」など)、「フランス パリ→日本 ?」という問いに対して「東京」という答えを出すことができます。形態素解析のミスが少しありますが、今後mecabにユーザー辞書を追加することで解決しようと思っています。
中では何をやっているのか
文章を単語レベルに区切ったもの(英語はそのまま、日本語は単語ごとに半角スペースを加えたもの)をコーパスとして用い、ある程度の頻度で現れる各単語に対して特徴ベクトルを作成します。その特徴ベクトル間の距離を計算することで、単語間の意味的な関係をうまく近似している、といったものになっています。