Стоп-слова
Розуміння стоп-слів
Стоп-слова — це поширені слова, які зазвичай не впливають на зміст речення, принаймні для більшості аналізів і алгоритмів. До них належать такі слова, як "the", "is", "in" та "on".
Стоп-слова зазвичай видаляються після токенізації для завдань обробки природної мови, таких як аналіз тональності, тематичне моделювання або виділення ключових слів. Мета видалення стоп-слів — зменшення розміру набору даних, що підвищує обчислювальну ефективність, а також збільшення релевантності аналізу шляхом зосередження на словах, які мають суттєве значення.
Видалення стоп-слів за допомогою NLTK
Для спрощення обробки, nltk надає всеосяжний список стоп-слів для багатьох мов, який можна легко отримати та використовувати для фільтрації стоп-слів із текстових даних.
Ось як отримати список англійських стоп-слів у NLTK та перетворити його на set:
1234567import 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)
Перетворення цього списку на set підвищує ефективність пошуку, оскільки перевірка наявності елемента у set відбувається швидше, ніж у списку.
З огляду на це, розглянемо повний приклад фільтрації стоп-слів із заданого тексту:
1234567891011121314import 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)
Як видно, спочатку потрібно завантажити стоп-слова та виконати токенізацію. Наступний крок — використати list comprehension для створення списку, що містить лише ті токени, які не є стоп-словами. Використання word.lower() у виразі if є важливим для приведення кожного слова (токена) до нижнього регістру, оскільки у бібліотеці nltk стоп-слова представлені виключно у нижньому регістрі.
Альтернативно, можна використати звичайний for цикл замість list comprehension, однак використання list comprehension у цьому випадку є більш ефективним та лаконічним.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 3.45
Стоп-слова
Свайпніть щоб показати меню
Розуміння стоп-слів
Стоп-слова — це поширені слова, які зазвичай не впливають на зміст речення, принаймні для більшості аналізів і алгоритмів. До них належать такі слова, як "the", "is", "in" та "on".
Стоп-слова зазвичай видаляються після токенізації для завдань обробки природної мови, таких як аналіз тональності, тематичне моделювання або виділення ключових слів. Мета видалення стоп-слів — зменшення розміру набору даних, що підвищує обчислювальну ефективність, а також збільшення релевантності аналізу шляхом зосередження на словах, які мають суттєве значення.
Видалення стоп-слів за допомогою NLTK
Для спрощення обробки, nltk надає всеосяжний список стоп-слів для багатьох мов, який можна легко отримати та використовувати для фільтрації стоп-слів із текстових даних.
Ось як отримати список англійських стоп-слів у NLTK та перетворити його на set:
1234567import 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)
Перетворення цього списку на set підвищує ефективність пошуку, оскільки перевірка наявності елемента у set відбувається швидше, ніж у списку.
З огляду на це, розглянемо повний приклад фільтрації стоп-слів із заданого тексту:
1234567891011121314import 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)
Як видно, спочатку потрібно завантажити стоп-слова та виконати токенізацію. Наступний крок — використати list comprehension для створення списку, що містить лише ті токени, які не є стоп-словами. Використання word.lower() у виразі if є важливим для приведення кожного слова (токена) до нижнього регістру, оскільки у бібліотеці nltk стоп-слова представлені виключно у нижньому регістрі.
Альтернативно, можна використати звичайний for цикл замість list comprehension, однак використання list comprehension у цьому випадку є більш ефективним та лаконічним.
Дякуємо за ваш відгук!