我正在使用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”对象不可迭代。但是,文档说要传递语料,所以我很困惑。我将不胜感激-谢谢!
答案 0 :(得分:1)
我目前无法检查,请尝试以下方法:
norm_corpus = NormModel()
norm_corpus.normalize(text)
或
norm_corpus.normalize(id2word.doc2bow(text)
您拥有原始代码
`NormModel(iterable)`
但是文档说您需要通过:
NormModel(iterable of iterable(int,number))
如果这有道理。