Рубрики

Удаление стоп-слов с помощью NLTK в Python

Процесс преобразования данных в то, что может понять компьютер, называется предварительной обработкой. Одной из основных форм предварительной обработки является фильтрация ненужных данных. При обработке на естественном языке бесполезные слова (данные) называются стоп-словами.

Что такое стоп-слова?

Стоп-слова. Стоп-слово — это часто используемое слово (например, «the», «a», «an», «in»), которое поисковая система была запрограммирована на игнорирование как при индексации записей для поиска, так и при их получении. в результате поискового запроса.

Мы бы не хотели, чтобы эти слова занимали место в нашей базе данных или занимали драгоценное время обработки. Для этого мы можем легко удалить их, сохранив список слов, которые вы считаете стоп-словами. NLTK (Natural Language Toolkit) в python содержит список стоп-слов, хранящихся на 16 различных языках. Вы можете найти их в каталоге nltk_data. home / pratima / nltk_data / corpora / stopwords — это адрес каталога (не забудьте изменить имя вашего домашнего каталога)

Чтобы проверить список стоп-слов, вы можете ввести следующие команды в оболочке python.

import nltk
from nltk.corpus import stopwords
 set(stopwords.words('english'))

{'мы', 'ее', 'между', 'собой', 'но', 'снова', 'там', 'о', 'однажды', 'во время', 'вне', 'очень', ' иметь ',' с ',' они ',' свой ',' an ',' be ',' some ',' for ',' do ',' its ',' yours ',' such ',' into ' , 'of', 'most', 'самой', 'other', 'off', 'is', 's', 'am', 'или', 'who', 'as', 'from', ' ему »,« каждому »,« тому »,« самим »,« до »,« ниже »,« мы »,« мы »,« эти »,« ваши »,« его »,« до »,« не » , «ни», «я», «были», «ее», «больше», «он сам», «это», «вниз», «должен», «наш», «их», «пока», « выше ',' оба ',' вверх ',' до ',' наш ',' имел ',' она ',' все ',' нет ',' когда ',' в ',' любое ',' до ' , 'им', 'то же самое', 'и', 'был', 'имейте', 'в', 'будет', 'на', 'делает', 'вы', 'тогда', 'тот', ' потому что «что», «над», «почему», «так», «может», «сделал», «не», «сейчас», «под», «он», «ты», «сама» , «имеет», «просто», «где», «тоже», «только», «я», «который», «те», «я», «после», «несколько», «кого», « t ',' бытие ',' если ',' их ',' мое ',' против ',' a ',' by ',' делать ',' это ',' как ',' дальше ',' было ' здесь, то п '}

Примечание. Вы даже можете изменить список, добавив слова на ваш выбор в английском .txt. файл в каталоге стоп-слов.

Удаление стоп-слов с помощью NLTK

Следующая программа удаляет стоп-слова из фрагмента текста:

from nltk.corpus import stopwords

from nltk.tokenize import word_tokenize

  

example_sent = "This is a sample sentence, showing off the stop words filtration."

  

stop_words = set(stopwords.words('english'))

  

word_tokens = word_tokenize(example_sent)

  

filtered_sentence = [w for w in word_tokens if not w in stop_words]

  

filtered_sentence = []

  

for w in word_tokens:

    if w not in stop_words:

        filtered_sentence.append(w)

  

print(word_tokens)

print(filtered_sentence)

Выход:

['This', 'is', 'a', 'sample', 'sentence', ',', 'showing', 
'off', 'the', 'stop', 'words', 'filtration', '.']
['This', 'sample', 'sentence', ',', 'showing', 'stop',
'words', 'filtration', '.']

Выполнение стоп-слов в файле

В приведенном ниже коде text.txt является исходным входным файлом, в котором должны быть удалены стоп-слова. Filtertext.txt является выходным файлом. Это можно сделать с помощью следующего кода:

import io

from nltk.corpus import stopwords

from nltk.tokenize import word_tokenize

#word_tokenize принимает строку как ввод, а не файл.

stop_words = set(stopwords.words('english'))

file1 = open("text.txt")

line = file1.read()# Используйте это для чтения содержимого файла в виде потока:

words = line.split()

for r in words:

    if not r in stop_words:

        appendFile = open('filteredtext.txt','a')

        appendFile.write(" "+r)

        appendFile.close()

Таким образом мы повышаем эффективность обработанного контента, удаляя слова, которые не влияют на будущие операции.

Эта статья предоставлена Pratima Upadhyay . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Удаление стоп-слов с помощью NLTK в Python

0.00 (0%) 0 votes