我使用NLTK Collocations查找三元组,' training_set '是一个包含多行文字的字符串。
finder = TrigramCollocationFinder.from_words(str(training_set))
print finder.nbest(trigram_measures.pmi, 5)
但我得到的输出为
[('\xe5', '\x8d', '\xb8'), ('\xe5', '\x85', '\x8d'), ('\xe2', '\x80', '\x9c'), ('\xe2', '\x80', '\x9d'), ('\xe2', '\x80', '\xa6')]
这是一些编码问题吗?我如何获得正常的英语单词?
答案 0 :(得分:0)
是的,那些看起来像'windows-1252'编码的字符:
>>> import chardet
>>> chardet.detect('\xe5') {'confidence': 0.5, 'encoding': 'windows-1252'}
因此,如果您不希望这些内容出现,您可以对您的文字执行以下操作:
>> '\xe5'.decode('windows-1252').encode('ascii', 'ignore')