我正在使用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()
?否则解释你想做什么...