python gensim使用word2vec詞向量處理中文語料的方法
word2vec介紹
word2vec官網:https://code.google.com/p/word2vec/
- word2vec是google的一個開源工具,能夠根據輸入的詞的集合計算出詞與詞之間的距離。
- 它將term轉換成向量形式,可以把對文本內容的處理簡化為向量空間中的向量運算,計算出向量空間上的相似度,來表示文本語義上的相似度。
- word2vec計算的是余弦值,距離范圍為0-1之間,值越大代表兩個詞關聯(lián)度越高。
- 詞向量:用Distributed Representation表示詞,通常也被稱為“Word Representation”或“Word Embedding(嵌入)”。
簡言之:詞向量表示法讓相關或者相似的詞,在距離上更接近。
具體使用(處理中文)
收集語料
本文:亞馬遜中文書評語料,12萬+句子文本。
語料以純文本形式存入txt文本。
注意:
理論上語料越大越好
理論上語料越大越好
理論上語料越大越好
重要的事情說三遍。
因為太小的語料跑出來的結果并沒有太大意義。
分詞
中文分詞工具還是很多的,我自己常用的:
- 中科院NLPIR
- 哈工大LTP
- 結巴分詞
注意:分詞文本將作為word2vec的輸入文件。
分詞文本示例
word2vec使用
python,利用gensim模塊。
win7系統(tǒng)下在通常的python基礎上gensim模塊不太好安裝,所以建議使用anaconda,具體參見: python開發(fā)之anaconda【以及win7下安裝gensim】
直接上代碼—— #!/usr/bin/env python # -*- coding: utf-8 -*- """ 功能:測試gensim使用,處理中文語料 時間:2016年5月21日 20:49:07 """ from gensim.models import word2vec import logging # 主程序 logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO) sentences = word2vec.Text8Corpus(u"C:\\Users\\lenovo\\Desktop\\word2vec實驗\\亞馬遜中文書評語料.txt") # 加載語料 model = word2vec.Word2Vec(sentences, size=200) # 默認window=5 # 計算兩個詞的相似度/相關程度 y1 = model.similarity(u"不錯", u"好") print u"【不錯】和【好】的相似度為:", y1 print "--------\n" # 計算某個詞的相關詞列表 y2 = model.most_similar(u"書", topn=20) # 20個最相關的 print u"和【書】最相關的詞有:\n" for item in y2: print item[0], item[1] print "--------\n" # 尋找對應關系 print u"書-不錯,質量-" y3 = model.most_similar([u'質量', u'不錯'], [u'書'], topn=3) for item in y3: print item[0], item[1] print "--------\n" # 尋找不合群的詞 y4 = model.doesnt_match(u"書 書籍 教材 很".split()) print u"不合群的詞:", y4 print "--------\n" # 保存模型,以便重用 model.save(u"書評.model") # 對應的加載方式 # model_2 = word2vec.Word2Vec.load("text8.model") # 以一種C語言可以解析的形式存儲詞向量 model.save_word2vec_format(u"書評.model.bin", binary=True) # 對應的加載方式 # model_3 = word2vec.Word2Vec.load_word2vec_format("text8.model.bin", binary=True) if __name__ == "__main__": pass
運行結果
【不錯】和【好】的相似度為: 0.790186663972
--------和【書】最相關的詞有:
書籍 0.675163209438
書本 0.633386790752
確實 0.568059504032
教材 0.551493048668
正品 0.532882153988
沒得說 0.529319941998
好 0.522468209267
據說 0.51004421711
圖書 0.508755385876
挺 0.497194319963
新書 0.494331330061
很 0.490583062172
不錯 0.476392805576
正版 0.460161447525
紙張 0.454929769039
可惜 0.450752496719
工具書 0.449723362923
的確 0.448629021645
商品 0.444284260273
紙質 0.443040698767
--------書-不錯,質量-
精美 0.507958948612
總的來說 0.496103972197
材質 0.493623793125
--------不合群的詞: 很
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Pandas技巧分享之創(chuàng)建測試數(shù)據
學習pandas的過程中,為了嘗試pandas提供的各類功能強大的函數(shù),常常需要花費很多時間去創(chuàng)造測試數(shù)據,本篇介紹了一些快速創(chuàng)建測試數(shù)據的方法,需要的可以參考一下2023-07-07使paramiko庫執(zhí)行命令時在給定的時間強制退出功能的實現(xiàn)
這篇文章主要介紹了使paramiko庫執(zhí)行命令時,在給定的時間強制退出,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03