引用文章:https://zhuanlan.zhihu.com/p/40016964
注意事項
Skip-Gram models:輸入為單個詞跃洛,輸出目標(biāo)為多個上下文單詞瑰枫;
CBOW models:輸入為多個上下文單詞降狠,輸出目標(biāo)為一個單詞西篓;
選擇的訓(xùn)練word2vec的語料要和要使用詞向量的任務(wù)相似锣光,并且越大越好,論文中實驗說明語料比訓(xùn)練詞向量的模型更加的重要蔬浙,所以要盡量收集大的且與任務(wù)相關(guān)的語料來訓(xùn)練詞向量猪落;
語料小(小于一億詞畴博,約 500MB 的文本文件)的時候用 Skip-gram 模型笨忌,語料大的時候用 CBOW 模型;
設(shè)置迭代次數(shù)為三五十次俱病,維度至少選 50官疲,常見的詞向量的維度為256、512以及處理非常大的詞表的時候的1024維亮隙;
模型訓(xùn)練:
LineSentence(inp):格式簡單:一句話=一行; 單詞已經(jīng)過預(yù)處理并被空格分隔袁余。?
size:是每個詞的向量維度;?
window:是詞向量訓(xùn)練時的上下文掃描窗口大小咱揍,窗口為5就是考慮前5個詞和后5個詞;
min-count:設(shè)置最低頻率棚饵,默認(rèn)是5煤裙,如果一個詞語在文檔中出現(xiàn)的次數(shù)小于5,那么就會丟棄噪漾;?
workers:是訓(xùn)練的進程數(shù)(需要更精準(zhǔn)的解釋硼砰,請指正),默認(rèn)是當(dāng)前運行機器的處理器核數(shù)欣硼。這些參數(shù)先記住就可以了题翰。?
sg ({0, 1}, optional) – 模型的訓(xùn)練算法: 1: skip-gram; 0: CBOW?
alpha (float, optional) – 初始學(xué)習(xí)率?
iter (int, optional) – 迭代次數(shù),默認(rèn)為5?
model=Word2Vec(LineSentence(inp),size=400,window=5,min_count=5,workers=multiprocessing.cpu_count())
model.save(outp1)
#不以C語言可以解析的形式存儲詞向量
model.wv.save_word2vec_format(outp2,binary=False)