错误使用" nltk.word_tokenize()"功能

时间:2015-07-10 16:14:14

标签: python twitter nlp nltk tokenize

我试图将推文文本标记化。 当我将每个twitter文本应用于函数nltk.word_tokenize()时,即使对于一些非常难看的文本,它也能完美地运行,例如

  

' \ XD8 \ XB3 \ XD8 \ XA3 \ xd9 \的x87 \ xd9 \ x8e \ xd9 \ X85 \ xd9 \ X90 \ XD8 \ XB3 \ xd9 \ X8F&#39 ;,
  ' \ xd9 \ X82 \ xd9 \ X90 \ XD8 \ XB5 \ xd9 \ x8e \ xd9 \ X91 \ XD8版权所有\ xA9 \ xd9 \ x8b&#39 ;,   ' \ 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中       对于sl1,_pair_iter(切片)中的sl2:

还有更多

关于如何修复它的任何建议?

1 个答案:

答案 0 :(得分:2)

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

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