Install
環境:Jupyter Lab
pip で簡単にインストールできます.
!pip install gensim
利用
ここのtxtファイルは既にわかち書き済みのデータなので,ご注意ください.
昔のバージョンのsizeはvector_sizeに変更し,iterはepochsに変更しました.
# Ref: https://teratail.com/questions/131715
# Ref: https://radimrehurek.com/gensim/models/word2vec.html#gensim.models.word2vec.Text8Corpus
# data training
# vector_size : ベクトルの次元,いわゆるニューロンの数
# min_count : 出現頻度が〇〇以下の語を無視;出現頻度が少ない語はword2vecの仕組みに適用できない
# window : 対象単語を中心とした前後の単語数
# epochs : epochs数,デフォルトは5
from gensim.models import word2vec
sentences = word2vec.LineSentence('Alldata.txt')
model = word2vec.Word2Vec(sentences,vector_size=600,window=3,min_count = 20, epochs = 5)
model.save('mymodel.model')
類語推定
「部屋」とのcos類似度がTop 10の語を出力します.
# Ref: https://techacademy.jp/magazine/30591
from gensim.models import word2vec
model = word2vec.Word2Vec.load("mymodel.model")
results = model.most_similar(positive="部屋", topn=10)
for result in results:
print(result[0], result[1])
今回はテストデータ(10000件)で学習したので,精度はまだまだです.
テストデータの学習結果:
お部屋 0.9306197166442871
良く 0.915359377861023
ただ 0.9132060408592224
丁寧 0.909668505191803
よく 0.9088638424873352
広く 0.9085277318954468
朝食 0.9038276672363281
や 0.9029475450515747
料金 0.9026759266853333
きれい 0.9010841846466064
トレーニング時間
あくまで参考ですが,
3300万件,5GBのデータを使って,次元が600,windowsが3に設置する場合,1 epochsのトレーニング時間は20~25 minでした.
Ref
赤石雅典,江澤美保,2020『Python自然言語処理入門』