使用 "nltk.word_tokenize()" 函数时出错

error using "nltk.word_tokenize()" function

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

它 returns 错误如:

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):

还有更多

关于如何修复它有什么建议吗?

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

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