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

Natural Language Processing (NLP) in Python

Fouad Trad

Machine Learning Engineer

Стоп-слова

  • Часто трапляються, але мало допомагають моделі розуміти контекст
  • Мало корисні в багатьох NLP-завданнях
  • Видалення дозволяє зосередитись на важливих словах

Зображення з кількома стоп-словами: a, an, the, in, of, that, for, by тощо.

Natural Language Processing (NLP) in Python

Видалення стоп-слів

Корисно для

Розуміння теми тексту

Зображення з відгуками про продукт у мобільному застосунку

Natural Language Processing (NLP) in Python

Видалення стоп-слів

Корисно для

Розуміння теми тексту

Зображення з відгуками про продукт у мобільному застосунку

Не корисно для

Завдань, де потрібне кожне слово в тексті

Зображення перекладу тексту з англійської (Good morning) французькою (Bonjour).

Natural Language Processing (NLP) in 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']
Natural Language Processing (NLP) in 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', '.']
Natural Language Processing (NLP) in Python

Пунктуація

  • Формують мову для людей
  • У багатьох NLP-завданнях не несуть змісту

Зображення розділових знаків і спеціальних символів.

Natural Language Processing (NLP) in Python

Видалення пунктуації

Корисно для

Завдань з пошуку поширених або важливих слів у документах

Зображення кількох файлів і документів, які треба обробити.

Natural Language Processing (NLP) in Python

Видалення пунктуації

Корисно для

Завдань з пошуку поширених або важливих слів у документах

Зображення кількох файлів і документів, які треба обробити.

Не корисно для

Завдань, де потрібно зберегти структуру речень для зрозумілості

Зображення стосу книжок і підсумкового документа, згенерованого з них.

Natural Language Processing (NLP) in 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']
Natural Language Processing (NLP) in Python

Давайте потренуємось!

Natural Language Processing (NLP) in Python

Preparing Video For Download...