时间:2021-05-22
word2vec介绍
word2vec官网:https://code.google.com/p/word2vec/
简言之:词向量表示法让相关或者相似的词,在距离上更接近。
具体使用(处理中文)
收集语料
本文:亚马逊中文书评语料,12万+句子文本。
语料以纯文本形式存入txt文本。
注意:
理论上语料越大越好
理论上语料越大越好
理论上语料越大越好
重要的事情说三遍。
因为太小的语料跑出来的结果并没有太大意义。
分词
中文分词工具还是很多的,我自己常用的:
- 中科院NLPIR
- 哈工大LTP
- 结巴分词
注意:分词文本将作为word2vec的输入文件。
分词文本示例
word2vec使用
python,利用gensim模块。
win7系统下在通常的python基础上gensim模块不太好安装,所以建议使用anaconda,具体参见: python开发之anaconda【以及win7下安装gensim】
直接上代码——#!/usr/bin/env python# -*- coding: utf-8 -*-"""功能:测试gensim使用,处理中文语料时间:2016年5月21日 20:49:07"""from gensim.models import word2vecimport 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"【不错】和【好】的相似度为:", y1print "--------\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"不合群的词:", y4print "--------\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
--------
不合群的词: 很
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
如何在pytorch中使用word2vec训练好的词向量torch.nn.Embedding()这个方法是在pytorch中将词向量和词对应起来的一个方法.一般
项目中要对短文本进行相似度估计,word2vec是一个很火的工具。本文就word2vec的训练以及加载进行了总结。word2vec的原理就不描述了,word2v
python实现情感分析(Word2Vec)**前几天跟着老师做了几个项目,老师写的时候劈里啪啦一顿敲,写了个啥咱也布吉岛,线下自己就瞎琢磨,终于实现了一个最简
一、前言一开始看到word2vec环境的安装还挺复杂的,安了半天Cygwin也没太搞懂。后来突然发现,我为什么要去安c语言版本的呢,我应该去用python版本的
计算PythonNumpy向量之间的欧氏距离,已知vec1和vec2是两个Numpy向量,欧氏距离计算如下:importnumpydist=numpy.sqrt