在记录这篇博文前,有个声明:
训练前疑问:
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.youkuaiyun.com/eastmount/article/details/50637476
参考2:http://blog.youkuaiyun.com/churximi/article/details/51472300
训练语料最后要求:语料最后是分过词的,每一行都是一个分好词的文档,词与词之间是空格,另外,并没有过滤停用词或标点。
这里贴张图
这就是我即将训练的文本集
训练时代码:
# -*- 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=200min_count=3,)
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=20)
print u"和【市场】最相关的词有:\n"
for item in y:
print item[0],item[1]
print "——————\n"
未完待续2017.02.20….
————————————————————————————————————————————————