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内置函数dir详解
Apr 14 Python
python获取指定目录下所有文件名列表的方法
May 20 Python
Python使用正则表达式实现文本替换的方法
Apr 18 Python
Python实现XML文件解析的示例代码
Feb 05 Python
浅谈python 读excel数值为浮点型的问题
Dec 25 Python
python实现文件的分割与合并
Aug 29 Python
pip install python 快速安装模块的教程图解
Oct 08 Python
Django:使用filter的pk进行多值查询操作
Jul 15 Python
Python django框架 web端视频加密的实例详解
Nov 20 Python
Python下opencv使用hough变换检测直线与圆
Jun 18 Python
基于Python编写简易版的天天跑酷游戏的示例代码
Mar 23 Python
详解NumPy中的线性关系与数据修剪压缩
May 25 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模板页面中分页代码的解析
2009/02/06 PHP
php中一个完整表单处理实现代码
2011/11/10 PHP
php实现从上传文件创建缩略图的方法
2015/04/02 PHP
php专用数组排序类ArraySortUtil用法实例
2015/04/03 PHP
Laravel实现autoload方法详解
2017/05/07 PHP
javascript 多级checkbox选择效果
2009/08/20 Javascript
jquery.simple.tree插件 更简单,兼容性更好的无限树插件
2010/09/03 Javascript
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
jquery 年会抽奖程序
2011/12/22 Javascript
javascript获取隐藏dom的宽高 具体实现
2013/07/14 Javascript
jquery实现的鼠标拖动排序Li或Table
2014/05/04 Javascript
JS仿Windows开机启动Loading进度条的方法
2015/02/26 Javascript
详解JavaScript 中的 replace 方法
2016/01/01 Javascript
XMLHttpRequest Level 2 使用指南
2016/08/26 Javascript
AngularJS实现星星等级评分功能
2016/09/24 Javascript
解决vue-cli中stylus无法使用的问题方法
2017/06/19 Javascript
谈谈JS中的!!
2017/12/07 Javascript
webpack打包js的方法
2018/03/12 Javascript
详解ES6系列之私有变量的实现
2018/11/21 Javascript
layer扩展打开/关闭动画的方法
2019/09/23 Javascript
python查找目录下指定扩展名的文件实例
2015/04/01 Python
Python中的列表知识点汇总
2015/04/14 Python
初步剖析C语言编程中的结构体
2016/01/16 Python
python中类的属性和方法介绍
2018/11/27 Python
Django实现微信小程序的登录验证功能并维护登录态
2019/07/04 Python
python3中sorted函数里cmp参数改变详解
2020/03/12 Python
Python如何读取、写入CSV数据
2020/07/28 Python
利用Python实现最小二乘法与梯度下降算法
2021/02/21 Python
个人自荐书
2013/12/20 职场文书
销售员求职个人的自我评价
2014/02/19 职场文书
社区两委对照检查材料
2014/08/23 职场文书
毕业生对母校寄语
2015/02/26 职场文书
2019年最新七夕唯美祝福语(60条)
2019/07/22 职场文书
OpenCV-Python实现图像平滑处理操作
2021/06/08 Python
一文彻底理解js原生语法prototype,__proto__和constructor
2021/10/24 Javascript
apache虚拟主机配置的三种方式(小结)
2022/07/23 Servers