Unicode解码错误:'ascii'编解码器无法解码位置0xef 118374:序号不在范围内(128)



我正在试验一些NLP算法,现在我专注于情感分析。出于这个原因,我从 http://www.cs.jhu.edu/~mdredze/datasets/sentiment/index2.html 下载了一些带有正面和负面评论的.review格式文件。

我正在使用BeautifulSoup来解析这些XML文件,现在我只是尝试通过执行以下源代码来读取它们:

from bs4 import BeautifulSoup
positive_reviews = BeautifulSoup(open('*******/electronics/positive.review').read())
positive_reviews = positive_reviews.findAll('review_text')
negative_reviews = BeautifulSoup(open('*******/electronics/negative.review').read())
negative_reviews = negative_reviews.findAll('review_text')

但是,我收到以下错误:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 118374: ordinal not in range(128)

什么时候

positive_reviews = BeautifulSoup(open('*******/electronics/positive.review').read())

将被执行。

如何修复此错误?

我也更换了

BeautifulSoup(open('*******/electronics/positive.review').read())

BeautifulSoup(open('*******/electronics/positive.review').read().decode('utf-8'))

但我得到完全相同的错误。

最后,我已经阅读了一些关于StackOverflow的相关帖子,但到目前为止,没有任何工作对我有用。例如,在我的终端echo $LANG输出en_GB.UTF-8,正如UnicodeDecodeError的第一个答案中所描述的那样:"ascii"编解码器无法解码位置1的字节0xef,但我仍然收到上面的错误。

如果您使用的是 Python 3,请尝试替换

open('*******/electronics/positive.review')

open('*******/electronics/positive.review', encoding='utf-8')

相关内容

最新更新