标签: gensim

分层Dirichlet过程Gensim主题编号独立于语料库大小

我在一组文档上使用Gensim HDP模块.

>>> hdp = models.HdpModel(corpusB, id2word=dictionaryB)
>>> topics = hdp.print_topics(topics=-1, topn=20)
>>> len(topics)
150
>>> hdp = models.HdpModel(corpusA, id2word=dictionaryA)
>>> topics = hdp.print_topics(topics=-1, topn=20)
>>> len(topics)
150
>>> len(corpusA)
1113
>>> len(corpusB)
17
Run Code Online (Sandbox Code Playgroud)

为什么主题数量与语料库长度无关?

python nlp lda gensim

14
推荐指数
4
解决办法
8222
查看次数

从gensim解释负面的Word2Vec相似性

例如,我们使用gensim以下方法训练word2vec模型:

from gensim import corpora, models, similarities
from gensim.models.word2vec import Word2Vec

documents = ["Human machine interface for lab abc computer applications",
              "A survey of user opinion of computer system response time",
              "The EPS user interface management system",
              "System and human system engineering testing of EPS",
              "Relation of user perceived response time to error measurement",
              "The generation of random binary unordered trees",
              "The intersection graph of paths in trees",
              "Graph minors IV Widths of trees and well quasi ordering", …
Run Code Online (Sandbox Code Playgroud)

python nlp similarity gensim word2vec

14
推荐指数
1
解决办法
5083
查看次数

Gensim:KeyError:"词汇不在词汇中"

我使用Python的Gensim库训练有素的Word2vec模型.我有一个标记化列表如下.词汇大小是34,但我只是给出了34个中的一些:

b = ['let',
 'know',
 'buy',
 'someth',
 'featur',
 'mashabl',
 'might',
 'earn',
 'affili',
 'commiss',
 'fifti',
 'year',
 'ago',
 'graduat',
 '21yearold',
 'dustin',
 'hoffman',
 'pull',
 'asid',
 'given',
 'one',
 'piec',
 'unsolicit',
 'advic',
 'percent',
 'buy']
Run Code Online (Sandbox Code Playgroud)

模型

model = gensim.models.Word2Vec(b,min_count=1,size=32)
print(model) 
### prints: Word2Vec(vocab=34, size=32, alpha=0.025) ####
Run Code Online (Sandbox Code Playgroud)

如果我尝试通过model['buy']列表中的一个单词来获得相似性得分,我得到了

KeyError:"词'买'不在词汇中"

你们可以告诉我我做错了什么以及检查模型的方法有哪些可以进一步用于训练PCA或t-sne以便可视化形成主题的类似单词?谢谢.

python nlp gensim topic-modeling word2vec

14
推荐指数
2
解决办法
2万
查看次数

如何将句子加载到Python gensim中?

我试图在Python中使用自然语言处理库中的word2vec模块gensim.

文档说要初始化模型:

from gensim.models import word2vec
model = Word2Vec(sentences, size=100, window=5, min_count=5, workers=4)
Run Code Online (Sandbox Code Playgroud)

gensim输入句子的格式是什么?我有原始文本

"the quick brown fox jumps over the lazy dogs"
"Then a cop quizzed Mick Jagger's ex-wives briefly."
etc.
Run Code Online (Sandbox Code Playgroud)

我需要进行哪些额外的处理word2fec


更新:这是我尝试过的.当它加载句子时,我什么也得不到.

>>> sentences = ['the quick brown fox jumps over the lazy dogs',
             "Then a cop quizzed Mick Jagger's ex-wives briefly."]
>>> x = word2vec.Word2Vec()
>>> x.build_vocab([s.encode('utf-8').split( ) for s in sentences])
>>> x.vocab
{}
Run Code Online (Sandbox Code Playgroud)

python nlp gensim

13
推荐指数
2
解决办法
9419
查看次数

gensim word2vec访问进/出向量

在word2vec模型中,有两个线性变换,它们将词汇空间中的单词带到隐藏层("in"向量),然后返回到词汇空间("out"向量).通常这个out向量在训练后被丢弃.我想知道是否有一种简单的方法来访问gensim python中的out向量?同样,我如何访问out矩阵?

动机:我想实现最近这篇论文中提出的想法:文档排名的双嵌入空间模型

这里有更多细节.从上面的参考文献中我们得到以下word2vec模型:

在此输入图像描述

这里,输入层的大小为$ V $,词汇量大小,隐藏层大小为$ d $,输出层大小为$ V $.两个矩阵是W_ {IN}和W_ {OUT}.通常,word2vec模型仅保留W_IN矩阵.这是返回的地方,在gensim中训练word2vec模型后,你会得到如下内容:

模型[ '土豆'] = [ - 0.2,0.5,2,...]

如何访问或保留W_ {OUT}?这可能在计算上非常昂贵,而且我真的希望在gensim中使用一些内置方法来执行此操作,因为我担心如果我从头开始编写代码,它就不会提供良好的性能.

python gensim

13
推荐指数
1
解决办法
3532
查看次数

使用word2vec对类别中的单词进行分类

背景

我有一些带有一些样本数据的向量,每个向量都有一个类别名称(地点,颜色,名称).

['john','jay','dan','nathan','bob']  -> 'Names'
['yellow', 'red','green'] -> 'Colors'
['tokyo','bejing','washington','mumbai'] -> 'Places'
Run Code Online (Sandbox Code Playgroud)

我的目标是训练一个模型,该模型采用新的输入字符串并预测它属于哪个类别.例如,如果新输入是"紫色",那么我应该能够将"颜色"预测为正确的类别.如果新输入是"卡尔加里",则应将"地点"预测为正确的类别.

APPROACH

我做了一些研究,遇到了Word2vec.该库具有我可以使用的"相似性"和"最相似性"功能.所以我想到的一种蛮力方法如下:

  1. 接受新的投入.
  2. 计算它与每个向量中每个单词的相似度并取平均值.

因此,例如对于输入"粉红色",我可以计算其与向量"名称"中的单词的相似性取平均值,然后对其他2个向量也执行此操作.给出最高相似度平均值的向量将是输入所属的正确向量.

问题

鉴于我在NLP和机器学习方面的知识有限,我不确定这是否是最好的方法,因此我正在寻找有关解决问题的更好方法的帮助和建议.我对所有建议持开放态度,并请指出我可能因为我是机器学习和NLP世界的新手而犯的任何错误.

python nlp machine-learning gensim word2vec

13
推荐指数
1
解决办法
5026
查看次数

Gensim库是否支持GPU加速?

使用Gensim提供的Word2vec和Doc2vec方法,他们有一个使用BLAS,ATLAS等加速的分布式版本(详情请参见此处).但是,它支持GPU模式吗?如果使用Gensim,是否可以让GPU工作?

optimization gpu gensim deeplearning4j

12
推荐指数
1
解决办法
8212
查看次数

如何判断Gensim Word2Vec是否正在使用C编译器?

我正在尝试使用Gensim的Word2Vec实现.Gensim警告说,如果你没有C编译器,训练速度会慢70%.有没有确认Gensim正确使用我安装的C编译器?

我在Windows 10上使用Anaconda Python 3.5.

python installation compilation gensim word2vec

12
推荐指数
1
解决办法
5315
查看次数

Gensim保存的字典没有id2token

我已将Gensim字典保存到磁盘.当我加载它时,id2token不会填充属性dict.

保存字典的一段简单代码:

dictionary = corpora.Dictionary(tag_docs)
dictionary.save("tag_dictionary_lda.pkl")
Run Code Online (Sandbox Code Playgroud)

现在,当我加载它(我在一个jupyter笔记本中加载它)时,它仍然适用于将令牌映射到ID,但id2token不起作用(我无法将ID映射到令牌),实际上id2token根本没有填充.

> dictionary = corpora.Dictionary.load("../data/tag_dictionary_lda.pkl")
> dictionary.token2id["love"]
Out: 1613

> dictionary.doc2bow(["love"])
Out: [(1613, 1)]

> dictionary.id2token[1613]
Out: 
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input> in <module>()
----> 1 dictionary.id2token[1613]

KeyError: 1613

> list(dictionary.id2token.keys())
Out: []
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

python nlp gensim

12
推荐指数
1
解决办法
4445
查看次数

Gensim Word2vec:语义相似度

我想知道gensim word2vec的两个相似性度量之间的区别:most_similar()和most_similar_cosmul().我知道第一个使用单词向量的余弦相似性,而另一个使用Omer Levy和Yoav Goldberg提出的乘法组合目标.我想知道它对结果有何影响?哪一个给出语义相似性?等.例如:

model = Word2Vec(sentences, size=100, window=5, min_count=5, workers=4)
model.most_similar(positive=['woman', 'king'], negative=['man'])               
Run Code Online (Sandbox Code Playgroud)

结果:[('queen',0.50882536),...]

model.most_similar_cosmul(positive=['baghdad', 'england'], negative=['london'])
Run Code Online (Sandbox Code Playgroud)

结果:[(u'iraq',0.8488819003105164),...]

python similarity gensim word2vec semantics

11
推荐指数
1
解决办法
4654
查看次数