我有一个大的txt文件,包含每行分隔的推文。 现在我想删除这些消息中的'the','to'等停用词,并使用相同的推文获取新的文本文件但删除了停用词。
下面的代码出了什么问题?
谢谢!
import re, string
#this code removes stopwords
input_file = 'enneg2.txt'
output_file = 'enneg3.txt'
stoplist = set('for a of the and to in'.split())
table = string.maketrans("","")
with open(input_file) as f:
lines = f.readlines()
for line in lines:
filtered_line = [w for w in line.split() if not w in stoplist]
with open(output_file, 'a') as myfile:
myfile.write(filtered_line)
我收到错误消息:Traceback(最近一次调用最后一次):文件“delstopwords.py”,第19行,在myfile.write(filtered_line)中TypeError:期望一个字符缓冲区对象
答案 0 :(得分:2)
缺少.split()
,应该像这样写。 filter_line是一个列表,您需要将其转换回字符串以将其保存在文件中。
filtered_line = [w for w in line.split() if not w in stoplist]
filtered_line=' '.join(filtered_line)+'\n'
myfile.write(filtered_line)