Экстрактор N-грамм

N-грамма представляет собой последовательность из n подряд идущих слов текста. Экстрактор приводит ваш текст к нижнему регистру, разбивает его на слова по пробелам и знакам препинания и считает каждую n-грамму выбранной вами длины (от 1 до 8). На выходе получается таблица частот в формате CSV, отсортированная от самых частых сочетаний к редким: та самая таблица, на которой держатся проверка плотности ключевых слов в SEO, сглаживание языковых моделей и поиск заимствований.

Как извлечь n-граммы

  1. 1

    Вставьте текст

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

  2. 2

    Выберите n

    Униграммы (1), биграммы (2), триграммы (3) и так далее до 8. За один раз обрабатывается одна длина.

  3. 3

    Запустите извлечение

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

  4. 4

    Изучите таблицу частот

    Каждая n-грамма выводится вместе с числом вхождений и сортируется по убыванию частоты.

  5. 5

    Скопируйте CSV

    Результат разделён запятыми (N-gram,Count) и готов к вставке в электронную таблицу.

Что показывает каждая длина n-граммы

N Название Сценарий использования
1 Униграмма Плотность ключевых слов, картина тем
2 Биграмма Словосочетания (“search intent”, “page speed”), коллокации
3 Триграмма Низкочастотные запросы, выявление признаков
4+ Четырёхграмма и длиннее Поиск дублей, признаки заимствования

Как инструмент разбивает ваш текст

  • Всё приводится к нижнему регистру, поэтому «The» и «the» попадают в одну строку.
  • Словом считается любая цепочка букв, цифр или апострофов. Любой другой символ (знак препинания, символ, перевод строки) считается разделителем и отбрасывается.
  • Границы предложений не сохраняются. Последнее слово одного предложения и первое слово следующего всё равно могут образовать n-грамму, поэтому к таким парам стоит относиться осторожно. Если это важно, разбирайте текст по предложениям или абзацам.
  • Стоп-слова остаются. Ничего не фильтруется за вас: если нужны только осмысленные сочетания, удалите лишние строки из CSV после выгрузки.
  • Слова определяются по пробелам и знакам препинания. В русском языке слова разделяются пробелами, поэтому инструмент работает с ним напрямую. Учтите только, что словоформы не приводятся к начальной форме: «сайта», «сайту» и «сайт» попадут в разные строки. Если нужна лемматизация, прогоните текст через pymorphy2 или mystem и вставьте результат. А вот китайский, японский и тайский пишутся без пробелов между словами: там вся фраза придёт как одно слово, поэтому её нужно предварительно разбить (jieba, MeCab, тайский токенизатор).

Когда убирать стоп-слова

Стоп-слова представляют собой высокочастотные служебные слова: «the», «a», «of», «and» в английском и «и», «в», «на», «что» в русском. Если их не убрать, список биграмм заполнится мусором вроде «of the» и «и в». Этот экстрактор их сохраняет, поэтому удаляйте такие строки из выгрузки, когда вам нужны осмысленные словосочетания, и оставляйте, когда изучаете стиль, авторство или языковые модели, где служебные слова сами по себе несут сигнал.

Применение в SEO

Для статьи под запрос «nginx config generator» проверьте:

  • Целевые биграмма и триграмма входят в топ-20. Если «nginx config» на 40-м месте, вы, скорее всего, недостаточно используете этот термин.
  • Нет переспама. Если запрос занимает первое место с огромным отрывом, текст читается как спам.
  • Есть семантические соседи. Смежные биграммы вроде «server block», «proxy pass» и «ssl certificate» убеждают поисковые системы, что тема раскрыта.

NLP и академическое применение

  • Языковые модели используют частоты n-грамм для сглаживания и отката (Кнесера-Нея, Гуда-Тьюринга).
  • Исследования авторства сравнивают распределения триграмм у разных кандидатов в авторы.
  • Оценка машинного перевода (BLEU) измеряет совпадение n-грамм между переводом системы и эталонным переводом.

Часто задаваемые вопросы

От твита (где n-граммы почти лишены смысла) до главы книги. Для статистической надёжности биграмм нужно от 1 000 слов, а для триграмм от 10 000. При меньшем объёме рейтинг получается слишком шумным.

Здесь нет. Текст всегда приводится к нижнему регистру перед подсчётом, поэтому «The» и «the» (как и «Apple» и «apple») попадают в одну строку, а не разделяются на две. Режима с учётом регистра нет: если нужно отделить имена собственные или код, пометьте их в тексте перед вставкой.

Они работают как разделители слов и никогда не попадают внутрь n-граммы. Но окно подсчёта они не разрывают: последнее слово одного предложения и первое слово следующего всё равно считаются одной биграммой. Если границы предложений принципиальны, обрабатывайте предложения или абзацы по отдельности.

С русским работает сразу: слова разделены пробелами. Помните лишь, что формы одного слова считаются разными («запрос» и «запросы» окажутся в разных строках), поэтому для морфологически точного анализа сначала лемматизируйте текст (pymorphy2, mystem). Китайский, японский и тайский пишутся без пробелов между словами, поэтому целое предложение приходит как одно слово: сначала разбейте его токенизатором (jieba, MeCab, тайский сегментатор) и вставьте уже разделённый пробелами текст.

Инструмент не применяет никакой список, фильтровать нужно после выгрузки. Самый известный английский список стоп-слов состоит из 179 слов и входит в NLTK; его используют большинство SEO-инструментов. У Snowball, SpaCy и scikit-learn списки немного отличаются. Для русского берите русские списки стоп-слов из NLTK или из pymorphy-совместимых наборов.

Сопутствующие инструменты

Генератор названий городов

Создавайте вымышленные названия городов, посёлков, деревень и столиц для миростроения, карт, игр, историй и тестовых данных с короткими заметками к каждому результату.

Символы стрелок для копирования

Копируйте популярные Unicode-стрелки одним щелчком: прямые, двойные, диагональные, крючковые, круговые и треугольные для документов, чатов и дизайна.

Символ «меньше или равно»

Копируйте знак ≤ и связанные математические символы сравнения. Включает Unicode, HTML-сущности и разметку LaTeX для электронных таблиц, научных работ и веб-страниц.

Преобразователь текста для людей с дислексией

Переформатируйте вставленный текст в короткие абзацы и строки примерно по 72 символа для более лёгкого чтения. Скопируйте результат в любой документ, письмо или редактор.

Генератор проклятого текста

Превращайте обычный текст в проклятые буквы в стиле Zalgo, сложенные с использованием специальных символов комбинирования Unicode. Копируйте этот хаос в чаты, подписи или мемы.

Генератор имен персонажей

Создавайте имена персонажей для романов, игр и ролевых игр. Выберите фэнтези, научную фантастику или современный стиль, задайте от 5 до 30 имен и получите готовые варианты сразу.

Инструмент доступен на других языках