word2vecで単語間の類似度を取得する方法

word2vecでは単語間の類似度を取得することができます。

モデルについては前回の記事と同じものを使用します。
こちらの記事を参考にしてください。

Pythonとword2vecで類義語を出力する方法

プログラム

from gensim.models import word2vec
import sys

#モデルまでのパス
model_path = 'word2vec.gensim.model'
#モデルの読み込み
model = word2vec.Word2Vec.load(model_path)

similarity = model.wv.similarity(w1="東京", w2="横浜")
print("東京<->横浜 " + str(similarity))
similarity = model.wv.similarity(w1="東京", w2="千葉")
print("東京<->千葉 " + str(similarity))
similarity = model.wv.similarity(w1="東京", w2="大宮")
print("東京<->大宮 " + str(similarity))

いろいろな意見がありそうですが、東京と周辺県の中核となる駅名で類似度を計算するプログラムです。

実行結果

東京<->横浜 0.8395518
東京<->千葉 0.64904183
東京<->大宮 0.56224567

こんな感じになりました。
まあ、こんなところでしょう。
横浜駅周辺が一番東京っぽいですからね。

システム開発

Posted by @erestage