我正在尝试从斯坦福情感数据库中解析一大笔推文(请参见此处:http://help.sentiment140.com/for-students/),以下是我的代码:
def init_process(fin, fout):
outfile = open(fout, 'a')
with open(fin, buffering=200000, encoding='latin-1') as f:
try:
for line in f:
line = line.replace('"', '')
initial_polarity = line.split(',')[0]
if initial_polarity == '0':
initial_polarity = [1, 0]
elif initial_polarity == '4':
initial_polarity = [0, 1]
tweet = line.split(',')[-1]
outline = str(initial_polarity) + ':::' + tweet
outfile.write(outline)
except Exception as e:
print(str(e))
outfile.close()
init_process('training.1600000.processed.noemoticon.csv','train_set.csv')
我遇到了以下问题:
'ascii' codec can't encode characters in position 12-14: ordinal not in range(128)
这没有意义,因为我正在使用latin-1编码打开文件。如何停止此错误并成功解析文件?
答案 0 :(得分:4)
它的外文件编码可能仍然是ASCII。您也应该使用正确的编码打开它(不必一定是latin-1,也许utf-8取决于您的环境更合适)。
Åsmund的注释:文件编码是特定于语言环境的,您应该考虑将语言环境更改为可以处理非ASCII文本的语言。