Gensim是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。它支持包括TF-IDF,LSA,LDA,和word2vec在内的多种主题模型算法,支持流式训练,并提供了诸如相似度计算,信息检索等一些常用任务的API接口。

1、实现类

class gensim.models.Word2Vec(sentences=None, size=100, alpha=0.025, window=5, min_count=5, max_vocab_size=None, sample=0.001, seed=1, workers=3, min_alpha=0.0001, sg=0, hs=0, negative=5, cbow_mean=1, hashfxn=<built-in function hash>, iter=5, null_word=0, trim_rule=None, sorted_vocab=1, batch_words=10000)

2、方法:

(1)gensim.models.Word2Vec.similarity(ws1,ws2):计算两个单词之间的余弦相似度。

>>> trained_model.similarity('woman', 'man')
0.73723527 >>> trained_model.similarity('woman', 'woman')
1.0

(2)gensim.models.Word2Vec.n_similarity(ws1,ws2):计算两组单词之间的余弦相似度。

>>> trained_model.n_similarity(['sushi', 'shop'], ['japanese', 'restaurant'])
0.61540466561049689 >>> trained_model.n_similarity(['restaurant', 'japanese'], ['japanese', 'restaurant'])
1.0000000000000004 >>> trained_model.n_similarity(['sushi'], ['restaurant']) == trained_model.similarity('sushi', 'restaurant')
True

(3)gensim.models.Word2Vec.most_similar([positive,negative,topn,...]):找到前N个最相似的单词。

>>> trained_model.most_similar(positive=['woman', 'king'], negative=['man'])
[('queen', 0.50882536), ...]

(4)gensim.models.Word2Vec.similar_by_wordword [,topn,restrict_vocab]):找到前N个最相似的单词。

>>> trained_model.similar_by_word('graph')
[('user', 0.9999163150787354), ...]

(5)gensim.models.Word2Vec.similar_by_vector(vector [,topn,restrict_vocab]):通过向量找到前N个最相似的单词。

>>> trained_model.similar_by_vector([1,2])
[('survey', 0.9942699074745178), ...]

具体使用请阅读其博客内的它文章。

附、参数说明:

sentences: 可以是一个list,对于大语料集,建议使用BrownCorpus,Text8Corpus或lineSentence构建。
size: 是指特征向量的维度,默认为100。大的size需要更多的训练数据,但是效果会更好。推荐值为几十到几百。
alpha: 学习速率
window: 表示当前词与预测词在一个句子中的最大距离是多少。5表示每个词考虑前5个词与后5个词。
min_count: 可以对字典做截断。词频少于min_count次数的单词会被丢弃掉,默认值为5。
max_vocab_size: 设置词向量构建期间的RAM限制。如果所有独立单词个数超过这个,则就消除掉其中最不频繁的一个。每一千万个单词需要大约1GB的RAM。设置成None则没有限制。
sample: 高频词汇的随机降采样的配置阈值,默认为1e-3,范围是(0,1e-5)
seed: 用于随机数发生器。与初始化词向量有关。
workers: 参数控制训练的并行数。
sg: 用于设置训练算法,默认为0,对应CBOW算法;sg=1则采用skip-gram算法。
hs: 如果为1则会采用hierarchica·softmax技巧。如果设置为0(default),则negative sampling会被使用。
negative: 如果>0,则会采用negativesamping,用于设置多少个noise words。
cbow_mean: 如果为0,则采用上下文词向量的和,如果为1(default)则采用均值。只有使用CBOW的时候才起作用。
hashfxn: hash函数来初始化权重。默认使用python的hash函数。
iter: 迭代次数,默认为5。
trim_rule: 用于设置词汇表的整理规则,指定那些单词要留下,哪些要被删除。可以设置为None(min_count会被使用)或者一个接受()并返回RULE_DISCARD,utils。RULE_KEEP或者utils。RULE_DEFAULT的函数。
sorted_vocab: 如果为1(default),则在分配word index 的时候会先对单词基于频率降序排序。
batch_words: 每一批的传递给线程的单词的数量,默认为10000
min_alpha:  

NLP:Gensim库之word2vec的更多相关文章

  1. python Gensim库建立word2vec参数说明

    from gensim.models import word2vec model = word2vec.Word2Vec(sentences, size=80, window=10,workers=6 ...

  2. Python gensim库word2vec 基本用法

    ip install gensim安装好库后,即可导入使用: 1.训练模型定义 from gensim.models import Word2Vec   model = Word2Vec(senten ...

  3. 使用Gensim库对文本进行词袋、TF-IDF和n-gram方法向量化处理

    Gensim库简介 机器学习算法需要使用向量化后的数据进行预测,对于文本数据来说,因为算法执行的是关于矩形的数学运算,这意味着我们必须将字符串转换为向量.从数学的角度看,向量是具有大小和方向的几何对象 ...

  4. 利用Tensorflow进行自然语言处理(NLP)系列之一Word2Vec

    同步笔者CSDN博客(https://blog.csdn.net/qq_37608890/article/details/81513882). 一.概述 本文将要讨论NLP的一个重要话题:Word2V ...

  5. 【NLP】大白话讲解word2vec到底在做些什么

    转载自:http://blog.csdn.net/mylove0414/article/details/61616617 词向量 word2vec也叫word embeddings,中文名“词向量”, ...

  6. gensim加载word2vec训练结果(bin文件)并进行相似度实验

    # -*- coding: utf-8 -*- import gensim # 导入模型 model = gensim.models.KeyedVectors.load_word2vec_format ...

  7. 用gensim学习word2vec

    在word2vec原理篇中,我们对word2vec的两种模型CBOW和Skip-Gram,以及两种解法Hierarchical Softmax和Negative Sampling做了总结.这里我们就从 ...

  8. 6个顶级Python NLP库的比较!

    6个顶级Python NLP库的比较! http://blog.itpub.net/31509949/viewspace-2212320/ 自然语言处理(NLP)如今越来越流行,在深度学习开发的背景下 ...

  9. 利用python中的gensim模块训练和测试word2vec

    word2vec的基础知识介绍参考上一篇博客和列举的参考资料. 首先利用安装gensim模块,相关依赖如下,注意版本要一致: Python >= 2.7 (tested with version ...

随机推荐

  1. hdoj:2056

    #include <iostream> #include <iomanip> #include <cstdlib> using namespace std; str ...

  2. [转] 一个小时学会Git

    一个小时学会Git http://www.cnblogs.com/best/p/7474442.html

  3. xxl-job安装教程

    xxl-job是一个开源的分布式调度框架,其他类似的框架还有airflow,oozie等等,需要进行对比 https://github.com/xuxueli/xxl-job 1.首先git clon ...

  4. Windows10 + IntelliJ IDEA 2017.3.2 + wamp2e + Yii + PHPunit 搭建测试环境

    一.环境 系统: windows10 WampServer:  wampserver2.2e-php5.3.13-httpd2.2.22-mysql5.5.24-32b.exe IDE:  Intel ...

  5. 《转》循环神经网络(RNN, Recurrent Neural Networks)学习笔记:基础理论

    转自 http://blog.csdn.net/xingzhedai/article/details/53144126 更多参考:http://blog.csdn.net/mafeiyu80/arti ...

  6. 新Windows本地提权漏洞学习(CVE-2019-0841)

    1.这是一个啥漏洞? 睁眼一看,妈呀本地提权,快加入本地提权漏洞利用包里,速度加入.github连接我就不发了.担心被认为是传播黑客工具,咱们在这里单纯学习一下漏洞的原理和部分源代码. 2.文件读写权 ...

  7. linux 安装配置nexus以及maven私服应用

    ---------------------nexus---------------------- 1.编辑nexus脚本, 配置 RUN_AS_USER 参数vi /usr/local/src/nex ...

  8. js 画布与图片的相互转化(canvas与img)

    使用js将图片拷贝进画布 //将图片对象转化为画布,返回画布function ImageToCanvas(image) { var canvas = document.createElement(&q ...

  9. 设置弹窗、遮罩的样式设置(包括:left、heigh等)

    .zhezhao { width:100%; background-color:#000; filter:alpha(opacity=50); -moz-opacity:0.5; opacity:0. ...

  10. git最佳实践之feature和hotfix分支

    先来复习一波,git的最佳分支管理流程: 再简单复习各个分支: master: 主分支,主要用来版本发布. develop:日常开发分支,该分支正常保存了开发的最新代码. feature:具体的功能开 ...