詞向量大致訓練步驟:
- 分詞並去停用詞
- 詞頻過濾
- 訓練
gensim中Word2Vec參數解釋:
主要參數介紹如下:
- sentences:我們要分析的語料,可以是一個列表,或者從文件中遍歷讀出(word2vec.LineSentence(filename) )。
- size:詞向量的維度,默認值是100。這個維度的取值一般與我們的語料的大小相關,如果是不大的語料,比如小於100M的文本語料,則使用默認值一般就可以了。如果是超大的語料,建議增大維度。
- window:即詞向量上下文最大距離,window越大,則和某一詞較遠的詞也會產生上下文關系。默認值為5,在實際使用中,可以根據實際的需求來動態調整這個window的大小。如果是小語料則這個值可以設的更小。對於一般的語料這個值推薦在[5;10]之間。
- sg:即我們的word2vec兩個模型的選擇了。如果是0, 則是CBOW模型;是1則是Skip-Gram模型;默認是0即CBOW模型。
- hs:即我們的word2vec兩個解法的選擇了。如果是0, 則是Negative Sampling;是1的話並且負采樣個數negative大於0, 則是Hierarchical Softmax。默認是0即Negative Sampling。
- negative:即使用Negative Sampling時負采樣的個數,默認是5。推薦在[3,10]之間。
- cbow_mean:僅用於CBOW在做投影的時候,為0,則算法中的xw為上下文的詞向量之和,為1則為上下文的詞向量的平均值。
- min_count:需要計算詞向量的最小詞頻。這個值可以去掉一些很生僻的低頻詞,默認是5。如果是小語料,可以調低這個值。
- iter:隨機梯度下降法中迭代的最大次數,默認是5。對於大語料,可以增大這個值。
- alpha:在隨機梯度下降法中迭代的初始步長。算法原理篇中標記為η,默認是0.025。
- min_alpha: 由於算法支持在迭代的過程中逐漸減小步長,min_alpha給出了最小的迭代步。
項目完整地址:https://github.com/cyandn/DS/tree/master/Word2Vec
存在的問題:
感覺 stop_words.txt 停用詞去的有點狠。。