Текст представляется вектором частот слов, порядок полностью игнорируется.
Ключевые тезисы
- Прост, интерпретируем и до сих пор силён на коротких документах.
- Даёт очень разреженные векторы высокой размерности.
- N-граммы частично возвращают информацию о порядке.
Подробный разбор
2 подтем — раскройте любую, чтобы увидеть объяснение, формулы, примеры и интерактивные графики.
1Как строится мешок слов
Документ как вектор частот.
Тексты: «кот сел на коврик», «кот съел кота». Словарь: {кот, сел, на, коврик, съел, кота}. Векторы: и .
- Порядок слов теряется полностью: «собака укусила человека» = «человек укусил собаку».
- Размерность равна размеру словаря — десятки тысяч, но векторы крайне разрежены.
- N-граммы частично возвращают порядок ценой ещё большей размерности.
Несмотря на примитивность, BoW + логистическая регрессия остаётся сильным бейзлайном для классификации коротких текстов и ставится за пять минут.
2Предобработка текста
Что делать перед векторизацией, а что делать не нужно.
- Приведение к нижнему регистру — почти всегда полезно, кроме задач, где регистр несёт смысл (NER, тикеры).
- Лемматизация (pymorphy, spaCy) сильно помогает русскому: «идти», «шёл», «идут» сливаются в одну форму.
- Стоп-слова — в классификации часто вредно удалять: «не» и «без» несут тональность.
- Символьные n-граммы спасают при опечатках и сленге.
TfidfVectorizer(analyzer="char_wb", ngram_range=(3, 5), min_df=3)Связанные темы
От слов к векторам
Tokenization75%
Токенизация · Обработка естественного языкаРазбиение текста на единицы, с которыми работает модель: слова, подслова или байты.
TF-IDF75%
TF-IDF · Обработка естественного языкаВзвешивает частоту слова в документе на его редкость в корпусе, подавляя общеупотребительные слова.
Word2Vec75%
Word2Vec · Обработка естественного языкаОбучает плотные векторы слов по контексту: близкие по смыслу слова оказываются рядом в пространстве.
GloVe75%
GloVe · Обработка естественного языкаСтроит эмбеддинги из глобальной матрицы совстречаемости слов, а не только из локальных окон.
FastText75%
FastText · Обработка естественного языкаПредставляет слово суммой векторов его символьных n-грамм, что даёт эмбеддинги даже для незнакомых слов.
Embeddings75%
Эмбеддинги · Обработка естественного языкаПлотные векторные представления объектов, где геометрическая близость означает смысловое сходство.