WEB+DB PRESS (ウェブDBプレス) Vol.100「word2vecを用いた単語のベクトル化」(P.42)をやってみた

WEB+DB PRESS Vol.100(技術評論社)の「word2vecを用いた単語のベクトル化」(P.42)をやってみました。word2vecを使用して、「パリ」-「フランス」+「日本」を計算してみるところです。

  • 記事の内容や、操作を理解するための概念などは、このページには書きません。上のリンクから雑誌を購入してご覧ください。

この記事は、以下の記事の続きです。本質はあまり関係ないのですが、以下の記事で作成したデータを、この記事で使用しています。

WEB+DB PRESS (ウェブDBプレス) Vol.100「トピックモデルによる教師なし学習」(P.37)をやってみた

word2vecを用いた単語のベクトル化

Windows PowerShellを起動し、以下の記事で準備したDockerコンテナに接続して操作します。ここでは、Dockerコンテナに接続するまでの操作は省略します。

WEB+DB PRESS (ウェブDBプレス) Vol.100「第2章 自然言語処理」(P.24)をやってみた

Wikipediaのデータでword2vecを実行

  1. 「cd /webdb100/04」と入力して、Enterキーを押します。
  2. 「cp ../03/wikipedia_lowcorpus.txt .」と入力して、Enterキーを押します。
  3. 雑誌記事(P.44)の「word2vec.pyの実行」のコマンドを入力し、Enterキーを押します。

    学習済みモデルが作成されるまで、手元では6816秒(1.9時間)かかりました。
  4. 雑誌記事(P.45)の「query_tokyo.pyの実行」のコマンドを入力し、Enterキーを押します。

    「東京」、「日本国内」、「日本人」などが表示されます。
    「東京」は正解と言えるでしょう。「日本国内」「日本人」はもう一歩でしょうか。
  5. 雑誌記事(P.45)の「query_einstein.pyの実行」のコマンドを入力し、Enterキーを押します。

    「ピアニスト」、「ピアノ」、「ハイフェッツ」などが表示されます。
    「ピアニスト」や「ピアノ」はNGでしょうね。「ハイフェッツ」は「ヤッシャ・ハイフェッツ」(ヴァイオリニスト。ユダヤ人)のことだと思います。
  6. 雑誌記事(P.45)の「showvector.pyの実行」のコマンドの「showquery.py」を「showvector.py」に書き替えて入力し、Enterキーを押します。

    「技術評論社」を表す400次元のベクトルが表示されます。

    (長いので途中を省略)

雑誌記事と少し結果が異なるのは、乱数を使用しているためだそうです。Wikipediaの記事が更新されていることも原因の一つではないでしょうか。