2017-11-15 5 views
0

Ich benutze Gensim, um tf-IDF-Werte für mein Korpus unten erwähnt zu berechnen.Probleme bei der Berechnung von TF-IDF in Gensim

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

Mein aktueller Code ist wie folgt.

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] 

Allerdings erhalte ich die Fehler RecursionError: maximum recursion depth exceeded while calling a Python object (PS: wenn mein Code falsch ist, ich bin glücklich, einen anderen Code zu haben). Bitte helfen Sie mir, tf-idf-Werte für mein aktuelles Korpus zu berechnen. Außerdem möchte ich die 3 Begriffe, die den höchsten tf-idf-Wert in meinem Korpus haben, erhalten.

Bitte helfen Sie mir!

Antwort

0

Nun, Sie sind neu zu definieren Ihre ursprüngliche corpus Liste als MyCorpus Objekt, so natürlich diese in eine unendliche Rekursion wird, wenn über sie zu iterieren versuchen (da Sie über corpus im __iter__ Verfahren iterieren). Vielleicht möchten Sie my_corpus = MyCorpus() definieren? Ansonsten erklären, was Sie versuchen zu tun ...

+0

Vielen Dank für Ihre Antwort. Ich möchte ehrlich tf-IDF-Werte für mein Korpus berechnen und die 3 Begriffe erhalten, die den höchsten tf-idf-Wert haben. Bitte lassen Sie mich wissen, wenn Sie wissen, wie es geht? –

+0

Haben Sie dieses Update ausprobiert? Wenn ich immer noch nicht funktioniert, müssen Sie erklären, warum ... – Julien

+0

Ich bekomme den folgenden Fehler nach der Behebung: 'ValueError: nicht genug Werte zu entpacken (erwartet 2, bekam 1)' –

Verwandte Themen