我正在使用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个术语。
请帮助我!
答案 0 :(得分:0)
您正在将原始corpus
列表重新定义为MyCorpus
对象,因此当尝试迭代它时,这当然会进入无限递归(因为您迭代corpus
在__iter__
方法中。也许你想定义my_corpus = MyCorpus()
?否则解释你要做什么......