Word2Vec

Word2Vecとは?

Word2Vecは、自然言語処理で使用される技術の一つで、単語をベクトル空間に埋め込む手法です。この技術は、Googleの研究者であるトマス・ミコロフ(Tomas Mikolov)らによって開発されました。Word2Vecは、単語の意味的な関係を数値ベクトルに変換することで、コンピュータが単語の意味を理解しやすくします。

今回はgensimというライブラリに実装されている下記のword2vecモデルを利用して、類似単語の取得を行ってみます。

 インストール

pip install gensim

gensimをインストールします。

ライブラリのインポート

from gensim.models import Word2Vec
from gensim.test.utils import common_texts
from gensim.utils import simple_preprocess

モデルの初期化

model = Word2Vec(sentences=common_texts, vector_size=100, window=5, min_count=1, workers=4)

今回はgensimに組み込まれている共通テキストデータ(common_texts)を使用しています。

トレーニング済みモデルの単語ベクトルの取得

word_vectors = model.wv

類似単語の取得

similar_words = word_vectors.most_similar('computer', topn=5)
print("'computer'に類似する単語: ", similar_words)

下記の出力が得られました。

'computer'に類似する単語: [
  ('system', 0.21617139875888824),
  ('survey', 0.04468922317028046),
  ('interface', 0.015203381888568401),
  ('time', 0.0019510635174810886),
  ('trees', -0.03284316882491112)
]