w2vについて
概要
- 類似の使われ方をする単語をコサイン類似度で計算できる
gensim
- gensimというライブラリが便利
ドキュメント
学習
from gensim.test.utils import common_texts
from gensim.models import Word2Vec
model = Word2Vec(sentences: List[List[str]], vector_size=100, window=5, min_count=1, workers=4)
sentences
はList[List[str]]
で一つの文章が一つのListに収まっている必要があるvector_size
はNNのサイズで大きい方が表現力が大きくなるが学習が遅くなるmin_count
を増やすと変な単語を掴む確率が下がり、安定するが、大きすぎると単語を検出できない
類似度検索
model.wv.most_similar('computer', topn=10)
2つの単語間の類似度(-1 ~ 1)
model.wv.similarity("word_a", "word_b")
モデルに含まれるキー(文字)の一覧
words = list(model.wv.index_to_key)
モデルのセーブ
model.save("word2vec.model")
モデルのロード
model = Word2Vec.load("word2vec.model")