Найти в Дзене
Мой лайфстайл блог

Как Google Переводчик определяет язык?

Знаете функцию "Определить язык" в Google Переводчике? Очень удобно, когда нужно понять неизвестный текст. Какие ваши идеи, как работает кнопка "Определить язык"? Можно подумать, что по алфавиту. Однако представьте, сколько языков используют одну и ту же латиницу. А сколько языков похожи на русский? Имейте в виду, что программе НЕ ТРЕБУЕТСЯ длинный текст (от 1000 символов). Ей достаточно предложения в 8-10 слов. Определяем язык короткого текста. Предположим, у нас есть фраза: При все че математиката е строга наука, тя има и естетическа страна. Очевидно, это написано на кириллице, но это не русский язык. Однако для компьютера все не так очевидно, поскольку он не владеет никакими языками. Упростим ему задачу и сократим круг до болгарского, украинского, белорусского и русского языков. Болгарский алфавит идентичен рускому, но не содержит букв Ё, Ы, Э. Пока подходит. В белорусском, помимо прочего, вместо буквы И используется I􏰂􏰂􏰂􏰂􏰂􏰂, его отбрасываем. Между русским и украинским

Знаете функцию "Определить язык" в Google Переводчике? Очень удобно, когда нужно понять неизвестный текст. Какие ваши идеи, как работает кнопка "Определить язык"?

Можно подумать, что по алфавиту. Однако представьте, сколько языков используют одну и ту же латиницу. А сколько языков похожи на русский?

Имейте в виду, что программе НЕ ТРЕБУЕТСЯ длинный текст (от 1000 символов). Ей достаточно предложения в 8-10 слов.

Определяем язык короткого текста.

Предположим, у нас есть фраза:

При все че математиката е строга наука, тя има и естетическа страна.

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

Болгарский алфавит идентичен рускому, но не содержит букв Ё, Ы, Э. Пока подходит. В белорусском, помимо прочего, вместо буквы И используется I􏰂􏰂􏰂􏰂􏰂􏰂, его отбрасываем. Между русским и украинским алфавитами есть большие различия, однако в данной фразе содержатся буквы из обоих языков. Пока оставляем его среди языков-кандидатов.

Что дальше? В задачах такого рода важнейшей характеристикой языка, его "паспортом", является частота встречаемости букв. Здесь важно иметь в виду, что в отдельных текстах частоты могут сильно отличаться, но если собрать огромный корпус текстов и вычислить по нему статистику, то данные +/- можно считать усредненными для языка.

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

Кстати, попробуйте угадать, какая буква самая популярная в русском языке?

-2

Наверняка, многие думали, что чаще всего встречается А. Вот и нет, на графике видно, что это буква О. Буква А занимает лишь третье место (а иногда и четвертое).

Но давайте рассмотрим график внимательнее. Во всех языках чаще всего встречается пробел, что логично. Следующими идут гласные А, О, Е, И (в украинском еще I). Однако разница в их последовательности. В русском языке в порядке убывания идут О, Е, И, А; в болгарском - А, И, Е, О, а в украинском: О, А, И. Буква Е здесь вообще выпадает из топ-4.

Примечательно еще, что Ъ в болгарском языке занимает приличное пространство, хотя в русском почти не встречается.

Мы можем просто перемножить вероятность каждой буквы из фразы, чтобы узнать вероятность встретить всю фразу целиком. Опуская расчеты, скажу, что вероятность появления такого набора букв в болгарском языке в 300 раз больше, чем в русском, и в 300000 раз больше, чем в украинском. Если приводить в процентах, то:

болгарский – 99,65%, русский – 0,3497%, украинский – 0,0003%.

Вот так по одной короткой фразе программа может определить язык, зная лишь общую статистику.

Нужно оговориться, что этот способ работает не для всех фраз, например, название книги на русском языке:

Математическая составляющая

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

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

--------------------------

В публикации использованы примеры из статьи "Статистика языка", А. Пиперски, опубликованной в журнале "Квант", № 11 за 2019 г.

Ваши комментарии и лайки помогут другим пользователям увидеть эту статью.

Анастасия