使用 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)
我有一个很大的 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)