我想标记twitter文本。 当我申请的功能nltk.word_tokenize()每个单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'
但是当我遍历文件
tokens = []
for i in range(0,5047591):
s = ','.join(l_of_l[i])
tokens += nltk.word_tokenize(s)
所有的Twitter
返回错误,如:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 2: ordinal not in range(128)File "/Library/Python/2.7/site-packages/nltk/tokenize/punkt.py", line 1304, in _realign_boundaries for sl1, sl2 in _pair_iter(slices):
,还有更多
有关如何修复它的任何建议?
谢谢!我做了f.readline()来代替,但我得到了这个错误“UnicodeDecodeError:'utf8'编解码器无法解码位置1中的字节0x8b:无效的起始字节”,我不太确定如何处理它 –
有第二个错误有两种可能的解决方案。 1)将该行更改为'用codecs.open('file.csv','r',encoding ='utf-8',errors ='ignore')作为f:',但可能会丢失一些*字符。 2)确定你正在处理什么类型的编码,然后执行decode('######'')。encode('utf-8')'。使用'.decode'('cp1252')'很常见,但请注意不能保证是正确的。 – Leb
是的你是对的,当我使用错误='忽略',我从文件构建的列表成为“索引超出范围” –