Стоп-слова и обработка пунктуации

Обработка естественного языка (NLP) на Python

Fouad Trad

Machine Learning Engineer

Стоп-слова

  • Встречаются часто, но почти не помогают модели понять контекст
  • Мало полезны во многих задачах NLP
  • Их удаление позволяет модели сосредоточиться на значимых словах

Изображение с примерами стоп-слов: a, an, the, in, of, that, for, by и др.

Обработка естественного языка (NLP) на Python

Удаление стоп-слов

Полезно для

Определения темы текста

Изображение с отзывами о продукте в мобильном приложении

Обработка естественного языка (NLP) на Python

Удаление стоп-слов

Полезно для

Определения темы текста

Изображение с отзывами о продукте в мобильном приложении

Не полезно для

Задач, требующих учёта каждого слова в тексте

Изображение с переводом текста с английского (Good morning) на французский (Bonjour).

Обработка естественного языка (NLP) на Python

Доступ к стоп-словам

NLTK предоставляет списки стоп-слов для нескольких языков

from nltk.corpus import stopwords
nltk.download('stopwords')

stop_words = stopwords.words('english')
print(stop_words[:10])
['a', 'about', 'above', 'after', 'again', 'against', 'ain', 'all', 'am', 'an']
Обработка естественного языка (NLP) на Python

Удаление стоп-слов

from nltk.tokenize import word_tokenize

text = "This is an example to demonstrate removing stop words."
tokens = word_tokenize(text)
# The .lower() method helps with case sensitivity filtered_tokens = [word for word in tokens if word.lower() not in stop_words]
print(filtered_tokens)
['example', 'demonstrate', 'removing', 'stop', 'words', '.']
Обработка естественного языка (NLP) на Python

Пунктуация

  • Структурирует язык для людей
  • Не несёт смысловой нагрузки во многих задачах NLP

Изображение со знаками пунктуации и специальными символами.

Обработка естественного языка (NLP) на Python

Удаление пунктуации

Полезно для

Задач поиска частых или значимых слов в документах

Изображение с набором файлов и документов, требующих обработки.

Обработка естественного языка (NLP) на Python

Удаление пунктуации

Полезно для

Задач поиска частых или значимых слов в документах

Изображение с набором файлов и документов, требующих обработки.

Не полезно для

Задач, требующих сохранения структуры предложений для ясности

Изображение со стопкой книг и созданным на их основе документом-резюме.

Обработка естественного языка (NLP) на Python

Доступ к пунктуации и её удаление

import string
print(string.punctuation)
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
text = "This is an example to demonstrate removing stop words."
tokens = word_tokenize(text)
filtered_tokens = [word for word in tokens if word.lower() not in stop_words]

clean_tokens = [word for word in filtered_tokens if word not in string.punctuation]
print(clean_tokens)
['example', 'demonstrate', 'removing', 'stop', 'words']
Обработка естественного языка (NLP) на Python

Давайте потренируемся!

Обработка естественного языка (NLP) на Python

Preparing Video For Download...