计算gensim中tf-idf的问题

时间:2017-11-15 05:28:45

标签: python 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个术语。

请帮助我!

1 个答案:

答案 0 :(得分:0)

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