gpt4 book ai didi

gensim - 是否需要将 TF-IDF 应用于 gensim LDA 模型中的新文档?

转载 作者:行者123 更新时间:2023-12-04 16:25:34 32 4
gpt4 key购买 nike

我正在关注 https://radimrehurek.com/gensim/wiki.html#latent-dirichlet-allocation 上的“英语维基百科”gensim 教程

它解释了在训练期间使用了 tf-idf(至少对于 LSA,LDA 不太清楚)。

我希望将 tf-idf 转换器应用于新文档,但是在 tut 的结尾,它建议简单地输入一个词袋。

doc_lda = lda[doc_bow]

LDA 是否只需要词袋向量?

最佳答案

实际上,在 gensim 教程的维基百科示例中,Radim Rehurek 使用了在预处理步骤中生成的 tfidf 语料库。

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

我相信这样做的原因只是这个矩阵稀疏且易于处理(并且由于预处理步骤已经存在)。

LDA 不一定需要在 tfidf 语料库上进行训练。如果您使用 gensim 教程“语料库和向量空间”中显示的语料库,该模型就可以正常工作:
from gensim import corpora, models
texts = [['human', 'interface', 'computer'],
['survey', 'user', 'computer', 'system', 'response', 'time'],
['eps', 'user', 'interface', 'system'],
['system', 'human', 'system', 'eps'],
['user', 'response', 'time'],
['trees'],
['graph', 'trees'],
['graph', 'minors', 'trees'],
['graph', 'minors', 'survey']]

dictionary = corpora.Dictionary(texts)

corpus = [dictionary.doc2bow(text) for text in texts]

lda = models.ldamodel.LdaModel(corpus=corpus, id2word=dictionary, num_topics=10, update_every=1, chunksize =10000, passes=1)

请注意,'texts' 是一个词袋向量。正如您正确指出的那样,这是 LDA 模型的核心部分。 TF-IDF 在其中根本没有发挥任何作用。事实上,Blei(开发 LDA)在 2003 年的论文(题为“潜在狄利克雷分配”)的介绍中指出,LDA 解决了 TF-IDF 模型的缺点并将这种方法抛在后面。 LSA 是完全代数的,通常(但不一定)使用 TF-IDF 矩阵,而 LDA 是一种概率模型,试图估计文档中的主题和主题中的单词的概率分布。为此不需要 TF-IDF 的加权。

TL;DR:是的,LDA 只需要一个词袋向量。

关于gensim - 是否需要将 TF-IDF 应用于 gensim LDA 模型中的新文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44781047/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com