N-грамма
N-грамма (n-gram) — это последовательность из n элементов, идущих подряд в тексте (или речи).
Элементы чаще всего — это слова, но могут быть и символы (буквы), слоги, токены и т.д.
Содержание
Самые популярные варианты
| n | Название | Пример (для текста «Я люблю пить кофе по утрам») |
|---|---|---|
| 1 | униграмма (unigram) | Я, люблю, пить, кофе, по, утрам |
| 2 | биграмма (bigram) | Я люблю, люблю пить, пить кофе, кофе по, по утрам |
| 3 | триграмма (trigram) | Я люблю пить, люблю пить кофе, пить кофе по, кофе по утрам |
| 4 | 4-грамма | Я люблю пить кофе, люблю пить кофе по, пить кофе по утрам |
| 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 идущих подряд элементов текста
Самые важные на практике — би- и триграммы.