LoginSignup
0
2

More than 1 year has passed since last update.

2021年版 Pythonでword2vecの実装と利用

Last updated at Posted at 2021-10-04

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自然言語処理入門』

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2