Биграмма
Биграмма — это последовательность из двух элементов, обычно символов, букв, звуков или слов, рассматриваемая как единая единица анализа. В лингвистике, компьютерной лингвистике, криптографии и теории информации биграммы используются для изучения статистических закономерностей текста, построения языковых моделей и решения задач, связанных с обработкой естественного языка. Биграмма является частным случаем n-граммы, где n = 2.
История и происхождение
Понятие биграммы возникло в рамках статистического анализа текстов, который активно развивался с середины XX века. Одним из первых, кто применил статистические методы к языку, был американский лингвист Джордж Ципф, сформулировавший закон Ципфа, описывающий частотность слов. Однако систематическое изучение биграмм началось в контексте криптографии, где анализ частотности пар букв (биграмм) позволял взламывать простые шифры замены.
В 1948 году Клод Шеннон в своей работе «Математическая теория связи» заложил основы информационной теории, в рамках которой n-граммы, включая биграммы, стали использоваться для оценки энтропии языка и моделирования последовательностей символов. С развитием компьютерной лингвистики в 1950–1960-х годах биграммы стали ключевым инструментом для автоматической обработки текста, распознавания речи и машинного перевода.
Классификация биграмм
Биграммы можно классифицировать по типу элементов, из которых они состоят, и по способу их выделения.
По типу элементов
- Символьные биграммы (буквенные): Состоят из двух последовательных букв или символов. Например, в слове «дом» символьные биграммы: «до», «ом». В английском слове «hello»: «he», «el», «ll», «lo». Используются в криптоанализе, орфографических проверках и анализе стиля.
- Звуковые биграммы (фонемные): Состоят из двух последовательных фонем. Применяются в фонетике, распознавании речи и синтезе речи.
- Словесные биграммы: Состоят из двух последовательных слов. Например, в предложении «кот сидит на окне» словесные биграммы: «кот сидит», «сидит на», «на окне». Широко используются в языковых моделях, машинном переводе и анализе тональности текста.
- Биграммы символов (в информатике): В контексте программирования и кодирования биграммой может называться пара байтов или других единиц данных.
По способу выделения
- Пересекающиеся (скользящие): Биграммы выделяются со сдвигом на один элемент. Это наиболее распространённый способ, при котором каждый элемент (кроме первого и последнего) входит в две биграммы. Пример для слова «книга»: «кн», «ни», «иг», «га».
- Непересекающиеся: Биграммы выделяются без перекрытия, то есть текст разбивается на пары элементов, не имеющих общих элементов. Пример для слова «книга»: «кн», «иг» (буква «а» остаётся вне рассмотрения, если длина нечётная). Этот метод реже используется в лингвистике, но применяется в некоторых алгоритмах сжатия данных.
Применение биграмм
Лингвистика и компьютерная лингвистика
- Языковые модели: Биграммы являются основой для построения простых вероятностных моделей языка, которые оценивают вероятность появления следующего слова или символа на основе предыдущего. Такие модели используются в системах автодополнения текста (например, на смартфонах), в поисковых системах для предсказания запросов и в системах распознавания речи.
- Анализ частотности: Изучение частотности биграмм в тексте позволяет выявлять стилистические особенности автора, определять язык текста (например, для русского языка характерны биграммы «ст», «но», «то», «на»), а также обнаруживать заимствования или плагиат.
- Машинный перевод: В статистическом машинном переводе биграммы используются для оценки качества перевода (метрика BLEU частично основана на совпадении n-грамм, включая биграммы) и для выбора наиболее вероятного варианта перевода.
- Орфографические и грамматические проверки: Биграммы помогают обнаруживать опечатки и грамматические ошибки. Например, если в тексте встречается биграмма, которая крайне редко встречается в данном языке, система может предложить исправление.
Криптография
- Криптоанализ: Анализ частотности биграмм является одним из основных методов взлома шифров простой замены и некоторых видов шифров перестановки. Зная частотность биграмм в языке (например, в русском языке самые частые биграммы: «ст», «но», «то», «на», «ен»), криптоаналитик может сопоставить их с частотностью биграмм в зашифрованном тексте и восстановить ключ.
- Шифрование: Некоторые шифры, например, шифр Плейфера, работают с биграммами как с единицами шифрования. В шифре Плейфера открытый текст разбивается на пары букв (биграммы), и каждая пара заменяется на другую пару по определённому правилу с использованием ключевой таблицы.
Биоинформатика
- Анализ последовательностей ДНК и РНК: В геномике биграммы (динуклеотиды) используются для изучения частоты встречаемости пар нуклеотидов (например, «AT», «GC», «CG»). Это помогает в идентификации генов, изучении эволюционных связей и анализе структуры ДНК.
Информационный поиск и обработка текстов
- Индексация и поиск: Биграммы используются для построения индексов в поисковых системах, особенно для языков с морфологически сложной структурой (например, русского, немецкого). Разбиение слов на биграммы позволяет находить документы, содержащие слово с ошибкой или в другой грамматической форме.
- Классификация текстов: Биграммы служат признаками для обучения классификаторов, которые определяют тематику текста, его тональность (позитивная, негативная, нейтральная) или авторство.
Примеры
В русском языке
Наиболее частотные символьные биграммы в русском языке (по данным корпусных исследований):
- «ст» (встречается в словах «стол», «мост», «статья»)
- «но» («ночь», «окно», «норма»)
- «то» («тот», «сто», «топор»)
- «на» («надо», «рана», «наука»)
- «ен» («день», «меня», «стена»)
Пример словесных биграмм: «в течение», «для того», «на основе», «по мнению», «в связи».
В английском языке
Наиболее частотные символьные биграммы: «th», «he», «in», «er», «an». Словесные биграммы: «of the», «in the», «to be», «is a», «as well».
Критика и ограничения
Использование биграмм имеет ряд ограничений. Основным недостатком является то, что биграммы учитывают только локальный контекст (два соседних элемента) и не способны улавливать долгосрочные зависимости в тексте. Например, в предложении «Кот, который сидел на окне, спал» биграммы не свяжут слово «кот» и «спал», так как между ними находится много других слов. Для решения этой проблемы используются более сложные модели, такие как триграммы (n=3) или рекуррентные нейронные сети.
Кроме того, для больших корпусов текстов количество уникальных биграмм может быть очень большим, что приводит к проблемам с памятью и вычислительными ресурсами (проклятие размерности). В таких случаях применяют методы сглаживания и отбора признаков.
Источники
- Шеннон, К. «Математическая теория связи» (1948).
- Маннинг, К. Д., Шютце, Х. «Основы статистической обработки естественного языка» (1999).
- Захаров, В. П., Хохлова, М. В. «Корпусная лингвистика» (2013).
- Шнайер, Б. «Прикладная криптография» (1996).
- Jurafsky, D., Martin, J. H. «Speech and Language Processing» (2023).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →