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的输入文件。

分词文本示例

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

model.save("./text8.model")

model.save_word2vec_format("./text8.model.bin",binary=True)
model= word2vec.Word2Vec.load_word2vec_format("./text8.model.bin", binary=True)
---------------------

# 计算两个词的相似度/相关程度
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
运行结果
【不错】和【好】的相似度为: 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
--------

不合群的词: 很
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
参考资料
【python gensim使用】word2vec词向量处理英文语料: 
http://blog.csdn.net/churximi/article/details/51472203 
深度学习:使用 word2vec 和 gensim: 
http://www.open-open.com/lib/view/open1420687622546.html
--------------------- 
作者:竹聿Simon 
来源:CSDN 
原文:https://blog.csdn.net/churximi/article/details/51472300 
版权声明:本文为博主原创文章,转载请附上博文链接!

import gensim
import codecs
from gensim.models import word2vec
import re
from gensim.corpora.dictionary import Dictionary

import pickle
import logging

import numpy as np
# 引入日志配置
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
sentences = word2vec.Text8Corpus('D:/csvtxt/corpus.txt')
model = word2vec.Word2Vec(sentences, size=100,min_count=1)###不过滤只出现1次的词
model.save('word2vec.model')
print(model.similarity('怎么','如何'))
###将模型保存为txt
file=codecs.open('D:/csvtxt/corpus.txt','r+',encoding='utf-8').read()
file1=re.sub('\r\n',' ',file)
file2=file1.split(' ')
vector=[]
for each in file2:
    line=list(model[each])
    lines=[str(i) for i in line]
    linestr=' '.join(lines)
    L=each+' '+linestr
    vector.append(L)
vect='\n'.join(vector)
ff=codecs.open('D:/csvtxt/xyz-add-wordvec.txt','w+',encoding='utf-8')
ff.write(vect)
--------------------- 
作者:zcancandice 
来源:CSDN 
原文:https://blog.csdn.net/weixin_38889448/article/details/79977071 
版权声明:本文为博主原创文章,转载请附上博文链接!

【python gensim使用】word2vec词向量处理中文语料相关推荐

  1. word2vec python 代码实现_python gensim使用word2vec词向量处理中文语料的方法

    word2vec介绍 word2vec是google的一个开源工具,能够根据输入的词的集合计算出词与词之间的距离. 它将term转换成向量形式,可以把对文本内容的处理简化为向量空间中的向量运算,计算出 ...

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

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

  3. word2vec实例详解python_在python下实现word2vec词向量训练与加载实例

    项目中要对短文本进行相似度估计,word2vec是一个很火的工具.本文就word2vec的训练以及加载进行了总结. word2vec的原理就不描述了,word2vec词向量工具是由google开发的, ...

  4. 文本分布式表示(三):用gensim训练word2vec词向量

    今天参考网上的博客,用gensim训练了word2vec词向量.训练的语料是著名科幻小说<三体>,这部小说我一直没有看,所以这次拿来折腾一下. <三体>这本小说里有不少人名和一 ...

  5. 【NLP】基于Word2Vec词向量的中文文本相似度匹配

    Word2Vec 词向量可以用于测量单词之间的相似度,相同语义的单词,其词向量也应该是相似的.对词向量做降维并可视化,可以看到如下图所示的聚类效果,即相近语义的词会聚在一.     文本或句子相似度问 ...

  6. 利用gensim构建word2vec词向量模型并保存词向量

    利用gensim包的word2vec模块构建CBOW或Skip-Gram模型来进行词向量化比较方便. 具体gensim.models.Word2Vec模型的参数可以看官网介绍: https://rad ...

  7. 学习笔记(06):自然语言处理Word2Vec视频学习教程-使用gensim构建word2vec词向量

    立即学习:https://edu.csdn.net/course/play/5226/106444?utm_source=blogtoedu word2vec size 50 300 特征向量维度

  8. 【NLP】维基百科中文数据训练word2vec词向量模型——基于gensim库

    前言   本篇主要是基于gensim 库中的 Word2Vec 模型,使用维基百科中文数据训练word2vec 词向量模型,大体步骤如下: 数据预处理 模型的训练 模型的测试 准备条件: Window ...

  9. word2vec词向量训练及中文文本类似度计算

    本文是讲述怎样使用word2vec的基础教程.文章比較基础,希望对你有所帮助! 官网C语言下载地址:http://word2vec.googlecode.com/svn/trunk/ 官网Python ...

最新文章

  1. mysql 存储过程 invoker invoker
  2. python代码写好了怎么运行并画图-无所不能的python编程是怎么快速画图的呢?5分钟学会!...
  3. DTS和PTS的解释(FFMPEG、HLS相关)
  4. 【软件工程】技术规格说明书
  5. 数据结构实验之排序五:归并求逆序数
  6. Fibonacci数列第n项的第7种计算方法:Python列表
  7. hadoop-执行mapreduce时主机名非法的处理
  8. 最佳黑色背景的Visual Studio 2005/2008配置-尤其适合开发人员使用
  9. 支持断点续传的大文件传输协议
  10. 双人版井字棋游戏c语言设计报告,井字棋游戏课程设计总结报告.doc
  11. 如何在HTML中添加背景音乐?
  12. gogo/protobuf proto.GoGoProtoPackageIsVersion2、proto3 版本 不一致
  13. 如何留住你的员工——员工流失分析
  14. 重庆大学计算机学院马前,以梦为马,以论为矛
  15. 【汇正财经】什么是金融股?
  16. 影响照片锐度的7个要素
  17. 坦克世界未能连接至更新服务器,坦克世界连接到更新服务器失败,小猪教您怎么解决坦克世界连接到更新服务器...
  18. 《只为遇见你》硬生生把爱情片拍成了把妹宝典,真人出镜演绎直男转型
  19. 从飞思卡尔到NXP,经久不衰的i.MX系列产品背后的“成功学”
  20. 计算机速录方法,速录练习技巧方法介绍

热门文章

  1. putty改oracle数据库密码,用putty远程访问虚拟机linux系统Oracle数据库。
  2. oracle监听显示未成功_理解 oracle 的 lsnrctl status
  3. mysql innodb 索引结构_Mysql 学习笔记:InnoDB 索引结构浅析
  4. linux 3.5.0-23-generic内核版本系统调用数目,Linux操作系统分析(三)- 更新内核与添加系统调用...
  5. 基于注解处理器开发自动生成getter和setter方法的插件
  6. [ucgui] 对话框7——按钮触发与模式窗口
  7. 一致性哈希算法的理解
  8. fatal error: Python.h: No such file or directory 解决
  9. 用css绘制各种形状
  10. python 学习 之 第二章(条件、循环和其他语句)