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

FastText

FastText

классикаЖивёт как быстрый классификатор и для морфологичных языков без GPU.

Направления: Прикладные направления · NLP

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

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

  • Особенно полезен для морфологически богатых языков, включая русский.
  • Решает проблему out-of-vocabulary без отдельного словаря.
  • Встроенный быстрый классификатор — хороший .

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

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

слова — сумма векторов его символьных n-грамм
Пример

«машина» при n=3 даёт <ма, маш, аши, шин, ина, на>. Слово «машинка», ни разу не встреченное при обучении, получит близкий — общие n-граммы обеспечивают это автоматически.

  • Проблема out-of-vocabulary исчезает: можно построить для любого слова.
  • Опечатки и словоформы обрабатываются устойчиво.
  • Есть встроенный классификатор — быстрый и сильный для коротких текстов.

FastText-классификатор усредняет n-грамм документа и подаёт результат в линейный слой с иерархическим . Это делает обучение на миллионах документов вопросом минут на CPU.

import fasttext
model = fasttext.train_supervised("train.txt", epoch=25, wordNgrams=2, dim=100)
print(model.test("valid.txt"))    # (N, precision@1, recall@1)
Формат файла: `__label__класс текст документа`
На практике

Часто отстаёт от дообученного всего на несколько процентов, а стоит в тысячи раз дешевле — хороший выбор для больших потоков коротких текстов.

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

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

Tokenization75%

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

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

Bag of Words75%

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

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

TF-IDF75%

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

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

Word2Vec75%

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

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

GloVe75%

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

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

Embeddings75%

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

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

Следующий шагДальше по связи: TokenizationРазбиение текста на единицы, с которыми работает модель: слова, подслова или байты.Перейти →

Глава «Обработка естественного языка» последний раз правилась . Нашли ошибку — напишите.