問題:
次のコードで「TypeError:」が発生するのはなぜですか:ハッシュ不可能な型: '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)
回答:
作成されたセットのキーとして辞書を使用しようとしているためにエラーが発生しますストップセット変数によって。ただし、辞書はハッシュ可能なオブジェクトではないため、セットや辞書のキーとして使用することはできません。
解決策:
この問題を解決するには、 negfeat の辞書を凍結セットに変換し、ハッシュ可能にします。次のコードは修正されたバージョンを示しています:
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)
以上がセット内のキーとして辞書を使用すると、「TypeError: unhashable type: \'dict\'」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。