word2vecというか、gensimの使い方のひな形を書いておく。
一つ注意。
学習のところで、windowというオプションがあるが、
これは、文の中だけが範囲であって、文を跨がない。
window (int, optional) – Maximum distance between the current and predicted word within a sentence.
gensim: models.word2vec – Word2vec embeddings
なお、文をどう認識しているかだが、
入力データはリストのリスト(もしくはそれに準ずるもの)であって、
1つのリストを1つの文と見ているようだ。
from gensim.models import word2vec #open file patten 01 word_list=[ x.rstrip("\r\n").split() for x in list(open("infile")) ] #open file patten 02 #word_list = word2vec.LineSentence("infile") #modelling model = word2vec.Word2Vec(word_list, size=100,min_count=1,window=5,iter=100) #save model model.save("filename.model") # save as vector(1行目は単語数とベクトルの次元の情報) model.wv.save_word2vec_format("filename.vec",binary=False) #list of words which were vectorized list_words = model.wv.index2word # word vector of "hoge" model.wv.word_vec('hoge') # similar words results = model.wv.most_similar(positive=["hoge"]) for res in results: print(res)