在Gensim中标准化单词数据袋

时间:2018-06-25 19:33:43

标签: python normalization gensim corpus term-document-matrix

我正在使用gensim创建一袋单词模型,并且我想执行归一化。我找到了文档(https://radimrehurek.com/gensim/models/normmodel.html),但对于给定的代码,我对如何实现该文档感到困惑。会话是带标记的文档的列表,因此实质上是每个元素都是文档时的列表的列表。

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)
我相信,Corpus是一个稀疏矩阵。对于每个文档,它具有非零频率项和相应的计数:[[((0,2),(1,5),(2,4)...(92,2),(93,3) ],...]。

当我尝试将以下各项输入到norm_corpus中时,带有models.LsiModel(norm_corpus, id2word=id2word, num_topics=12)的最后一行不起作用。我收到类型错误消息,“ int”对象不可迭代。但是,文档说要传递语料,所以我很困惑。我将不胜感激-谢谢!

1 个答案:

答案 0 :(得分:1)

我目前无法检查,请尝试以下方法:

norm_corpus = NormModel()
norm_corpus.normalize(text)

norm_corpus.normalize(id2word.doc2bow(text)

您拥有原始代码

`NormModel(iterable)`

但是文档说您需要通过:

NormModel(iterable of iterable(int,number))

如果这有道理。