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实现协同过滤的教程
Apr 08 Python
python实现获取Ip归属地等信息
Aug 27 Python
python实现NB-IoT模块远程控制
Jun 20 Python
Flask框架使用DBUtils模块连接数据库操作示例
Jul 20 Python
Django代码性能优化与Pycharm Profile使用详解
Aug 26 Python
用Python爬取QQ音乐评论并制成词云图的实例
Aug 24 Python
python学生信息管理系统实现代码
Dec 17 Python
python自动化unittest yaml使用过程解析
Feb 03 Python
Mac PyCharm中的.gitignore 安装设置教程
Apr 16 Python
Python之变量类型和if判断方式
May 05 Python
使用sklearn对多分类的每个类别进行指标评价操作
Jun 11 Python
PYTHON基于Pyecharts绘制常见的直角坐标系图表
Apr 28 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获取目标函数执行时间示例
2014/03/04 PHP
PHP实现打包下载文件的方法示例
2017/10/07 PHP
Laravel统计一段时间间隔的数据方法
2019/10/09 PHP
javascript textarea光标定位方法(兼容IE和FF)
2011/03/12 Javascript
jquery表单验证框架提供的身份证验证方法(示例代码)
2013/12/27 Javascript
jQuery页面加载初始化常用的三种方法
2014/06/04 Javascript
JavaScript的设计模式经典之建造者模式
2016/02/24 Javascript
vue2导航根据路由传值,而改变导航内容的实例
2017/11/10 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
微信小程序Getuserinfo解决方案图解
2018/08/24 Javascript
详解如何在Node.js的httpServer中接收前端发送的arraybuffer数据
2018/11/11 Javascript
vue无限轮播插件代码实例
2019/05/10 Javascript
Vue实现剪切板图片压缩功能
2020/02/04 Javascript
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
vue使用echarts画组织结构图
2021/02/06 Vue.js
python正则分组的应用
2013/11/10 Python
python中的对象拷贝示例 python引用传递
2014/01/23 Python
python回溯法实现数组全排列输出实例分析
2015/03/17 Python
使用Python编写类UNIX系统的命令行工具的教程
2015/04/15 Python
python同时给两个收件人发送邮件的方法
2015/04/30 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2018/09/19 Python
详解解决Python memory error的问题(四种解决方案)
2019/08/08 Python
python3 实现的对象与json相互转换操作示例
2019/08/17 Python
python 实现两个线程交替执行
2020/05/02 Python
Python基于gevent实现文件字符串查找器
2020/08/11 Python
Django URL参数Template反向解析
2020/11/24 Python
html5中的一些标签学习(心得)
2016/10/18 HTML / CSS
Trina Turk官网:美国时装和泳装品牌
2018/06/10 全球购物
专业销售业务员求职信
2013/11/18 职场文书
护士求职推荐信范文
2013/11/23 职场文书
护士自荐信范文
2013/12/15 职场文书
化学系大学生自荐信范文
2014/03/01 职场文书
教育基金募捐倡议书
2014/05/14 职场文书
关爱残疾人演讲稿
2014/05/24 职场文书
文案策划专业自荐信
2014/07/07 职场文书
办公室岗位职责范本
2015/04/11 职场文书