【发布时间】:2021-03-21 20:38:18
【问题描述】:
我正在尝试读入目录中的所有文件,访问带有停用词的文件,浏览每个文件,从每个文件中删除停用词,然后生成所有已删除停用词的文件的副本。我能够读取所有文件并将它们打印为一个数组,但是当涉及到两个步骤时我被卡住了:删除停用词,并将生成的文件打印到一组新文件中。最后三行代码是仅生成一个文本文件的示例,但我需要某种循环来生成它们。
import pathlib
stop_words = open("StopWordList.txt")
stop_words.read()
for path in pathlib.Path(r'C:\Users\Usuario\Desktop\HelloWorld\emails').iterdir():
if path.is_file():
current_file = open(path, "r")
lines = current_file.read()
words = lines.split()
for y in stop_words:
if not y in stop_words:
appendFile = open('filteredtext.txt', 'a')
appendFile.write(" "+y)
appendFile.close()
【问题讨论】:
-
参考这个链接geeksforgeeks.org/removing-stop-words-nltk-python我相信这就是你可能想要的
-
你从
stop_words得到y,然后检查y是否在stop_words中?这没有道理。你应该从words得到y -
也许你应该得到
words,用它来创建没有stopwords的新列表,然后将所有单词连接成一个字符串,然后将该字符串保存到文件中。它可能比单独写每个单词更快。 -
顺便说一句:如果单词末尾有一些字符怎么办 -
.、,、!、?。您必须在使用 stopworkds 检查之前将其删除。你还应该比较小写。也许你应该为此使用模块nltk。 -
您应该使用
path为结果生成新名称,而不是'filteredtext.txt'
标签: python