我试图将推文文本标记化。 当我将每个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:
还有更多
关于如何修复它的任何建议?
答案 0 :(得分:2)
您遇到的问题不是来自您包含的代码,而是来自包含open()
命令的代码。该脚本正在打开文件,但是当您访问数据时,它会为您提供TraceBack
import codecs
...
with codecs.open('file.csv','r',encoding='utf8') as f:
text = f.read()