天天看點

用word2vec訓練文本摘要的詞向量模型

在記錄這篇博文前,有個聲明:

訓練前疑問:

1、訓練文本時是分過詞的文本,詞與詞之間為空格。不同類别的文檔要最終寫成一個文本,該文本是訓練集所有文檔的集合。

2、訓練文本摘要的詞向量模型我現在不知道怎麼訓練?

是把訓練集中的摘要和正文對齊一塊訓練,還是單獨訓練正文的 部分。

ok,下面是正文部分。

a、詞向量是其他任務的前置任務。詞向量是無監督學習出來的,後置任務直接用。是以我應該把中文和摘要做分詞處理後并到一個文檔。然後去做詞向量。

未完待續 2017.02.15

b、檢視資料集發現是xml格式的,但是之前沒有接觸過用python抽取想,xml的資訊。

這是一個大坑,我用另一個部落格來記錄。

最後檔案提取沒有按照xml檔案格式提取

——————————————————————————————————————————————————————

總結:(敲黑闆)

環境:python 2.7.x

工具:gensim

參考文檔:

官方教程:http://radimrehurek.com/gensim/models/word2vec.html

參考1:http://blog.csdn.net/eastmount/article/details/50637476

參考2:http://blog.csdn.net/churximi/article/details/51472300

訓練語料最後要求:語料最後是分過詞的,每一行都是一個分好詞的文檔,詞與詞之間是空格,另外,并沒有過濾停用詞或标點。

這裡貼張圖

用word2vec訓練文本摘要的詞向量模型

這就是我即将訓練的文本集

訓練時代碼:

# -*- coding: utf-8 -*-
# 訓練詞向量模型并儲存
import gensim
from gensim.models import word2vec
sentences=word2vec.Text8Corpus(u'D:\\LCSTS\\DATA1\\PART_II_comb.txt')
model=gensim.models.Word2Vec(sentences, , size=min_count=,)
model.save('/**路徑*/text.model1') #儲存模型

print model.similarity(u"上海", u"北韓戰争") 計算詞之間相似度
           

加載訓練好模型:當訓練好模型并儲存後,下次使用時可直接加載訓練好的模型

# 加載訓練好的模型text.model1
model1 = gensim.models.Word2Vec.load('/**路徑*/text.model1')

# 從模型中找到與“市場最相關的20個詞并輸出到螢幕上”
y = model1.most_similar(u'市場', topn=)
print u"和【市場】最相關的詞有:\n"
for item in y:
    print item[],item[]
print "——————\n"
           

未完待續2017.02.20….

————————————————————————————————————————————————

繼續閱讀