gensim中使用word2vec
来源:互联网 发布:g96恒线速度编程实例 编辑:程序博客网 时间:2024/05/29 14:42
训练语料
由于自己在csdn的上传空间不够,暂时将语料放在百度云上
链接: https://pan.baidu.com/s/1qYKRXOo 密码: 4psr
文件名是 text8
或者在gensim的word2vec模块官网进行下载。
word2vec在mac os 上的安装
下载word2vec源文件
http://download.csdn.net/detail/a1368783069/9585714
在终端直接 make 会报错:
error: malloc.h: No such file or directory
找到报错的文件,
将#include <malloc.h>注释,并添加头文件#include <stdlib.h>如下所示://#include <malloc.h>#include <stdlib.h>
当以上错误在所有文件中都被改正后,直接 make进行编译,最后编译,并出现一句错误(忘了),不用管,打开word2vec自带的demo,例如 ./demo-analogy.sh,查看是否正常运行。
在gensim中使用word2vec
将python当前工作路径切换到训练语料text8所在的目录,或者是在预料所在的目录下,打开终端或者python IDE.
安装gnesim:
自己使用的python3.5,在终端直接 pip3 install gensim 进行安装。
pip3 install gensim
通过加载训练预料,进行初始化并训练word2vec模型
from gensim.models import word2vecsentences = word2vec.Text8Corpus("./text8")model = word2vec.Word2Vec(sentences,size=200)
计算相似的词,topn=1设置自取最相似词表中的第一个
model.most_similar(positive=["woman","king"],negative=["man"],topn=1)# output : [('queen', 0.6571654081344604)]#其意义是计算一个词d(或者词表),使得该词的向量v(d)与v(a="woman")-v(c="man")+v(b="king")最近
持久化训练后的模型到本地,加载持久化的模型创建新的模型
model.save("./text8.model")model.save_word2vec_format("./text8.model.bin",binary=True)model= word2vec.Word2Vec.load_word2vec_format("./text8.model.bin", binary=True)
计算相似的词,
1,类比的方法,即原版本中的 Analogy 方法。
model.most_similar(['girl','father'],['boy'],topn=3)# output:[('mother', 0.7488583326339722), ('wife', 0.7154518365859985), ('lover', 0.6844878196716309)]model.most_similar(['girl','father'],['boy'],topn=10)#output:[('mother', 0.7488583326339722), ('wife', 0.7154518365859985), ('lover', 0.6844878196716309), ('daughter', 0.673076331615448), ('grandmother', 0.6717995405197144), ('grandfather', 0.6610891819000244), ('widow', 0.6601356267929077), ('aunt', 0.6599773168563843), ('brother', 0.6576226949691772), ('servant', 0.6481131315231323)]more_examples = ["he his she", "big bigger bad","going went being"]for example in more_examples: a,b,x = example.split() predicted = model.most_similar([x,b],[a])[0][0] print(a,b,x,predicted)#output:#he his she her#big bigger bad worse#going went being was
2, 计算与当前词距离最近的词,即原版本中的distance方法
model.most_similar(["boy"], topn=3)# ormodel.most_similar("boy", topn=3)#[('girl', 0.7218124270439148), ('kid', 0.6669290065765381), ('boss', 0.6069169044494629)]
3, 计算相似概率,即词向量的cosine值
model.similarity("boy", "girl")#0.72181237676432175
4, word-embeding向量大小
model["boy"]#array([ 1.06947005, 0.11825128, 0.66958714, 0.64033055, 0.15489197, -0.57684672, -0.4583835 , 1.20578945, -0.79072052, .......model["boy"].shape# (200,)
发现不匹配的词
model.doesnt_match("breakfast cereal dinner lunch".split())#output:'cereal'
具体的类语法:gensim.models.word2vec.Word2Vec
参考官网:http://radimrehurek.com/gensim/models/word2vec.html
0 0
- gensim中使用word2vec
- Python中gensim库word2vec的使用
- Gensim Word2vec 使用教程
- Gensim Word2vec 使用教程
- Gensim Word2vec 使用教程
- gensim版word2vec的使用
- gensim word2vec
- gensim Word2vec
- gensim函数库中Word2Vec的参数说明
- 深度学习:使用 word2vec 和 gensim
- Word2Vec的Python版Gensim的使用
- Gensim Word2vec简介
- Gensim Word2vec简介
- gensim 之 word2vec
- gensim word2vec 实例
- word2vec using gensim
- 【python gensim使用】word2vec词向量处理英文语料
- 【python gensim使用】word2vec词向量处理中文语料
- Replace To Make Regular Bracket Sequence(括号配对问题)
- Linux学习笔记
- WebGL学习笔记(一)
- 三维空间上的旋转
- cocos2dx C++绑定lua
- gensim中使用word2vec
- C#与matlab的混合编程
- 你真的会用Gson吗?Gson使用指南(四)
- Java线程学习笔记(二)---多线程同步方法
- Android PullToRefresh (ListView GridView 下拉刷新)
- 超越扁平化设计的「化繁为简」有哪些亮点?
- 69 个经典 Spring 面试题和答案
- Java Web开发Tomcat中三种部署项目的方法
- SVN版本控制与分支设置