我正在尝试标记Twitter文本。
当我对每个Twitter文本应用函数nltk.word_tokenize()时,即使对于某些非常丑陋的文本(例如,


  '\ xd8 \ xb3 \ xd8 \ xa3 \ xd9 \ x87 \ xd9 \ x8e \ xd9 \ x85 \ xd9 \ x90 \ xd8 \ xb3 \ xd9 \ x8f',
  '\ xd9 \ x82 \ xd9 \ x90 \ xd8 \ xb5 \ xd9 \ x8e \ xd9 \ x91 \ xd8 \ xa9 \ xd9 \ x8b',
  '\ xd8 \ xad \ xd8 \ xaa \ xd9 \ x89'


但是当我遍历文件中的所有Twitter时

tokens = []
for i in range(0,5047591):
    s = ','.join(l_of_l[i])
    tokens += nltk.word_tokenize(s)


它返回错误,例如:


  UnicodeDecodeError:'ascii'编解码器无法解码位置2的字节0xc3:序数不在范围内(128)
  “ /Library/Python/2.7/site-packages/nltk/tokenize/punkt.py”,第1304行,
  在_realign_boundaries中
      对于_pair_iter中的sl1,sl2(片):


还有很多

关于如何解决它的任何建议?

最佳答案

您遇到的问题不是来自您包含的代码,而是来自包含open()命令的代码。该脚本可以很好地打开文件,但是当您访问数据时,它会为您提供TraceBack

import codecs
...
with codecs.open('file.csv','r',encoding='utf8') as f:
    text = f.read()

10-06 06:30