Новости и статьи об искусственном интеллекте и нейросетях. Мы собираем и обрабатываем самую актуальную информацию из мира AI. О проекте

Статьи

Что делает язык визуально узнаваемым?

Статья раскрывает, как статистические методы помогают выявить уникальные комбинации символов, делающие текст языка узнаваемым. На основе анализа 5000 самых частых слов в 20 европейских языках определены визуальные «отпечатки», такие как редкие буквы и суффиксы. Результаты демонстрируют специфику каждого языка, от исландских «ð» и «þ» до нидерландских «ijk».

12 октября 2025 г.
7 мин
1

Увидев слово на неизвестном языке, можно нередко определить его принадлежность, просто обратив внимание на характерные комбинации букв. К примеру, хотя я не владею исландским, но легко распознаю его по наличию символов вроде «ð» или «þ», ведь они почти не встречаются в других языках. Точно так же, если в тексте часто попадается последовательность «ijk», это, скорее всего, указывает на нидерландский.

В этой публикации мы рассмотрим, как применяя базовые статистические подходы, выявить эти визуальные «отпечатки» — последовательности символов, которые наиболее убедительно свидетельствуют о принадлежности к тому или иному языку, — на примере 20 европейских языков.

Выявление лингвистических отпечатков с помощью статистики

Чтобы определить визуальные «отпечатки» языка, требуется метод оценки уникальности конкретной комбинации символов. Логично начать с анализа наиболее частых последовательностей в каждом языке. Однако такой путь оказывается недостаточным, поскольку популярная в одном языке комбинация может быть обычной и в других. Частота сама по себе не отражает специфику. Нам нужно ответить на вопрос:

«Насколько эта последовательность чаще встречается в данном языке по сравнению со всеми остальными?»

Здесь на помощь приходит статистика! Формально обозначим:

  • L — множество из 20 изучаемых языков
  • S — множество всех наблюдаемых комбинаций символов в этих языках

Чтобы оценить, насколько сильно комбинация символов s из S ассоциируется с языком l из L, рассчитывается коэффициент правдоподобия:

\[LR_{s,l} = \frac{P(s|l)}{P(s|\neg l)}\]

Это соотношение сравнивает вероятность появления комбинации s в языке l с вероятностью ее появления в любом другом языке. Чем выше значение, тем теснее связь этой последовательности именно с данным языком.

Практический расчет коэффициента правдоподобия

Для вычисления коэффициента правдоподобия для каждой комбинации символов на практике необходимо преобразовать условные вероятности в измеримые величины. Вот как определяются ключевые счетчики:

  • cl(s): количество появлений комбинации s в языке l
  • c¬l(s): количество появлений комбинации s во всех остальных языках
  • Nl: общее количество появлений комбинаций символов в языке l
  • N¬l: общее количество появлений комбинаций во всех остальных языках

На основе этих значений условные вероятности выражаются как:

\[P(s|l) = \frac{c_l(s)}{N_l},~P(s|\neg l)=\frac{c_{\neg l}(s)}{N_{\neg l}}\]

а коэффициент правдоподобия упрощается до:

\[LR_{s,l} = \frac{P(s|l)}{P(s|\neg l)} = \frac{c_l(s)\cdot N_{\neg l}}{c_{\neg l}(s)\cdot N_l}\]

Таким образом, мы получаем числовой показатель, который измеряет, насколько комбинация s вероятнее в языке l, чем в остальных.

Обработка нулевых значений

К сожалению, в формуле коэффициента правдоподобия возникает проблема: что делать, если c¬l(s) = 0?

Иными словами, если комбинация s присутствует исключительно в языке l и нигде больше? Это приводит к делению на ноль в знаменателе и бесконечному значению коэффициента.

С технической точки зрения, это указывает на идеально уникальную комбинацию для языка. Но на практике это не всегда полезно. Ведь последовательность может появиться лишь однажды в одном языке и отсутствовать в других, получив бесконечный балл. Такой подход не подходит для надежного «отпечатка» языка.

Чтобы устранить эту проблему, используется метод аддитивного сглаживания. Он корректирует исходные счетчики минимально, чтобы избежать нулей и смягчить влияние редких случаев.

В частности, к каждому счетчику в числителе добавляется малая константа α, а к знаменателю — α|S|, где |S| — общее число наблюдаемых комбинаций символов. Это предполагает, что каждая последовательность имеет минимальную вероятность в любом языке, даже если ее не наблюдали.

С учетом сглаживания скорректированные вероятности приобретают вид:

\[P'(s|l) = \frac{c_l(s) + \alpha}{N_l + \alpha|S|},~P'(s|\neg l)=\frac{c_{\neg l}(s) + \alpha}{N_{\neg l} + \alpha|S|}\]

И конечный коэффициент правдоподобия, подлежащий максимизации, выглядит так:

\[LR_{s,l} = \frac{P'(s|l)}{P'(s|\neg l)} = \frac{(c_l(s) + \alpha)\cdot(N_{\neg l} + \alpha|S|)}{(N_l + \alpha|S|)\cdot(c_{\neg l}(s) + \alpha)}\]

Это обеспечивает стабильность расчетов и предотвращает доминирование редких эксклюзивных комбинаций.

Данные для анализа

Теперь, когда мы определили метрику для поиска наиболее характерных комбинаций символов (наших лингвистических «отпечатков»), пора собрать реальные данные по языкам для обработки.

Для этого применялась библиотека Python wordfreq, которая собирает списки частотностей слов для множества языков на основе обширных источников, включая Википедию, книги, субтитры и веб-тексты.

Особенно ценной для анализа оказалась функция top_n_list(), возвращающая отсортированный список n наиболее частотных слов в указанном языке. Например, чтобы получить 40 самых употребительных слов в исландском, вызывается:

wordfreq.top_n_list("is", 40, ascii_only=False)

Параметр ascii_only=False гарантирует сохранение не-ASCII символов — таких как исландские «ð» и «þ» — в результате. Это критично для исследования, поскольку мы фокусируемся на уникальных для языка комбинациях, включая отдельные буквы.

Для формирования набора данных были извлечены 5000 наиболее частотных слов для каждого из следующих 20 европейских языков:

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

В итоге получен обширный многоязычный словарь из 100 000 слов, достаточный для извлечения значимых статистических закономерностей между языками.

Для получения комбинаций символов, задействованных в анализе, из каждого слова в наборе генерировались все возможные подстроки длиной от 1 до 5 символов. Например, слово language включает последовательности вроде l, la, lan, lang, langu, a, an, ang и другие. Итог — полный набор S свыше 180 000 уникальных комбинаций символов, зафиксированных в 20 языках.

Результаты

Для каждого языка приведены пять наиболее характерных комбинаций символов, отсортированных по коэффициенту правдоподобия. Константа сглаживания выбрана равной α=0.5.

Поскольку исходные коэффициенты правдоподобия могут быть очень большими, вместо них указан десятичный логарифм (log10(LR)). Например, значение 3 означает, что комбинация в 103 = 1000 раз вероятнее в этом языке, чем в других. Благодаря сглаживанию эти коэффициенты приблизительны, а экстремальные значения somewhat приглушены.

Каждая ячейка содержит высокоранжированную комбинацию символов и ее логарифм коэффициента правдоподобия.

Язык#1#2#3#4#5
Каталанскийènc
3.03
ènci
3.01
cions
2.95
ència
2.92
atge
2.77
Чешскийě
4.14
ř
3.94

3.65
ů
3.59
ře
3.55
Датскийøj
2.82
æng
2.77
søg
2.73
skab
2.67
øge
2.67
Нидерландскийijk
3.51
lijk
3.45
elijk
3.29
ijke
3.04
voor
3.04
Английскийally
2.79
tly
2.64
ough
2.54
ying
2.54
cted
2.52
Финскийää
3.74
ään
3.33
tää
3.27
llä
3.13
ssä
3.13
Французскийêt
2.83
eux
2.78
rése
2.73
dép
2.68
prése
2.64
Немецкийeich
3.03
tlic
2.98
tlich
2.98
schl
2.98
ichen
2.90
Венгерскийő
3.80
ű
3.17
gye
3.16
szá
3.14
ész
3.09
Исландскийð
4.32

3.74

3.64
þ
3.63
ði
3.60
Итальянскийzione
3.41
azion
3.29
zion
3.07
aggi
2.90
zioni
2.87
Латвийскийā
4.50
ī
4.20
ē
4.10

3.66

3.64
Литовскийė
4.11
ų
4.03

3.58
į
3.57
ės
3.56
Норвежскийsjon
3.17
asj
2.93
øy
2.88
asjon
2.88
asjo
2.88
Польскийł
4.13
ś
3.79
ć
3.77
ż
3.69

3.59
Португальскийão
3.73
çã
3.53
ção
3.53
ação
3.32
açã
3.32
Румынскийă
4.31
ț
4.01
ți
3.86
ș
3.64

3.60
Испанскийción
3.51
acción
3.29
ión
3.14
sión
2.86
iento
2.85
Шведскийförs
2.89
ställ
2.72
stäl
2.72
ång
2.68
öra
2.68
Турецкийı
4.52
ş
4.10
ğ
3.83
ın
3.80

3.60

Обсуждение

Далее приведены некоторые любопытные выводы из результатов. Это не полное исследование, а лишь несколько замечаний, которые показались интересными:

  • Многие комбинации с наивысшими коэффициентами правдоподобия — это одиночные символы, уникальные для языка, например, исландские «ð» и «þ», румынские «ă», «ț» и «ș», турецкие «ı», «ş» и «ğ». Поскольку эти буквы практически не используются в других языках датасета, без сглаживания они бы дали бесконечные значения.
  • В ряде языков, особенно в нидерландском, ведущие комбинации часто являются подстроками друг друга. К примеру, топовая «ijk» входит в состав следующих: «lijk», «elijk» и «ijke». Это демонстрирует, как определенные сочетания букв повторяются в более длинных словах, усиливая их специфику для языка.
  • Английский обладает одними из наименее уникальных комбинаций среди проанализированных языков, с максимальным логарифмом 2.79. Вероятно, это связано с проникновением английских заимствований в топ-5000 слов других языков, что размывает уникальность английских паттернов.
  • Наблюдаются случаи, когда ведущие комбинации отражают общие грамматические конструкции в языках. Например, испанское «-ción», итальянское «-zione» и норвежское «-sjon» служат суффиксами номинализации, подобно английскому «-tion» — они превращают глаголы или прилагательные в существительные. Эти окончания выделяются в каждом языке и подчеркивают, как разные языки используют схожие модели с вариациями в написании.

Заключение

Проект возник из простого вопроса: что придает языку его визуальную идентичность? Проанализировав 5000 наиболее употребительных слов в 20 европейских языках и сравнив используемые в них комбинации символов, мы выявили уникальные «отпечатки» для каждого — от акцентированных букв вроде «ş» и «ø» до повторяющихся сочетаний типа «ijk» или «ción». Хотя результаты не претендуют на исчерпывающую точность, они предлагают увлекательный и статистически обоснованный взгляд на то, что отличает языки визуально, даже без понимания отдельных слов.

Источники

Библиотека Python wordfreq:

  • Robyn Speer. (2022). rspeer/wordfreq: v3.0 (v3.0.2). Zenodo.