规范化 Gensim 中的词袋数据

Normalizing bag of words data in Gensim

我正在使用 gensim 创建一个词袋模型,我想执行归一化。我找到了文档 (https://radimrehurek.com/gensim/models/normmodel.html),但我对如何根据我的代码实现它感到困惑。 Conversations 是一个标记化文档的列表,因此当每个元素都是一个文档时,本质上是一个列表列表。

id2word = corpora.Dictionary(conversations)
id2word.filter_extremes(keep_n=5000, keep_tokens=None) 
corpus = [id2word.doc2bow(text) for text in conversations]
norm_corpus = NormModel(corpus)

语料库是一个稀疏矩阵,我相信。对于每个文档,它都有非零频率项和相应的计数:[[(0, 2), (1, 5), (2, 4)...(92, 2), (93, 3) ],...].

最后一行 norm_corpus 当我尝试将其输入以下内容时不起作用:models.LsiModel(norm_corpus, id2word=id2word, num_topics=12)。我收到类型错误消息,'int' 对象不可迭代。但是,文档说要传入语料库,所以我很困惑。如果有任何帮助,我将不胜感激 - 谢谢!

我目前无法检查,但试试这个:

norm_corpus = NormModel()
norm_corpus.normalize(text)

norm_corpus.normalize(id2word.doc2bow(text)

在你的原始代码中你有

`NormModel(iterable)`

但是文档说你需要通过:

NormModel(iterable of iterable(int,number))

如果这有道理。