Удалить стоп-слова (NLTK) из нескольких файлов

У меня есть пара текстовых файлов (локальная папка) и я хочу удалить стоп-слова из каждого файла в этой папке и сохранить новые файлы в подпапке.

Код для одного файла:

import io
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize

stop_words = set(stopwords.words('english'))
file1 = open("1_1.txt")
line = file1.read()
words = line.split()
for r in words:
    if not r in stop_words:
        appendFile = open('subfolder/1_1.txt','a')
        appendFile.write(" "+r)
        appendFile.close()

Я думаю, что я должен попробовать это с Glob? Но я, кажется, не понимаю документацию. А может мне стоит понизить () текст? Должен быть очень простой способ, но я нахожу учебники только для предложения или файла, а не для нескольких файлов.

1 ответ

Решение
import io
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize

stop_words = set(stopwords.words('english'))
file1 = open("file1.txt")
line = file1.read()
words = word_tokenize(line)
words_witout_stop_words = ["" if word in stop_words else word for word in words]
new_words = " ".join(words_witout_stop_words).strip()
appendFile = open('subfolder/file1.txt','w')
appendFile.write(new_words)
appendFile.close()

Теперь вы можете добавить цикл имен файлов вашего localfolder и ты в порядке.

Другие вопросы по тегам