我正在使用 gensim 库将 LDA 应用于一组文档。使用 gensim,我可以将 LDA 应用于语料库,无论权重是什么:二进制、tf、tf-idf ...
我的问题是,原始LDA应该使用什么术语加权?如果我理解正确,权重应该是词频,但我不确定。
我正在使用 gensim 库将 LDA 应用于一组文档。使用 gensim,我可以将 LDA 应用于语料库,无论权重是什么:二进制、tf、tf-idf ...
我的问题是,原始LDA应该使用什么术语加权?如果我理解正确,权重应该是词频,但我不确定。
它应该是一个表示为“词袋”的语料库。或者,是的,术语计数列表。
正确的格式是Gensim 网页上第一个教程corpus
中定义的格式(这些非常有用)。
即,如果您有dictionary
Radim 教程中定义的,以及以下文档,
doc1 = ['big', 'data', 'technique', 'lots', 'of', 'cash']
doc2 = ['this', 'document', 'has', 'words']
docs = [doc1, doc2]
那么你的语料库(与 LDA 一起使用)应该是一个可迭代的对象(例如一个列表),由以下形式的元组列表组成: (dictKey, count)
,其中dk
指的是一个术语的字典键,而 count 是它在文档。这是为您完成的
corpus = [dictionary.doc2bow(doc) for doc in docs]
该doc2bow
功能的意思是“文档到词袋”。