Удалить стоп-слова (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
и ты в порядке.