0

我正在使用 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')]

这是一些编码问题吗?我如何获得正常的英语单词?

4

1 回答 1

0

是的,那些看起来像“windows-1252”编码的字符:

>>> import chardet

>>> chardet.detect('\xe5') {'confidence': 0.5, 'encoding': 'windows-1252'}

因此,如果您不希望那些出现,您可以对您的文本执行以下操作:

>> '\xe5'.decode('windows-1252').encode('ascii', 'ignore')
于 2014-09-09T16:12:13.477 回答