亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

在python下實現word2vec詞向量訓練與加載實例

瀏覽:4日期:2022-07-22 08:14:49

項目中要對短文本進行相似度估計,word2vec是一個很火的工具。本文就word2vec的訓練以及加載進行了總結。

word2vec的原理就不描述了,word2vec詞向量工具是由google開發(fā)的,輸入為文本文檔,輸出為基于這個文本文檔的語料庫訓練得到的詞向量模型。

通過該模型可以對單詞的相似度進行量化分析。

word2vec的訓練方法有2種,一種是通過word2vec的官方手段,在linux環(huán)境下編譯并執(zhí)行。

在github上下載word2vec的安裝包,然后make編譯。查看demo-word.sh腳本,得到word2vec的執(zhí)行命令:

./word2vec -train text8 -output vectors.bin -cbow 1 -size 200 -window 8 -negative 25 -hs 0 -sample 1e-4 -threads 20 -binary 1 -iter 15

參數解釋:

1)-train:需要訓練的語料庫,text8為語料庫文件名

2)-output:輸出的詞向量文件,vectors.bin為輸出詞向量文件名,.bin后綴為二進制文件。若要以文檔的形式查看詞向量文件,需要將-binary參數的值由1改為0

3)-cbow:是否使用cbow模型進行訓練。參數為1表示使用cbow,為0表示不使用cbow

4)-size:詞向量的維數,默認為200維。

5)-window:訓練過程中截取上下文的窗口大小,默認為8,即考慮一個詞前8個和后8個詞

6)-negative:若參數非0,表明采樣隨機負采樣的方法,負樣本子集的規(guī)模默認為25。若參數值為0,表示不使用隨機負采樣模型。使用隨機負采樣比Hierarchical Softmax模型效率更高。

7)-hs:是否采用基于Hierarchical Softmax的模型。參數為1表示使用,0表示不使用

8)-sample:語料庫中的詞頻閾值參數,詞頻大于該閾值的詞,越容易被采樣。默認為e^-4.

9)-threads:開啟的線程數目,默認為20.

10)-binary:詞向量文件的輸出形式。1表示輸出二進制文件,0表示輸出文本文件

11)-iter:訓練的迭代次數。一定范圍內,次數越高,訓練得到的參數會更準確。默認值為15次.

./word2vec -train mytext.txt -output vectors.txt -cbow 1 -size 200 -window 5 -negative 25 -hs 0 -sample 1e-4 -threads 20 -binary 0 -iter 30

示例為訓練一個名mytext.txt的文檔。設置輸出詞向量的格式為.txt文本文檔,所以還需要將-binary參數設置為0.

訓練模型采用基于隨機負采樣的cbow模型。由于短文本字數極為有限,所以-window參數設置為5,設置詞向量的維數

為200,為了使得到的參數更準確,將迭代次數增加至30.其他參數使用默認值。

訓練以后得到一個txt文本,該文本的內容為:每行一個單詞,單詞后面是對應的詞向量。

gensim加載詞向量:

保存詞向量模型到pkl中(注意:這里是對詞向量模型進行構建)

from gensim.models import KeyedVectorsif not os.path.exists(pkl_path): # 如果pickle模型不存在,則構建一個 print ’詞向量模型不存在,開始構建詞向量模型...’ Word2Vec = KeyedVectors.load_word2vec_format(vecs_path, binary=False) # 加載詞向量模型 f = file(pkl_path, ’wb’) pickle.dump(Word2Vec, f, True) f.close() print ’詞向量模型構建完畢...’f= file(pkl_path, ’rb’)# 打開pkl文件word2vec=pickle.load(f)# 載入pkl

第二種方法是使用gensim模塊訓練詞向量:

from gensim.models import Word2Vecfrom gensim.models.word2vec import LineSentencetry: import cPickle as pickleexcept ImportError: import picklesentences = LineSentence(path)# path為要訓練的txt的路徑# 對sentences表示的語料庫進行訓練,訓練200維的詞向量,窗口大小設置為5,最小詞頻設置為5model = Word2Vec(sentences, size=200, window=5, min_count=5)model.save(model_path)#model_path為模型路徑。保存模型,通常采用pkl形式保存,以便下次直接加載即可# 加載模型model = Word2Vec.load(model_path)

完整的訓練,加載通常采用如下方式:

if not os.path.exists(model_path): sentences = LineSentence(path) model = Word2Vec(sentences, size=200, window=5, min_count=5) model.save(model_path)model = Word2Vec.load(model_path)

這樣一來,就可以通過pkl化的詞向量模型進行讀取了。pkl的目的是為了保存程序中變量的狀態(tài),以便下次直接訪問,

不必重新訓練模型。

詳細內容間gensim官方庫

https://radimrehurek.com/gensim/models/word2vec.html

以上這篇在python下實現word2vec詞向量訓練與加載實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: python
相關文章:
主站蜘蛛池模板: 99精品国产一区二区青青牛奶 | 久久久全国免费视频 | 欧美一级毛片在线 | 伊人久久成人 | 国产 日韩 欧美 亚洲 | 欧美成人精品福利在线视频 | 国产精品v欧美精品v日韩 | 免费可在线观看黄的视频 | 国产在线精品福利91香蕉 | 国产一级大片在线观看 | 黄色网页免费观看 | 国产福利一区二区三区 | 大乳女人做受视频免费观看 | 久久这里只有精品免费看青草 | 国产一级在线现免费观看 | 欧美r级限制禁片在线观看 欧美va在线高清 | 欧美三级久久 | 久久精品在线 | 992人人tv香蕉国产精品 | 欧美一区二区三区在线播放 | 久久黄色片 | 国产精品中文字幕在线 | 色婷婷色综合 | 午夜视频免费在线观看 | 免费va国产高清不卡大片 | 午夜a一级毛片一.成 | 日韩欧美国产中文 | 日韩在线aⅴ免费视频 | 国产精品一区二区免费福利视频 | 日韩精品视频网 | 老黄网站在线观看免费 | 国产毛片一级国语版 | 在线精品国产一区二区 | 欧美一区二区三区在线可观看 | 免费一级欧美大片视频在线 | 久久国产精品免费 | 在线播放国产一区二区三区 | 欧美一级毛片在线看视频 | 国产成人精品久久一区二区三区 | 久久精品99成人中文字幕880 | 激情自拍网|