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