我在gensim中有一个word2vec模型,训练超过98892个文档.对于句子数组中不存在的任何给定句子(即我训练模型的集合),我需要用该句子更新模型,以便下次查询它会给出一些结果.我是这样做的:
new_sentence = ['moscow', 'weather', 'cold']
model.train(new_sentence)
Run Code Online (Sandbox Code Playgroud)
并将其打印为日志:
2014-03-01 16:46:58,061 : INFO : training model with 1 workers on 98892 vocabulary and 100 features
2014-03-01 16:46:58,211 : INFO : reached the end of input; waiting to finish 1 outstanding jobs
2014-03-01 16:46:58,235 : INFO : training on 10 words took 0.1s, 174 words/s
Run Code Online (Sandbox Code Playgroud)
现在,当我使用类似的new_sentence查询大多数肯定(as model.most_similar(positive=new_sentence))时,它会发出错误:
Traceback (most recent call last):
File "<pyshell#220>", line 1, in <module>
model.most_similar(positive=['moscow', 'weather', 'cold'])
File "/Library/Python/2.7/site-packages/gensim/models/word2vec.py", line 405, in most_similar
raise KeyError("word '%s' not …Run Code Online (Sandbox Code Playgroud) 我使用Gensim的文档语料库训练了一个word2vec模型.一旦模型正在训练,我正在编写以下代码以获得单词的原始特征向量说"视图".
myModel["view"]
Run Code Online (Sandbox Code Playgroud)
但是,我得到了一个单词的KeyError,这可能是因为它不存在作为word2vec索引的键列表中的键.在尝试获取原始特征向量之前,如何检查索引中的键是否退出?
我试图了解Python中的gensim包如何实现Latent Dirichlet Allocation.我正在做以下事情:
定义数据集
documents = ["Apple is releasing a new product",
"Amazon sells many things",
"Microsoft announces Nokia acquisition"]
Run Code Online (Sandbox Code Playgroud)
删除停用词后,我创建了字典和语料库:
texts = [[word for word in document.lower().split() if word not in stoplist] for document in documents]
dictionary = corpora.Dictionary(texts)
corpus = [dictionary.doc2bow(text) for text in texts]
Run Code Online (Sandbox Code Playgroud)
然后我定义了LDA模型.
lda = gensim.models.ldamodel.LdaModel(corpus=corpus, id2word=dictionary, num_topics=5, update_every=1, chunksize=10000, passes=1)
Run Code Online (Sandbox Code Playgroud)
然后我打印主题:
>>> lda.print_topics(5)
['0.181*things + 0.181*amazon + 0.181*many + 0.181*sells + 0.031*nokia + 0.031*microsoft + 0.031*apple + 0.031*announces + 0.031*acquisition + 0.031*product', '0.077*nokia + …Run Code Online (Sandbox Code Playgroud) 我有一个训练有素的LDA模型,我想计算我训练模型的语料库中两个文档之间的相似性得分.在研究了所有Gensim教程和功能之后,我仍然无法理解它.有人可以给我一个暗示吗?谢谢!
我想将带有gensim的预训练word2vec嵌入到PyTorch嵌入层中.
所以我的问题是,如何将gensim加载的嵌入权重加到PyTorch嵌入层中.
提前致谢!
我可以从gensim运行LDA代码,并使用各自的关键字获得前10个主题.
现在,我想进一步了解LDA算法的准确性,看看他们将哪些文档聚集到每个主题中.这对于gensim LDA有可能吗?
基本上我想做这样的事情,但在python和使用gensim.
Word2vec似乎主要是针对原始语料库数据进行培训.然而,词形还原是许多语义相似性任务的标准预处理.我想知道是否有人在训练word2vec之前有使词库语法化的经验,以及这是否是一个有用的预处理步骤.
我试图导入gensim.
我有以下代码
import gensim
model = gensim.models.Word2Vec.load_word2vec_format('./model/GoogleNews-
vectors-negative300.bin', binary=True)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误.
ImportError Traceback (most recent call
last)
<ipython-input-5-50007be813d4> in <module>()
----> 1 import gensim
2 model = gensim.models.Word2Vec.load_word2vec_format('./model
/GoogleNews-vectors-negative300.bin', binary=True)
ImportError: No module named 'gensim'
Run Code Online (Sandbox Code Playgroud)
我在python中安装了gensim.我使用genssim作为word2vec.
我有一个生成器(一个产生东西的函数),但是当试图将它传递给gensim.Word2Vec我时,我得到以下错误:
TypeError:您不能将生成器作为句子参数传递.尝试一个迭代器.
发生器不是一种迭代器吗?如果没有,我如何从中制作迭代器?
看一下库代码,它似乎只是简单地迭代句子for x in enumerate(sentences),这对我的生成器来说效果很好.那么是什么导致错误?