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 搭建Web站点之Web服务器与Web框架
Nov 06 Python
Python使用win32com实现的模拟浏览器功能示例
Jul 13 Python
Python编写Windows Service服务程序
Jan 04 Python
对Python中DataFrame按照行遍历的方法
Apr 08 Python
Python内存读写操作示例
Jul 18 Python
python利用thrift服务读取hbase数据的方法
Dec 27 Python
Python实现PyPDF2处理PDF文件的方法示例
Sep 25 Python
Python拆分大型CSV文件代码实例
Oct 07 Python
opencv 形态学变换(开运算,闭运算,梯度运算)
Jul 07 Python
python实现视频压缩功能
Dec 18 Python
scrapy-splash简单使用详解
Feb 21 Python
用python实现监控视频人数统计
May 21 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 ZipArchive压缩函数详解实例
2013/11/06 PHP
推荐十款免费 WordPress 插件
2015/03/24 PHP
javascript document.images实例
2008/05/27 Javascript
将string解析为json的几种方式小结
2010/11/11 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
JavaScript实现N皇后问题算法谜题解答
2014/12/29 Javascript
js时钟翻牌效果实现代码分享
2020/07/31 Javascript
jQuery实现的超酷苹果风格图标滑出菜单效果代码
2015/09/16 Javascript
Sort()函数的多种用法
2016/03/20 Javascript
浅析JS中常用类型转换及运算符表达式
2017/07/23 Javascript
JS中Attr的用法详解
2017/10/09 Javascript
在HTML文档中嵌入JavaScript的四种方法
2018/05/07 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
2019/09/10 Javascript
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
[01:15:12]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#4Newbee VS CDEC
2016/03/03 DOTA
Python2.X/Python3.X中urllib库区别讲解
2017/12/19 Python
获取python文件扩展名和文件名方法
2018/02/02 Python
Python实现基于KNN算法的笔迹识别功能详解
2018/07/09 Python
python 制作自定义包并安装到系统目录的方法
2018/10/27 Python
django settings.py 配置文件及介绍
2019/07/15 Python
如何基于python操作json文件获取内容
2019/12/24 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
2020/02/18 Python
python中前缀运算符 *和 **的用法示例详解
2020/05/28 Python
使用OpenCV实现道路车辆计数的使用方法
2020/07/15 Python
Python爬取12306车次信息代码详解
2020/08/12 Python
Django CBV模型源码运行流程详解
2020/08/17 Python
CSS3实现的渐变幻灯片效果
2020/12/07 HTML / CSS
html5文字阴影效果text-shadow使用示例
2013/07/25 HTML / CSS
Laura官网:加拿大女性的顶级时尚目的地
2019/09/20 全球购物
总裁办公室主任职责
2014/01/02 职场文书
微型企业创业投资计划书
2014/01/10 职场文书
社区工作者先进事迹
2014/01/18 职场文书
物流管理毕业生自荐信范文
2014/03/15 职场文书
单位介绍信格式
2015/01/31 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
2015年清剿火患专项行动工作总结
2015/07/27 职场文书