我正在尝试标记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()