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 输出一个两行字符的变量
Feb 05 Python
python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
Apr 25 Python
Python时间模块datetime、time、calendar的使用方法
Jan 13 Python
python之Socket网络编程详解
Sep 29 Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
Mar 23 Python
Atom的python插件和常用插件说明
Jul 08 Python
python随机数分布random测试
Aug 27 Python
Python编程中类与类的关系详解
Aug 08 Python
ubuntu上安装python的实例方法
Sep 30 Python
python爬虫学习笔记之pyquery模块基本用法详解
Apr 09 Python
详解用python -m http.server搭一个简易的本地局域网
Sep 24 Python
tensorboard 可视化之localhost:6006不显示的解决方案
May 22 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
2021年最新CPU天梯图
2021/03/04 数码科技
用文本作数据处理
2006/10/09 PHP
php模板原理讲解
2013/11/13 PHP
ThinkPHP3.1新特性之字段合法性检测详解
2014/06/19 PHP
HTML中不支持静态Expando的元素的问题
2007/03/08 Javascript
JavaScript 三种创建对象的方法
2009/10/16 Javascript
jQuery 学习第六课 实现一个Ajax的TreeView
2010/05/17 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
一个简单不报错的summernote 图片上传案例
2016/07/11 Javascript
JS实现图片垂直居中显示小结
2016/12/13 Javascript
原生js实现网页顶部自动下拉/收缩广告效果
2017/01/20 Javascript
vue + socket.io实现一个简易聊天室示例代码
2017/03/06 Javascript
js CSS3实现卡牌旋转切换效果
2017/07/04 Javascript
详解如何将 Vue-cli 改造成支持多页面的 history 模式
2017/11/20 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
2019/02/19 jQuery
js实现全选和全不选功能
2020/07/28 Javascript
浅析JavaScript预编译和暗示全局变量
2020/09/03 Javascript
Javascript生成器(Generator)的介绍与使用
2021/01/31 Javascript
跟老齐学Python之重回函数
2014/10/10 Python
python结合shell查询google关键词排名的实现代码
2016/02/27 Python
Python实现的单向循环链表功能示例
2017/11/10 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
2018/05/11 Python
tensorflow: variable的值与variable.read_value()的值区别详解
2018/07/30 Python
通过canvas转换颜色为RGBA格式及性能问题的解决
2019/11/22 HTML / CSS
html5 canvas 实现光线沿不规则路径运动
2020/04/20 HTML / CSS
将时尚融入珠宝:Adornmonde
2019/10/17 全球购物
大四学年自我鉴定
2013/11/13 职场文书
班组长竞聘书
2014/03/31 职场文书
幼儿园教师的考核评语
2014/04/18 职场文书
街道党工委党的群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
考生诚信考试承诺书
2015/04/29 职场文书
小鞋子观后感
2015/06/05 职场文书
庭外和解协议书
2016/03/23 职场文书
工作转正自我鉴定范文
2019/06/21 职场文书
Web应用开发TypeScript使用详解
2022/05/25 Javascript
Android开发EditText禁止输入监听及InputFilter字符过滤
2022/06/10 Java/Android