Обработка естественного языка

Bag of Words

Мешок слов

классикаУчебная база и быстрый бейзлайн; в проде — TF-IDF/BM25 или эмбеддинги.

Текст представляется вектором частот слов, порядок полностью игнорируется.

Ключевые тезисы

  • Прост, интерпретируем и до сих пор силён на коротких документах.
  • Даёт очень разреженные векторы высокой размерности.
  • N-граммы частично возвращают информацию о порядке.

Подробный разбор

2 подтем — раскройте любую, чтобы увидеть объяснение, формулы, примеры и интерактивные графики.

1

Как строится мешок слов

Документ как вектор частот.

Пример

Тексты: «кот сел на коврик», «кот съел кота». Словарь: {кот, сел, на, коврик, съел, кота}. Векторы: и .

  • Порядок слов теряется полностью: «собака укусила человека» = «человек укусил собаку».
  • Размерность равна размеру словаря — десятки тысяч, но векторы крайне разрежены.
  • N-граммы частично возвращают порядок ценой ещё большей размерности.
На практике

Несмотря на примитивность, BoW + логистическая регрессия остаётся сильным бейзлайном для классификации коротких текстов и ставится за пять минут.

2

Предобработка текста

Что делать перед векторизацией, а что делать не нужно.

  • Приведение к нижнему регистру — почти всегда полезно, кроме задач, где регистр несёт смысл (NER, тикеры).
  • Лемматизация (pymorphy, spaCy) сильно помогает русскому: «идти», «шёл», «идут» сливаются в одну форму.
  • Стоп-слова — в классификации часто вредно удалять: «не» и «без» несут тональность.
  • Символьные n-граммы спасают при опечатках и сленге.
TfidfVectorizer(analyzer="char_wb", ngram_range=(3, 5), min_df=3)
Символьные n-граммы устойчивы к опечаткам и морфологии — сильный приём для русского

Связанные темы

От слов к векторам

Tokenization75%

Токенизация · Обработка естественного языка

Разбиение текста на единицы, с которыми работает модель: слова, подслова или байты.

TF-IDF75%

TF-IDF · Обработка естественного языка

Взвешивает частоту слова в документе на его редкость в корпусе, подавляя общеупотребительные слова.

Word2Vec75%

Word2Vec · Обработка естественного языка

Обучает плотные векторы слов по контексту: близкие по смыслу слова оказываются рядом в пространстве.

GloVe75%

GloVe · Обработка естественного языка

Строит эмбеддинги из глобальной матрицы совстречаемости слов, а не только из локальных окон.

FastText75%

FastText · Обработка естественного языка

Представляет слово суммой векторов его символьных n-грамм, что даёт эмбеддинги даже для незнакомых слов.

Embeddings75%

Эмбеддинги · Обработка естественного языка

Плотные векторные представления объектов, где геометрическая близость означает смысловое сходство.