首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gensim.interfaces.TransformedCorpus -如何使用?

gensim.interfaces.TransformedCorpus -如何使用?
EN

Stack Overflow用户
提问于 2017-07-26 03:54:12
回答 3查看 7.7K关注 0票数 9

在潜在的Dirichlet分配领域,我是相对较新的。我能够按照维基百科教程生成一个LDA模型,并且能够用我自己的文档生成一个LDA模型。我现在的步骤是尝试理解如何使用以前生成的模型来分类未见的文档。我把我的"lda_wiki_model“保存在

代码语言:javascript
复制
id2word =gensim.corpora.Dictionary.load_from_text('ptwiki_wordids.txt.bz2')

    mm = gensim.corpora.MmCorpus('ptwiki_tfidf.mm')

    lda = gensim.models.ldamodel.LdaModel(corpus=mm, id2word=id2word, num_topics=100, update_every=1, chunksize=10000, passes=1)
    lda.save('lda_wiki_model.lda')

我把同一款车装上:

代码语言:javascript
复制
new_lda = gensim.models.LdaModel.load(path + 'lda_wiki_model.lda') #carrega o modelo

我有一个"new_doc.txt",我将我的文档转换为id<->术语字典,并将这个标记化的文档转换为“文档项矩阵”。

但是当我运行'gensim.interfaces.TransformedCorpus时,我在0x7f0ecfa69d50'上接收一个new_topics = new_lda[corpus]对象

我如何从中提取主题?

我已经试过了

代码语言:javascript
复制
`lsa = models.LdaModel(new_topics, id2word=dictionary, num_topics=1, passes=2)
corpus_lda = lsa[new_topics]
print(lsa.print_topics(num_topics=1, num_words=7)

print(corpus_lda.print_topics(num_topics=1, num_words=7) `

但那些回归的话题与我的新文档无关。我的错误在哪里?我很想念理解什么吗?

**如果使用上面创建的字典和语料库运行一个新模型,我会收到正确的主题,我的重点是:如何重用我的模型?正确地重用那个wiki_model吗?

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-09-01 09:53:22

我也面临着同样的问题。此代码将解决您的问题:

代码语言:javascript
复制
new_topics = new_lda[corpus]

for topic in new_topics:

      print(topic)

这将给出一个表格元组的列表(主题号、概率)。

票数 12
EN

Stack Overflow用户

发布于 2019-04-29 21:15:29

来自由Transformation.ipynb技术人员编写的“RaRe”教程:

调用corpus_transformed = model[corpus]时转换整个语料库将意味着将结果存储在主内存中,这与gensim的记忆独立性目标相矛盾。 如果要多次迭代转换后的corpus_transformed,并且转换成本很高,那么首先将结果的语料库序列化到磁盘,然后继续使用。

希望能帮上忙。

票数 3
EN

Stack Overflow用户

发布于 2020-11-29 05:43:16

这已经得到了回答,但是这里有一些代码供任何想要将未见文档的分类导出到CSV文件的人使用。

代码语言:javascript
复制
#Access the unseen corpus
corpus_test = [id2word.doc2bow(doc) for doc in data_test_lemmatized]

#Transform into LDA space based on old
lda_unseen = lda_model[corpus_test] 

#Print results, export to csv
for topic in lda_unseen:
      print(topic)

topic_probability = []
for t in lda_test:
      #print(t)
      topic_probability.append(t)

results_test = pd.DataFrame(topic_probability,columns=['Topic 1','Topic 2',
                                                       'Topic 3','Topic 4',
                                                       'Topic 5','Topic n'])

result_test.to_csv('test_results.csv', index=True, header=True)

受此帖子启发的代码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45317151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档