我正在尝试一些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' codec can't decode byte 0xef in position 1的第一个回答所述,但我仍然收到上述错误。
答案 0 :(得分:1)
如果您正在使用Python 3,请尝试替换
open('*******/electronics/positive.review')
与
open('*******/electronics/positive.review', encoding='utf-8')