2017-11-15 26 views
0

아래에서 언급 한 내 코퍼스의 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 가지 조건을 얻고 싶습니다.

도와주세요!

답변

0

그럼 당신은 (당신이 __iter__ 방법에 corpus을 반복하기 때문에) 그것을 반복 할 때 물론이 무한 재귀에 가고 있도록하는 MyCorpus 개체로 원래 corpus 목록을 재정의합니다. 아마도 my_corpus = MyCorpus()을 정의하고 싶습니까? 그렇지 않으면 무엇을하려고하는지 설명하십시오 ...

+0

답장을 보내 주셔서 감사합니다. 솔직히 내 코퍼스의 tf-idf 값을 계산하고 가장 높은 tf-idf 점수를 갖는 3 가지 용어를 얻고 싶습니다. 어떻게하는지 안다면 알려주세요. –

+0

이 수정 프로그램을 사용해 보셨습니까? 여전히 작동하지 않는다면 이유를 설명 할 필요가 있습니다 ... – Julien

+0

수정 후 다음과 같은 오류가 나타납니다. 'ValueError : 압축 할 값이 충분하지 않습니다 (예상 2, 1이 있음)' –