Problem:
Warum löst der folgende Code einen „TypeError: Fehler „unhashable type: ‚dict‘“?
negfeats = [(word_feats(movie_reviews.words(fileids=[f])), 'neg') for f in negids] stopset = set(stopwords.words('english')) def stopword_filtered_word_feats(words): return dict([(word, True) for word in words if word not in stopset]) result=stopword_filtered_word_feats(negfeats)
Antwort:
Der Fehler tritt auf, weil Sie versuchen, ein Wörterbuch als Schlüssel im erstellten Satz zu verwenden durch die Stopset-Variable. Wörterbücher sind jedoch keine hashbaren Objekte, was bedeutet, dass sie nicht als Schlüssel in Mengen oder Wörterbüchern verwendet werden können.
Lösung:
Um das Problem zu beheben, können Sie die konvertieren Wörterbücher in Negfeats zu eingefrorenen Mengen, die hashbar sind. Der folgende Code zeigt die korrigierte Version:
negfeats = [(frozenset(word_feats(movie_reviews.words(fileids=[f])).items()), 'neg') for f in negids] stopset = set(stopwords.words('english')) def stopword_filtered_word_feats(words): return dict([(word, True) for word in words if word not in stopset]) result=stopword_filtered_word_feats(negfeats)
Das obige ist der detaillierte Inhalt vonWarum löst die Verwendung eines Wörterbuchs als Schlüssel in einer Menge den Fehler „TypeError: unhashable type: \'dict\'\' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!