使用 Python 删除停用词推文

Remove stopwords Tweets using Python

我有一个很大的 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:需要一个字符缓冲区对象

少了一个.split(),应该这样写。 filtered_line 是一个列表,您需要将其转换回字符串以将其保存在文件中。

filtered_line = [w for w in line.split() if not w in stoplist]
filtered_line=' '.join(filtered_line)+'\n'
myfile.write(filtered_line)