Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Стоп-слова | Основи Попередньої Обробки Тексту
Вступ до NLP

bookСтоп-слова

Розуміння стоп-слів

Note
Визначення

Стоп-слова — це поширені слова, які зазвичай не впливають на зміст речення, принаймні для більшості аналізів і алгоритмів. До них належать такі слова, як "the", "is", "in" та "on".

Стоп-слова зазвичай видаляються після токенізації для завдань обробки природної мови, таких як аналіз тональності, тематичне моделювання або виділення ключових слів. Мета видалення стоп-слів — зменшення розміру набору даних, що підвищує обчислювальну ефективність, а також збільшення релевантності аналізу шляхом зосередження на словах, які мають суттєве значення.

Видалення стоп-слів за допомогою NLTK

Для спрощення обробки, nltk надає всеосяжний список стоп-слів для багатьох мов, який можна легко отримати та використовувати для фільтрації стоп-слів із текстових даних.

Ось як отримати список англійських стоп-слів у NLTK та перетворити його на set:

1234567
import nltk from nltk.corpus import stopwords # Download the stop words list nltk.download('stopwords') # Load English stop words stop_words = set(stopwords.words('english')) print(stop_words)
copy
Note
Примітка

Перетворення цього списку на set підвищує ефективність пошуку, оскільки перевірка наявності елемента у set відбувається швидше, ніж у списку.

З огляду на це, розглянемо повний приклад фільтрації стоп-слів із заданого тексту:

1234567891011121314
import nltk from nltk.tokenize import word_tokenize from nltk.corpus import stopwords nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) text = "This is an example sentence demonstrating the removal of stop words." text = text.lower() # Tokenize the text tokens = word_tokenize(text) # Remove stop words filtered_tokens = [word for word in tokens if word not in stop_words] print("Original Tokens:", tokens) print("Filtered Tokens:", filtered_tokens)
copy

Як видно, спочатку потрібно завантажити стоп-слова та виконати токенізацію. Наступний крок — використати list comprehension для створення списку, що містить лише ті токени, які не є стоп-словами. Використання word.lower() у виразі if є важливим для приведення кожного слова (токена) до нижнього регістру, оскільки у бібліотеці nltk стоп-слова представлені виключно у нижньому регістрі.

Note
Примітка

Альтернативно, можна використати звичайний for цикл замість list comprehension, однак використання list comprehension у цьому випадку є більш ефективним та лаконічним.

question mark

Яке з наведеного найкраще описує, що таке стоп-слова та чому їх часто видаляють?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 7

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 3.45

bookСтоп-слова

Свайпніть щоб показати меню

Розуміння стоп-слів

Note
Визначення

Стоп-слова — це поширені слова, які зазвичай не впливають на зміст речення, принаймні для більшості аналізів і алгоритмів. До них належать такі слова, як "the", "is", "in" та "on".

Стоп-слова зазвичай видаляються після токенізації для завдань обробки природної мови, таких як аналіз тональності, тематичне моделювання або виділення ключових слів. Мета видалення стоп-слів — зменшення розміру набору даних, що підвищує обчислювальну ефективність, а також збільшення релевантності аналізу шляхом зосередження на словах, які мають суттєве значення.

Видалення стоп-слів за допомогою NLTK

Для спрощення обробки, nltk надає всеосяжний список стоп-слів для багатьох мов, який можна легко отримати та використовувати для фільтрації стоп-слів із текстових даних.

Ось як отримати список англійських стоп-слів у NLTK та перетворити його на set:

1234567
import nltk from nltk.corpus import stopwords # Download the stop words list nltk.download('stopwords') # Load English stop words stop_words = set(stopwords.words('english')) print(stop_words)
copy
Note
Примітка

Перетворення цього списку на set підвищує ефективність пошуку, оскільки перевірка наявності елемента у set відбувається швидше, ніж у списку.

З огляду на це, розглянемо повний приклад фільтрації стоп-слів із заданого тексту:

1234567891011121314
import nltk from nltk.tokenize import word_tokenize from nltk.corpus import stopwords nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) text = "This is an example sentence demonstrating the removal of stop words." text = text.lower() # Tokenize the text tokens = word_tokenize(text) # Remove stop words filtered_tokens = [word for word in tokens if word not in stop_words] print("Original Tokens:", tokens) print("Filtered Tokens:", filtered_tokens)
copy

Як видно, спочатку потрібно завантажити стоп-слова та виконати токенізацію. Наступний крок — використати list comprehension для створення списку, що містить лише ті токени, які не є стоп-словами. Використання word.lower() у виразі if є важливим для приведення кожного слова (токена) до нижнього регістру, оскільки у бібліотеці nltk стоп-слова представлені виключно у нижньому регістрі.

Note
Примітка

Альтернативно, можна використати звичайний for цикл замість list comprehension, однак використання list comprehension у цьому випадку є більш ефективним та лаконічним.

question mark

Яке з наведеного найкраще описує, що таке стоп-слова та чому їх часто видаляють?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 7
some-alt