NLP:Gensim库之word2vec

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(w1, w2):计算两个单词之间的余弦相似度。

>>> trained_model.similarity(‘woman‘, ‘man‘)
0.73723527

>>> trained_model.similarity(‘woman‘, ‘woman‘)
1.0

附、参数说明:

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:  

原文地址:https://www.cnblogs.com/hunttown/p/10197518.html

时间: 2024-07-30 07:55:12

NLP:Gensim库之word2vec的相关文章

Python gensim库word2vec的使用

ip install gensim安装好库后,即可导入使用: 1.训练模型定义 from gensim.models import Word2Vec   model = Word2Vec(sentences, sg=1, size=100,  window=5,  min_count=5,  negative=3, sample=0.001, hs=1, workers=4)   参数解释: 0.sentences是训练所需语料,可通过以下方式进行加载 sentences=word2vec.Te

【python gensim使用】word2vec词向量处理英文语料

word2vec介绍 word2vec官网:https://code.google.com/p/word2vec/ word2vec是google的一个开源工具,能够根据输入的词的集合计算出词与词之间的距离. 它将term转换成向量形式,可以把对文本内容的处理简化为向量空间中的向量运算,计算出向量空间上的相似度,来表示文本语义上的相似度. word2vec计算的是余弦值,距离范围为0-1之间,值越大代表两个词关联度越高. 词向量:用Distributed Representation表示词,通常

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

word2vec介绍 word2vec官网:https://code.google.com/p/word2vec/ word2vec是google的一个开源工具,能够根据输入的词的集合计算出词与词之间的距离. 它将term转换成向量形式,可以把对文本内容的处理简化为向量空间中的向量运算,计算出向量空间上的相似度,来表示文本语义上的相似度. word2vec计算的是余弦值,距离范围为0-1之间,值越大代表两个词关联度越高. 词向量:用Distributed Representation表示词,通常

gensim中的word2vec

安装gensim前要装python,numpy, scipy, 通过pip list检查开始安装gensim sudo pip install gensim 参考文档:http://www.jianshu.com/p/6d542ff65b1e    http://kexue.fm/archives/4316/ 文档http://www.jianshu.com/p/6d542ff65b1e上的两个python程序有错误, 我已经改正,内容见python文件 对文件编码格式处理cat news_te

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

写在前面的话(可略过): 一直想写下.整理下利用Tensorflow或Keras工具进行自然语言处理(NLP)方面的文章,对比和纠结了一段时间,发现博众家之长不如静下心来一步一个脚印地去看一本书来得更实在,虽然慢但是心里相对踏实些.近期刚把Thushan Ganegedara写的<Natural Language Processing with TensorFlow>(2018年5月第一次出版),目前没看到中文版.讲真,看原版书确实很耗费精力,但原版书的好处是可以原汁原味地探索.写博文的过程中

NLP︱R语言实现word2vec(词向量)经验总结(消除歧义、词向量的可加性)

R语言由于效率问题,实现自然语言处理的分析会受到一定的影响,如何提高效率以及提升词向量的精度是在当前软件环境下,比较需要解决的问题. 笔者认为还存在的问题有: 1.如何在R语言环境下,大规模语料提高运行效率? 2.如何提高词向量的精度,或者说如何衡量词向量优劣程度? 3.词向量的功能性作用还有哪些值得开发? 4.关于语义中的歧义问题如何消除? 5.词向量从"词"往"短语"的跨越? 转载请注明出处以及作者(Matt),欢迎喜欢自然语言处理一起讨论~ ---------

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

# -*- coding: utf-8 -*- import gensim # 导入模型 model = gensim.models.KeyedVectors.load_word2vec_format('vectors.bin', binary=True) # 得到两组词的相似度 list1 = [u'核能'] list2 = [u'电能'] list3 = [u'电力'] list_sim1 = model.n_similarity(list1, list2) print list_sim1

用gensim学习word2vec

在word2vec原理篇中,我们对word2vec的两种模型CBOW和Skip-Gram,以及两种解法Hierarchical Softmax和Negative Sampling做了总结.这里我们就从实践的角度,使用gensim来学习word2vec. 1. gensim安装与概述 gensim是一个很好用的Python NLP的包,不光可以用于使用word2vec,还有很多其他的API可以用.它封装了google的C语言版的word2vec.当然我们可以可以直接使用C语言版的word2vec来

6个顶级Python NLP库的比较!

http://blog.itpub.net/31509949/viewspace-2212320/ 自然语言处理(NLP)如今越来越流行,在深度学习开发的背景下变得尤为引人注目.在人工智能领域中,自然语言处理(NLP)从文本中理解和提取重要信息,并基于文本数据进行进一步的数据训练,其主要任务包括语音识别和生成.文本分析.情感分析.机器翻译等. 在过去的几十年中,只有那些精通语言教育的专家才能从事自然语言处理.除了具有数学和机器学习知识以外,他们还精通一些关键的语言概念.而现在,我们可以使用已编译