N-грамма

N-грамма (n-gram) — это последовательность из n элементов, идущих подряд в тексте (или речи).
Элементы чаще всего — это слова, но могут быть и символы (буквы), слоги, токены и т.д.

Самые популярные варианты

nНазваниеПример (для текста «Я люблю пить кофе по утрам»)
1униграмма (unigram)Я, люблю, пить, кофе, по, утрам
2биграмма (bigram)Я люблю, люблю пить, пить кофе, кофе по, по утрам
3триграмма (trigram)Я люблю пить, люблю пить кофе, пить кофе по, кофе по утрам
44-граммаЯ люблю пить кофе, люблю пить кофе по, пить кофе по утрам
5+n-грамма

Зачем вообще нужны n-граммы?

Они решают очень много задач в обработке текста:

  • Автодополнение текста (когда телефон предлагает следующее слово)
  • Проверка орфографии и исправление опечаток
  • Машинный перевод (раньние статистические системы)
  • Распознавание речи
  • Определение языка текста
  • Классификация текстов (спам / не спам, тональность)
  • Поиск похожих текстов / плагиата
  • SEO-анализ (поиск ключевых фраз, кластеризация запросов)
  • Языковые модели до эпохи трансформеров

Простой пример вероятностной модели (самая классика)

Есть корпус текстов. Считаем, сколько раз встречаются разные биграммы:

  • «я хочу» → 120 раз
  • «я люблю» → 85 раз
  • «я никогда» → 3 раза

Тогда вероятность следующего слова после «я» будет примерно такой:

P(хочу | я) ≈ 120 / (120 + 85 + 3 + …) P(люблю | я) ≈ 85 / … P(никогда | я) ≈ 3 / … 

Именно так раньше работали многие предсказатели текста и ранние языковые модели.

Сегодня мощные нейросети (типа GPT, Llama, Grok и др.) в каком-то смысле «знают» миллиарды n-грамм implicitly внутри своих параметров, хотя формально уже не используют классические n-gram таблицы.

Коротко:

n-грамма = n идущих подряд элементов текста
Самые важные на практике — би- и триграммы.