2020年11月5日木曜日

word2vec (pythonライブラリ編)

 pythonのライブラリを使って、word2vecを行う方法。

pip3 install gensim

pip3 install word2vec

でインストールする。

・機械学習のためのスクリプト

from gensim.models import word2vec
import logging
import sys

logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)

sentences = word2vec.LineSentence(sys.argv[1])
model = word2vec.Word2Vec(sentences,
                          sg=1,
                          size=100,
                          min_count=1,
                          window=10,
                          hs=1,
                          negative=0)
model.save(sys.argv[2])

これをtrain.pyと名付けて実行する。 (実行できなければ、chmod 755 train.pyで実行許可を与える。)

python3 train.py TEXT.txt TEXT.model

(python3でtrain.pyを実行し、TEXT.txtを機械学習する。その後、TEXT.modelとしてアウトプットする。)

計算が終わったら、以下のスクリプト(similars.py)で類似の高い語を抜き出してみる。

from gensim.models import word2vec
import sys

model   = word2vec.Word2Vec.load(sys.argv[1])
results = model.most_similar(positive=sys.argv[2], topn=10)

for result in results:
    print(result[0], '\t', result[1])


使い方

python3 similars.py TEXT.model AAA

(AAAは調べたい単語)


参考リンク:Pythonで「老人と海」をword2vecする



 

 

 

 

0 件のコメント:

コメントを投稿