虽然早就对NLP有一丢丢接触,但是最近真正对中文文本进行处理才深深感觉到自然语言处理的难度,主要是机器与人还是有很大差异的,毕竟人和人之间都是有差异的,要不然不会讲最难研究的人嘞

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~不华丽的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

我了解的对词义理解毕竟优秀的当属word2vec了,在训练结束后能得到跟我们人类理解的相似词义很类似的结果,就像‘’男生‘’‘’女生‘’这些词的含义类似一样,网上已经有很多如何训练word2vec向量的方法及代码了,为了看起来完整,我把我自己的也贴上来吧(我的原数据存储在数据库中):

1.训练过程:

#训练词语为向量表示
def w2v_train(self):
#######数据获取####################################################
ques = self.cu.execute('select question from activity')#从数据库提取文本
da_all = []
for d in ques:
da_all.append(d[0])
sentences = self.get_text(da_all)#分词结果列表
#######训练的主要步骤######################################################
model = Word2Vec()
model.build_vocab(sentences)
model.train(sentences,total_examples = model.corpus_count,epochs = model.iter)
model.save("./tmp/user_w2corpus")#保存模型,之后使用该模型:model=gensim.models.Word2Vec.load('./tmp/user_w2corpus')
   model.wv.save_word2vec_format("./tmp/user_w2corpus_word_old.txt")#将训练好的词向量保存为TXT文档,之后使用该模型:
                                                                   #model = gensim.models.KeyedVectors.load_word2vec_format('./tmp/user_w2corpus_word_old.txt')
#注意两种读取词向量模型的方法是不同的。TXT文档的词向量可以不需要通过model['string']得到词向量,还可以通过循环一次将每个单词(或字符)的向量读出来
def get_text(self,text):#传入的text是一个句子存储在列表中的形式
import jieba
# 调用分词方法时执行这三行
f = open("./stopword.txt", 'r+', encoding="UTF-8")
stop_list = f.read()
txt = []
# 对空格,换行符、停用词进行处理
for i in text:
result = []
# 对文档进行分词处理,采用默认模式
seg_list = jieba.cut(i)
for seg in seg_list:
seg = ''.join(seg.split())
if (seg != '' and seg != "\n" and seg != "\n\n"):
if seg not in stop_list:
result.append(seg)
txt.append(result)
return txt
2.调用训练好的结果分析问题
import gensim
word_vectors=gensim.models.KeyedVectors.load_word2vec_format('./tmp/user_w2corpus',binary=False)
sim=word_vectors.most_similar(u'蛋白质',topn=10)
print ('\n蛋白质-top10:')
for item in sim:
print (item[0],item[1]) 注意!!!!!!写本文的初衷是感谢博客上的一位好人给出了自己训练好的word2vec向量,我们可以不需要亲自训练,拿来直接用,因为自己训练的很有可能会由于数据量不足而导致效果不太好
资源链接:http://pan.baidu.com/s/1dFeNNK9另外,该博客的链接也在此为大家贴出来,http://www.cnblogs.com/robert-dlut/p/6586621.html
最后的最后,我想声明我是最近才想着把自己遇到的问题都记录下来,所以如果侵权麻烦联系我删除,如果觉得有点用的话麻烦点个赞之类的,嘿嘿,在此谢过~~
 
 

word2vec训练好的词向量的更多相关文章

  1. 【word2vec】Distributed Representation——词向量

    Distributed Representation 这种表示,它最早是 Hinton 于 1986 年提出的,可以克服 one-hot representation 的缺点. 其基本想法是: 通过训 ...

  2. 基于word2vec训练词向量(二)

    转自:http://www.tensorflownews.com/2018/04/19/word2vec2/ 一.基于Hierarchical Softmax的word2vec模型的缺点 上篇说了Hi ...

  3. 开源共享一个训练好的中文词向量(语料是维基百科的内容,大概1G多一点)

    使用gensim的word2vec训练了一个词向量. 语料是1G多的维基百科,感觉词向量的质量还不错,共享出来,希望对大家有用. 下载地址是: http://pan.baidu.com/s/1boPm ...

  4. PyTorch基础——词向量(Word Vector)技术

    一.介绍 内容 将接触现代 NLP 技术的基础:词向量技术. 第一个是构建一个简单的 N-Gram 语言模型,它可以根据 N 个历史词汇预测下一个单词,从而得到每一个单词的向量表示. 第二个将接触到现 ...

  5. 斯坦福NLP课程 | 第2讲 - 词向量进阶

    作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www. ...

  6. 基于word2vec训练词向量(一)

    转自:https://blog.csdn.net/fendouaini/article/details/79905328 1.回顾DNN训练词向量 上次说到了通过DNN模型训练词获得词向量,这次来讲解 ...

  7. word2vec词向量训练及中文文本类似度计算

    本文是讲述怎样使用word2vec的基础教程.文章比較基础,希望对你有所帮助! 官网C语言下载地址:http://word2vec.googlecode.com/svn/trunk/ 官网Python ...

  8. DNN模型训练词向量原理

    转自:https://blog.csdn.net/fendouaini/article/details/79821852 1 词向量 在NLP里,最细的粒度是词语,由词语再组成句子,段落,文章.所以处 ...

  9. CountVectorizer,Tf-idfVectorizer和word2vec构建词向量的区别

    CountVectorizer和Tf-idfVectorizer构建词向量都是通过构建字典的方式,比如在情感分析问题中,我需要把每一个句子(评论)转化为词向量,这两种方法是如何构建的呢?拿CountV ...

随机推荐

  1. Extjs4 DateTimeField,日期时间控件完美版

    网上若干类似的控件,要么是有bug,要么是操作体验不合理,这里贡献一个比较科学的版本. 扩展包下载: http://files.cnblogs.com/qidian10/Ext.ux.rar 解压至E ...

  2. 【HTTP】 认证和单点登录 【瞎写的…】

    ■ Cookie,Session,Token HTTP协议是一种无状态的协议.换言之,每一个HTTP请求在得到HTTP回应之后就会断开客户端到服务端的连接.客户端可能会有下一次请求,但是那是下一次的事 ...

  3. Java知多少(67)面向字符的输入流

    字符流是针对字符数据的特点进行过优化的,因而提供一些面向字符的有用特性,字符流的源或目标通常是文本文件. Reader和Writer是java.io包中所有字符流的父类.由于它们都是抽象类,所以应使用 ...

  4. 第三百九十二节,Django+Xadmin打造上线标准的在线教育平台—sql注入攻击,xss攻击,csrf攻击

    第三百九十二节,Django+Xadmin打造上线标准的在线教育平台—sql注入攻击,xss攻击,csrf攻击 sql注入攻击 也就是黑客通过表单提交的地方,在表单里输入了sql语句,就是通过SQL语 ...

  5. 学习Mysql过程中拓展的其他技术栈:设置linux虚拟机的固定ip和克隆linux虚拟机

    一.设置linux虚拟机的固定ip 1. 安装好虚拟机后在菜单栏选择编辑→ 虚拟网络编辑器,打开虚拟网络编辑器对话框,选择Vmnet8 Net网络连接方式,随意设置子网IP,点击NAT设置页面,查看子 ...

  6. Nginx配置详细

    ######Nginx配置文件nginx.conf中文详解##### #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_ ...

  7. windows python3.7安装numpy问题的解决方法

    我的是win7的系统,去python官网下载python3.7安装 CMD  #打开命令窗口 pip install numpy #在cmd中输入 提示 需要c++14.0, 解决办法: 1, 进入h ...

  8. [Algorithm] Warm-up puzzles

    闲下来后,需要讲最近涉及到的算法全部整理一下,有个indice,方便记忆宫殿的查找 MIT的算法课,地球上最好:https://ocw.mit.edu/courses/electrical-engin ...

  9. PHP_CodeSniffer HG 服务端部署篇

    环境:CentOs 6.7 语言:PHP5.4 PHP_CodeSniffer: https://github.com/phpdragon/PHP_CodeSniffer 本地代码检测请查看该文章:h ...

  10. 我的Mac Pro coding环境配置

    新装了OS X 10.11.1. 记录一下开发用得到的一些玩意,方便下次再次配置. homebrew国内源:http://mirrors.tuna.tsinghua.edu.cn/help/#home ...