python调用word2vec工具包安装和使用指南
python调用word2vec工具包安装和使用指南
word2vec python-toolkit installation and use tutorial
本文选译自英文版,代码注释均摘自本文,建议先阅读skip-model相关知识再阅读本指南
github仓库地址
环境准备
- 安装gcc, 安装gcc坑比较多,这里建议使用codeblocks自带的gcc编译器,下载地址,这里注意,一定要点击codeblocks-mingw版本,安装完成后设置环境变量Path, INCLUDE, LIB
- 尝试安装:
pip install word2vec
, 观察报错情况,这里有几种解决方法,我遇到的报错是Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/downloads/
解决方法是下载microsoft vc++下载指南, 还有其他可能的错误,链接如下:报错列表,题外话:安装python工具包时,先查阅pypi,可以避免一些错误
模型的训练
导入模型import word2vec
同义词合并,例如michael jacson和 michael-jackson
word2vec.word2phrase('./txt_file/text8', './txt_file/text8-phrases', verbose=True)
训练skip-gram model, 得到word2vec词向量表示,size为向量的维数
word2vec.word2vec('/Users/drodriguez/Downloads/text8-phrases', '/Users/drodriguez/Downloads/text8.bin', size=100, verbose=True)
输出
text8.bin
文件,包含二进制形式的词向量组词向量的应用:单词聚类,产生
text8-clusters.txt
包含所有单词的聚类结果, 结果数目小于等于单词表数目word2vec.word2clusters('/Users/drodriguez/Downloads/text8', '/Users/drodriguez/Downloads/text8-clusters.txt', 100, verbose=True)
model模型的使用
导入刚才产生的模型
model = word2vec.load('/Users/drodriguez/Downloads/text8.bin')
model的属性
model.vocab
, 得到单词表的numpy.array格式,这里的单词不是词向量形式model.vectors
是模型的矩阵,n为单词数目,m为词向量长度,vectors
为n*m维可以通过
model['dog'].shape
或者model['dog'][:10]
来访问某一个单词的词向量信息计算几个词向量两两之间的距离:
model.distance("dog", "cat", "fish")
得到某一个单词的相似词(基于余弦相似度):
indexes, metrics = model.similar("dog")
,第一个返回值为相似向量的下标,第二个为相似度,都为tuple格式,得到相应的单词可使用model.vocab[indexes]
得到相似词的统计信息:(词,相似度)
model.generate_response(indexes, metrics)
,还可以使用model.generate_response(indexes, metrics).tolist()
来转换得到python数据类型词向量直接加减运算:
indexes, metrics = model.analogy(pos=['king', 'woman'], neg=['man'])
,返回值和generate_response method
相同
cluster模型的使用
导入cluster模型
clusters = word2vec.load_clusters('/Users/drodriguez/Downloads/text8-clusters.txt')
得到某一组结果
clusters.get_words_on_cluster(90)
,结果为这一组的所有单词
cluster和model的结合使用
将cluster添加到word2vec model中
model.clusters = clusters
进行类似的加减分析:
indexes, metrics = model.analogy(pos=["paris", "germany"], neg=["france"])
得到结果后,
model.generate_response(indexes, metrics).tolist()
,得到(单词,相似程度,所属组号)
python调用word2vec工具包安装和使用指南的更多相关文章
- python+anaconda+pycharm工具包安装
更新额外包 $ conda update conda 更新pip python -m pip install --upgrade pip 更新所有 conda update --all 安装ffmpe ...
- python调用java代码 java虚拟机(jvm)
1.新建com文件夹,在里面新建 fibnq.java package com; public class fibnq { public fibnq(){} public int fb(int n){ ...
- python pip配置以及安装工具包的一些方法
pip是python的一个工具包管理工具,可以下载安装需要的工具包,想要使用它来管理工具包首先要安装pip,安装方法可以参照下面这个网址来进行: https://www.cnblogs.com/Nan ...
- Python包安装及使用指南
这里长期更新一些Python第三方包的安装教程,以及使用教程... Pygame 安装教程: Windows: 首先,查看已安装的Python版本:访问https://www.lfd.uci.edu/ ...
- P6 EPPM 安装与配置指南 16 R1 2016.4
关于安装和 配置P6 EPPM 本指南告诉你如何自动 安装和配置您的应用程序. 在您开始之前,阅读 先决条件 P6 EPPM配置 (7页). 安装P6 EPPM 您将使用 安装程序 (窗口) . ...
- python特征提取——pyAudioAnalysis工具包
作者:桂. 时间:2017-05-04 18:31:09 链接:http://www.cnblogs.com/xingshansi/p/6806637.html 前言 语音识别等应用离不开音频特征的 ...
- Python编程之美:最佳实践指南PDF高清完整版免费下载|百度云盘|Python新手到进阶
百度云盘:Python编程之美:最佳实践指南PDF高清完整版免费下载 提取码:1py6 内容简介 <Python编程之美:最佳实践指南>是Python用户的一本百科式学习指南,由Pytho ...
- python调用其他程序或脚本方法(转)
python运行(调用)其他程序或脚本 在Python中可以方便地使用os模块运行其他的脚本或者程序,这样就可以在脚本中直接使用其他脚本,或者程序提供的功能,而不必再次编写实现该功能的代码.为了更好地 ...
- 在 Windows 上安装Rabbit MQ 指南
rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.他遵循Mozilla Public License开源协议.采用 Erlang 实现的工业级的消息队列(MQ)服务器. Ra ...
随机推荐
- OpenCV-Python 轮廓特征 | 二十二
目标 在本文中,我们将学习 如何找到轮廓的不同特征,例如面积,周长,质心,边界框等. 您将看到大量与轮廓有关的功能. 1. 特征矩 特征矩可以帮助您计算一些特征,例如物体的质心,物体的面积等.请查看特 ...
- [AI开发]一个例子说明机器学习和深度学习的关系
深度学习现在这么火热,大部分人都会有‘那么它与机器学习有什么关系?’这样的疑问,网上比较它们的文章也比较多,如果有机器学习相关经验,或者做过类似数据分析.挖掘之类的人看完那些文章可能很容易理解,无非就 ...
- 使用FME将CAD中块参照数据转换为shp数据
暴露出需要导出的字段值,首先在数据查看器中看看CAD中各个图层分别有哪些隐含的字段. CAD快参照中含有多个部分,需要将点按照原始编码聚合成一个点. 属性字段创建,并按照属性字段一一对应CAD中的字段 ...
- Go相关面试题目总结(日常更新)
1.go的深拷贝与浅拷贝 深拷贝 会赋值全部的内容 内容一样但是地址不一样 修改任何一个后地址不一样 内容也会一样 changeName(h1)对象传到函数里面也是深拷贝 b := a 这是深拷贝 会 ...
- office2010安装与破解,笔者亲测可用!!!!!!
我们首先需要准备office2010安装包与破相应的破解软件.软件包的获取方式:扫码关注[猿成长],,回复 office2010安装,即可获取,下载解压后文件目录结构如下图所示: 打开安装程序文件夹, ...
- Java实现3次找到假球
前言 之前老师让写一个程序,就写了写. 正文 题目要求 程序要求 10个铅球中有一个假球(比其他铅球的重量要轻),用天平三次称出假球. 程序设计思路 第一次使用天平分别称5个球,判断轻的一边有假球:拿 ...
- HBase 监控 | HBase Metrics 初探(一)
前言:对于任意一个系统而言,做好监控都是非常重要的,HBase也不例外.经常,我们会从JMX中获取相关指标来做展示.对HBase进行监控,那这些指标是怎么生成的呢?如果你想自定义自己的监控指标又该怎么 ...
- Vertica的这些事(二)——SQL-Server、Oracle、MySQL和Vertica数据库常用函数对比
SQL Server.Oracle.MySQL和Vertica数据库常用函数对比 Vertica数据库是HP公司新收购的用于BI方面的数据库. 绝对值 S:select abs(-1) value O ...
- 并发——抽象队列同步器AQS的实现原理
一.前言 这段时间在研究Java并发相关的内容,一段时间下来算是小有收获了.ReentrantLock是Java并发中的重要部分,所以也是我的首要研究对象,在学习它的过程中,我发现它是基于抽象队列 ...
- C语言学生管理系统(C语言课程设计/精简版)
#include<stdio.h>#include<stdlib.h>#include<windows.h>#include<conio.h>typed ...