word2vec介绍

word2vec是google的一个开源工具,能够根据输入的词的集合计算出词与词之间的距离。

它将term转换成向量形式,可以把对文本内容的处理简化为向量空间中的向量运算,计算出向量空间上的相似度,来表示文本语义上的相似度。

word2vec计算的是余弦值,距离范围为0-1之间,值越大代表两个词关联度越高。

词向量:用Distributed Representation表示词,通常也被称为“Word Representation”或“Word Embedding(嵌入)”。

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

具体使用(处理中文)

收集语料

本文:亚马逊中文书评语料,12万+句子文本。

语料以纯文本形式存入txt文本。

注意:

理论上语料越大越好

理论上语料越大越好

理论上语料越大越好

重要的事情说三遍。

因为太小的语料跑出来的结果并没有太大意义。

分词

中文分词工具还是很多的,我自己常用的:

- 中科院NLPIR

- 哈工大LTP

- 结巴分词

注意:分词文本将作为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

--------

不合群的词: 很

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

word2vec python 代码实现_python gensim使用word2vec词向量处理中文语料的方法相关推荐

  1. 【python gensim使用】word2vec词向量处理中文语料

    word2vec介绍 word2vec官网:https://code.google.com/p/word2vec/ word2vec是google的一个开源工具,能够根据输入的词的集合计算出词与词之间 ...

  2. 学习笔记(04):自然语言处理Word2Vec视频学习教程-使用Gensim库构造词向量

    立即学习:https://edu.csdn.net/course/play/5226/94801?utm_source=blogtoedu min_count 过滤低频词,出现比较低概率的词. 常设置 ...

  3. 【Gensim + TSNE使用】word2vec词向量处理中文小说 (词嵌入、高维数据降维)

    [Gensim + TSNE使用]word2vec词向量处理中文小说 本文使用Gensim对小说斗破苍穹进行词嵌入可视化 流程 数据预处理,将小说数据滤除停止词,分词book_loader(). 调用 ...

  4. NLP之词向量:利用word2vec对20类新闻文本数据集进行词向量训练、测试(某个单词的相关词汇)

    NLP之词向量:利用word2vec对20类新闻文本数据集进行词向量训练.测试(某个单词的相关词汇) 目录 输出结果 设计思路 核心代码 输出结果 寻找训练文本中与morning最相关的10个词汇: ...

  5. google python代码规范_Python代码这样写才规范优雅! (二)

    前文传送门:Python代码这样写才规范优雅! (一)参考:https://www.python.org/dev/peps/pep-0008/Python PEP8编码规范的内容如下: 1. Intr ...

  6. python代码风格_Python编码风格,看这篇就够了

    如果有人问起 Python 程序员他们最喜欢 Python 哪一点,他们一定会提到 Python 的高可读性.确实,对于 Python 来说,其高可读性一直是 Python 这门语言设计的核心.一个不 ...

  7. word2vec训练词向量 python_使用Gensim word2vector训练词向量

    注意事项 Skip-Gram models:输入为单个词,输出目标为多个上下文单词: CBOW models:输入为多个上下文单词,输出目标为一个单词: 选择的训练word2vec的语料要和要使用词向 ...

  8. python代码测试_Python入门学习系列——Python代码测试

    Python代码测试 对于编写的代码,可以使用unittest模块中的相关方法进行测试. 测试函数 首先定义一个简单的函数,该函数用来合并名称并返回. name_function.py: def ge ...

  9. python代码片段_Python 常用代码片段

    1.[代码][Python]代码 1.生成随机数 import random #这个是注释,引入模块 rnd = random.randint(1,500)#生成1-500之间的随机数 2.读文件 f ...

最新文章

  1. 紫书 习题 10-17 UVa 11105 (筛法)
  2. 再议.Net中null的使用规范
  3. 开需求评审会,你会出汗吗?
  4. 学习 WCF (5)--学习Binding的使用
  5. Item9:总是要改写toString
  6. java 文本编辑器 源码_java文本编辑器源码
  7. linux服务器指示灯,【转】明明白白你的Linux服务器——故障篇 | 旺旺知识库
  8. android image 转yuv_Android将camera获取到的YuvData在jni中转化为Mat方法
  9. mac 上iterm终端显示中文为乱码解决方案
  10. Android Spinner(下拉菜单)常用属性与点击事件获取值
  11. SQL 删除重复数据,只保留一行
  12. linux mysql 客户端 服务端_MySQL客户端和服务器端工具集
  13. 高通mtk手机常用指令
  14. 蛋白工厂(rRNA)和物流系统(tRNA)的识别鉴定-Barrnap,Infernal和tRNA-scan-SE
  15. 数据恢复——在Windows 10中恢复永久删除的文件的5种方法
  16. wps如何在目录里面打省略号_wps中目录的点怎么打(目录的点点怎样手动打)
  17. ae字体预设下载_20组经典的文字动画AE源文件,含20个AE预设
  18. 世纪龙校招java开发一、二面 面经
  19. 快慢指针求环入口问题:
  20. 使用MOD13A1产品NDVI数据计算植被覆盖度

热门文章

  1. python 操作mongodb数据库参考文档
  2. vm中linux物理内存不足解决方案
  3. iOS之 开发常用到的宏定义
  4. .NET配置文件读写实例(附SosoftConfigHelper类)
  5. VSTO应用程序中加入键盘钩子
  6. 这该死的高度,height,clientHeight,scrollHeight,offsetHeight
  7. 上拉加载更多后台数据_6-7【微信小程序全栈开发课程】记录页面(七)--分页加载记录数据...
  8. Spring IO platform
  9. 14.JAVA整型变量
  10. android:showAsAction 无效