python gensim使用word2vec词向量处理中文语料的方法


Posted in Python onJuly 05, 2019

word2vec介绍

word2vec官网:https://code.google.com/p/word2vec/

  • word2vec是google的一个开源工具,能够根据输入的词的集合计算出词与词之间的距离。
  • 它将term转换成向量形式,可以把对文本内容的处理简化为向量空间中的向量运算,计算出向量空间上的相似度,来表示文本语义上的相似度。
  • word2vec计算的是余弦值,距离范围为0-1之间,值越大代表两个词关联度越高。
  • 词向量:用Distributed Representation表示词,通常也被称为“Word Representation”或“Word Embedding(嵌入)”。

简言之:词向量表示法让相关或者相似的词,在距离上更接近。

具体使用(处理中文)

收集语料

本文:亚马逊中文书评语料,12万+句子文本。
语料以纯文本形式存入txt文本。
注意:
理论上语料越大越好
理论上语料越大越好
理论上语料越大越好
重要的事情说三遍。
因为太小的语料跑出来的结果并没有太大意义。

分词

中文分词工具还是很多的,我自己常用的:
- 中科院NLPIR
- 哈工大LTP
- 结巴分词

注意:分词文本将作为word2vec的输入文件。

分词文本示例

python gensim使用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 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
--------

不合群的词: 很

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python爬虫实现教程转换成 PDF 电子书
Feb 19 Python
Python实现一个简单的验证码程序
Nov 03 Python
matplotlib简介,安装和简单实例代码
Dec 26 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
Apr 30 Python
Python 调用 zabbix api的方法示例
Jan 06 Python
Python告诉你木马程序的键盘记录原理
Feb 02 Python
python分割一个文本为多个文本的方法
Jul 22 Python
HTML的form表单和django的form表单
Jul 25 Python
Python操作远程服务器 paramiko模块详细介绍
Aug 07 Python
python global关键字的用法详解
Sep 05 Python
Python英文文章词频统计(14份剑桥真题词频统计)
Oct 13 Python
python 判断一组数据是否符合正态分布
Sep 23 Python
python开发之anaconda以及win7下安装gensim的方法
Jul 05 #Python
python使用opencv对图像mask处理的方法
Jul 05 #Python
Python代码太长换行的实现
Jul 05 #Python
Python PyCharm如何进行断点调试
Jul 05 #Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
Jul 04 #Python
Python计算一个点到所有点的欧式距离实现方法
Jul 04 #Python
python绘制已知点的坐标的直线实例
Jul 04 #Python
You might like
PHP生成静态页面详解
2006/12/05 PHP
php自动适应范围的分页代码
2008/08/05 PHP
php分页代码学习示例分享
2014/02/20 PHP
php使用parse_url和parse_str解析URL
2015/02/22 PHP
PHP简单处理表单输入的特殊字符的方法
2016/02/03 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
2016/11/04 PHP
JS声明变量背后的编译原理剖析
2012/12/28 Javascript
浅谈关于JavaScript的语言特性分析
2013/04/11 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
javascript的propertyIsEnumerable()方法使用介绍
2014/04/09 Javascript
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
2014/08/30 Javascript
浅谈node.js中async异步编程
2015/10/22 Javascript
移动端点击态处理的三种实现方式
2017/01/12 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
微信小程序block的使用教程
2018/04/01 Javascript
vue template中slot-scope/scope的使用方法
2018/09/06 Javascript
Vue实现固定定位图标滑动隐藏效果
2019/05/30 Javascript
ElementUI之Message功能拓展详解
2019/10/18 Javascript
angula中使用iframe点击后不执行变更检测的问题
2020/05/10 Javascript
Python lambda和Python def区别分析
2014/11/30 Python
Python中__name__的使用实例
2015/04/14 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
Python3.4 splinter(模拟填写表单)使用方法
2018/10/13 Python
Python实现计算文件MD5和SHA1的方法示例
2019/06/11 Python
python中tkinter的应用:修改字体的实例讲解
2019/07/17 Python
Python谱减法语音降噪实例
2019/12/18 Python
TensorBoard 计算图的查看方式
2020/02/15 Python
Python3实现英文字母转换哥特式字体实例代码
2020/09/01 Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
2020/11/02 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
python 制作网站小说下载器
2021/02/20 Python
俄罗斯马克西多姆家居用品网上商店:Максидом
2020/02/06 全球购物
印刷工程专业应届生求职信
2013/09/29 职场文书
仓库管理专业个人的自我评价
2013/12/30 职场文书
政治思想表现评语
2014/05/04 职场文书
springboot新建项目pom.xml文件第一行报错的解决
2022/01/18 Java/Android