NLP FastText BPE

Основная идея FastText в том, что будем составлять словарь не слов в предложении, а частей слов.

К примеру, есть слово number. Это слово разделяем на части: num, umb, mbe, ber. Эти части слова называются N-граммы.

Затем эти части слов, на основе словаря, переводим в one-hot вектора, и складываем их. Получаем bag-of-words.

Далее полученный вектор передаем в нейронную сеть или в Embedding.

Можно также обучать используя skipgram.

Данный подход хорош тем, что он решает задачи:

  1. Редко встречаемые слова.
  2. Опечятки в словах.
  3. Решается вопрос добавление новых слов, на которых модель не обучалась.

Как улучшение алгоритма, можно не рандомно делить, а разделять слово на составные слова, выделять корень, приставку, суффикс и окончание. Этот алгоритм называется BPE (Byte Pair Encoding).