Стоп-слова
Свайпніть щоб показати меню
Розуміння стоп-слів
Стоп-слова — це поширені слова, які зазвичай не впливають на зміст речення, принаймні для більшості аналізів та алгоритмів. До них належать такі слова, як "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 у цьому випадку є більш ефективним та лаконічним.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат