在 gensim 中计算 tf-idf 的问题



我正在使用Gensim来计算下面提到的语料库的tf-idf分数。

corpus=['human interface computer',
 'survey user computer system response time',
 'eps user interface system',
 'system human system eps',
 'user response time']

我当前的代码如下。

dictionary = corpora.Dictionary(line.lower().split() for line in corpus)
class MyCorpus(object):
    def __iter__(self):
        for line in corpus:
            yield dictionary.doc2bow(line.lower().split())
corpus = MyCorpus()
tfidf = models.TfidfModel(corpus)
corpus_tfidf = tfidf[corpus]

但是,我RecursionError: maximum recursion depth exceeded while calling a Python object收到错误(PS:如果我的代码错误,我很高兴有不同的代码(。请帮助我计算当前语料库的 tf-idf 值。此外,我想获得语料库中 tf-idf 分数最高的 3 个术语。

请帮帮我!

好吧,您正在将原始corpus列表重新定义为MyCorpus对象,因此在尝试迭代它时,这当然会进入无限递归(因为您在__iter__方法中迭代了corpus(。也许你想定义my_corpus = MyCorpus()?否则解释你想做什么...

最新更新