【发布时间】:2020-01-29 13:32:39
【问题描述】:
我正在尝试使用以下代码从制表符分隔的 .txt 文件中删除停用词:
import io
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
file = open('textposts_01.txt', encoding='UTF-8')
stop_words = set(stopwords.words('english'))
line = file.read()
words = line.split()
for r in words:
if not r in stop_words:
appendFile = open('textposts_02.txt', mode='a', encoding='UTF-8')
appendFile.write(" "+r)
appendFile.close()
代码执行成功,但是当我查看结果时,所有行都被重新写入了一行。如何在删除停用词的同时维护列?
我在类似的帖子中找到了以下解决方案:
import io
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
file = open('textposts_01.txt', encoding='UTF-8')
stop_words = set(stopwords.words('english'))
line = file.read()
words = line.split()
for r in words:
if not r in stop_words:
appendFile = open('textposts_02.txt', mode='a', encoding='UTF-8')
appendFile.write(" "+r)
appendFile.write("\n")
appendFile.close()
但是插入一个新行只是在每个单词之后创建一个新行,所以如果我从这样的一行开始:
0 make a list of every person you know
结果如下所示:
0
make
list
every
person
know
我需要这样的行中的结果:
0 make list every person
我已经搜索了一段时间,但没有找到任何解决方案。
【问题讨论】:
标签: python nlp nltk stop-words