Как узнать какой язык

Просто и качественно определяем язык сообщений

Как узнать какой язык. Смотреть фото Как узнать какой язык. Смотреть картинку Как узнать какой язык. Картинка про Как узнать какой язык. Фото Как узнать какой язык

У нас в компании YouScan в день обрабатывается около 100 млн. сообщений, на которых применяется много правил и разных смарт-функций. Для корректной их работы нужно правильно определить язык, потому что не все функции можно сделать агностическими относительно языка. В данной статье мы коротко расскажем про наше исследование данной задачи и покажем оценку качества на датасете из соц. сетей.

План статьи

1. Проблемы определения языка

Определение языка достаточно старая проблема и многие ее пытаются решать в рамках мультиязычности своих продуктов. Более старые подходы используют решения основанные на н-граммах, когда считается к-во вхождений определенной н-граммы и на основе этого рассчитывается «скор» для каждого языка, после чего выбирается наиболее вероятный язык по нашей модели. Главный недостаток данных моделей в том, что абсолютно не учитывается контекст, поэтому определение языка для схожих языковых групп затрудняется. Но из-за простоты моделей мы получаем в итоге высокую скорость определения, что позволяет экономить ресурсы для высоконагруженных систем. Другой вариант, более современный, – решение на рекуррентных нейронных сетях. Данное решение уже строится не только на н-граммах, а и учитывает контекст, что должно дать прирост в качестве работы.

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

2. Доступные публичные решения

Compact Language Detector 2

CLD2 – это вероятностная модель на основе машинного обучения (Наивный Баессовский классификатор), которая может определять 83 различных языка для текста в формате UTF-8 или html/xml. Для смешанных языков модель возвращает топ-3 языка, где вероятность расчитывается как приблизительный процент текста от общего числа байт. Если модель не уверена в своем ответе, то возвращает тег «unc».

Точность и полнота данной модели на достаточно хорошем уровне, но главное преимущество – это скорость. Создатели заявляют про 30кб в 1ms, на наших тестах питоновской обертки мы получили от 21 до 26кб в 1ms (70000-85000 сообщений в секунду, средний размер которых 0.8кб, а медиана – 0.3кб).

Данное решение очень простое в использовании. Для начала нужно установить его питоновскую обертку или воспользоваться нашим докером.

Чтобы сделать прогноз, достаточно просто импортировать библиотеку pycld2 и написать одну дополнительную строчку кода:

Ответ детектора – это tuple из трех элементов:

FastText

FastText – это библиотека написанная фейсбуком для эффективного обучения и классификации текстов. В рамках данного проекта фейсбук ресерч представил эмбеддинги для 157 языков, которые показывают state-of-the-art результаты на разных задачах, а также модель для определения языка и другие супервайзд задачи.

Для модели определения языка они использовали данные Wikipedia, Tatoeba and SETimes, а в качестве классификатора – свое решение на фасттексте.

Разработчики фейсбук ресерч предоставляют две модели:

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

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

Модель FastText’a позволяет предсказывать вероятность для n-языков, где по дефолту n=1, но в этом примере мы вывели результат для топ-3 языков. Для этой модели это уже общая вероятность предсказания языка для текста, а не к-во символов, которые пренадлежат определенному языку, как было в модели cld2. Скорость работы тоже достаточно высокая – больше 60000 сообщений в секунду.

3. Оценка качества

Оценивать качество работы алгоритмов будем на данных из соц.сетей за случайное время, взятых из системы YouScan (приблизительно 500 тысяч упоминаний), поэтому в выборке будет больше русского и английского языков, 43% и 32% соответственно, украинского, испанского и португальского – около 2% каждого, из остальных языков меньше 1%. За правильный таргет мы будем брать разметку через google translate, так как на данный момент гугл очень хорошо справляется не только с переводом, а и с определением языка текстов. Конечно, его разметка неидеальна, но в большинстве случаев ей можно доверять.

Метриками для оценки качества определения языка будут точность, полнота и f1. Давайте их посчитаем и выведем в таблице:

modelcld2ftans
metricsprecrecf1precrecf1precrecf1
ar0.9920.7250.8380.9180.6970.7930.9680.7880.869
az0.950.7520.8390.8880.5470.6770.9140.7870.845
bg0.5290.1360.2170.2860.1780.2190.4080.2140.281
en0.9490.8440.8940.8850.8690.8770.9120.9250.918
es0.9870.6530.7860.7090.8140.7580.8280.8340.831
fr0.9910.7130.8290.530.8030.6380.7130.810.758
id0.7630.5430.6340.4810.4040.4390.6590.6030.63
it0.9750.4660.6310.5190.7780.6220.6660.7520.706
ja0.9940.8990.9440.6020.8420.7020.8470.9050.875
ka0.9620.9950.9790.9590.9050.9310.9580.9950.976
kk0.9080.6530.7590.8040.5840.6770.8310.7130.767
ko0.9840.8860.9330.940.7040.8050.9660.910.937
ms0.8010.5780.6720.3690.1010.1590.730.5860.65
pt0.9680.7530.8470.8050.7710.7880.8670.8640.865
ru0.9870.8090.8890.9360.9330.9350.9530.9480.95
sr0.0930.1140.1030.1740.1030.130.1060.160.128
th0.9890.9860.9870.9730.9270.950.9790.9860.983
tr0.9610.6390.7680.6070.730.6630.7690.7640.767
uk0.9490.6710.7860.6150.7330.6690.7740.7770.775
uz0.6660.5120.5790.770.1690.2780.6550.5410.592

По результатам хорошо видно, что у подхода cld2 очень высокая точность определения языка, только для непопулярных языков она падает ниже 90%, и в 90% случаев результат лучше, чем у fasttext’a. При примерно одинаковой полноте для двух подходов, f1 скор больше у cld2.
Особенность cld2 модели в том, что она выдает прогноз только для тех сообщений, где она достаточно уверена, это объясняет высокую точность. Модель fasttext’a выдает ответ для большинства сообщений, поэтому точность существенно ниже, но странно, что полнота не существенно выше, а в половине случаев – ниже. Но если «подкрутить» порог для модели fasttext’a, то можно улучшить точность.

4. Выводы

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

Весь код для воспроизведения экспериментов и тестирований вышеприведенных подходов вы можете найти в нашем репозитории.

Также можете посмотреть тестирование этих решений в другой статье, где сравнивается точность и скорость на 6 западноевропейских языках.

Источник

Определяем язык текста. Сложный случай

Как узнать какой язык. Смотреть фото Как узнать какой язык. Смотреть картинку Как узнать какой язык. Картинка про Как узнать какой язык. Фото Как узнать какой язык

Система «Антиплагиат» работает с текстами на разных языках. Большинство работ, поступающих на проверку, написаны на русском, английском или казахском языках. Сейчас индекс «Антиплагиата» содержит документы более чем на 50 языках.

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

Знать язык нужно для следующих операций:

Языки текста нам нужно знать не в общем, а в точности до слова. Важной особенностью является еще и то, что не все пользователи хотят качественной обработки своих трудов и нередко бывает, что их тексты «сопротивляются». Про разные способы технических изменений текста и методы борьбы с ними подробно написано здесь. Именно разного рода технические изменения текста и не позволяют нам использовать готовые решения без доработок, и самое неприятное из таких изменений – замена символов на похожие по написанию.

Существующие решения

Сходу изобретать велосипед не стали, а сравнили несколько схожих библиотек распознавания языков NTextCat / CLD3 /CLD2. И остановили свой выбор на CLD2 по нескольким весомым для нас причинам:

Вполне ожидаемо, что все наши проблемы и задачи ни один из этих пакетов не решает, доработки все же понадобятся.

Текст сопротивляется

Тексты, для которых нужно определить язык, в основном милые и пушистые большие и грамотно написанные. Определители языков такие любят. И все же некоторые из них содержат детали, затрудняющие точное определение языков:

Результат определения языков текста CLD2 в зависимости от количества омоглифов в тексте

Как узнать какой язык. Смотреть фото Как узнать какой язык. Смотреть картинку Как узнать какой язык. Картинка про Как узнать какой язык. Фото Как узнать какой язык

По вертикали отложена доля текста, по горизонтали – отношение количества омоглифов к количеству слов в тексте. Если в тексте присутствует один замененный символ на два слова, доля текста, на которой язык определился верно, начинает резко падать. При трех омоглифах на два слова почти на всем тексте язык не определен. Правда, есть и хорошая новость: для русского, английского и казахского языков случаи неверного определения языка крайне редки.

Для решения этой и других проблем, с которыми не справляется CLD2, мы разработали эвристический алгоритм. Это алгоритм использует многократный запуск CLD2, определение языка слов с помощью словарей и статистические методы.

Общая схема

Вход: текст и список языков (этот список может быть пуст).

Шаг 1: Определяем языки текста с помощью CLD2.

Шаг 2: Если качество определения языков устраивает, то переходим на шаг 4.

Шаг 3: Процедура множественного запуска CLD2.

Шаг 4: Доопределение языков с помощью эвристик.

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

Оцениваем, что же вышло (шаг 2)

Результат первого шага оцениваем, исходя из покрытия текста найденными языковыми блоками. Стоит выкинуть из учета блоки длиной в 1-2 символа (CLD2 некоторые языки определяет по принадлежности символа к алфавиту). На данном шаге хочется понять, можно ли улучшить результат в общем. В случае, когда язык определился коротенькими фрагментами или доля текста, где язык не определен, велика, скорее всего, с текстом что-то не так и нужно пробовать исправить текст для улучшения результата работы CLD2.

Если долго мучиться… (шаг 3)

Шаг 3.0: Формируем список возможных языков из тех, что определили на первом шаге, и тех, что получили на вход.

Цикл по списку языков:

Шаг 3.2: Формируем языковые фрагменты из всех полученных результатов, включая самый первый. Если для некоторого фрагмента текста ровно в одной из итераций определился язык, то этот язык фиксируем, иначе считаем, что для этого фрагмента язык не определен.

Шаг 3.3: Для каждого фрагмента с зафиксированным языком заменяем омоглифы в соответствии с его языком. Еще раз отдаем текст CLD2 и полученный результат считаем текущим.

Как узнать какой язык. Смотреть фото Как узнать какой язык. Смотреть картинку Как узнать какой язык. Картинка про Как узнать какой язык. Фото Как узнать какой язык

С точностью до слова (шаг 4)

Итак, к этому шагу уже имеются языковые фрагменты текста, которые получены либо на первом, либо на третьем шаге. Фрагменты различных языков могут пересекаться. Таким образом мы имеем не разбиение, а покрытие текста языковыми блоками, для каждого из которых выполнено что-то одно:

Дальше нам понадобится разбивать текст на токены (аналоги слов языка). Разбивать на токены можно по-разному. В общем случае это зависит от языка текста. В тех языках, с которыми мы сейчас работаем, слова разделяются пробелами и переносами строк. Для определения языка слова на этом этапе мы разделяем на токены не только по пробелам и переходам на новую строку, но и при смене буквенных символов на небуквенные и наоборот. Пример: «Самолет «Су-27».» Получим 4 токена: «Самолет», «»», «СУ», «-27″.».

Поиск единичных вставок для блоков первого типа

Там, где язык определится и система с ним знакома, для нас остается опасность единичных вставок слов языка, отличного от языка фрагмента. Чаще всего это слова на английском языке. Для того, чтобы найти такие «затерявшиеся» слова, разобьем текст на токены и проанализируем каждый в отдельности. Коротенькие токены, длиной 1-2 символа, пропускаем. Анализируем токен посимвольно. Если все символы содержатся в алфавите языка фрагмента, то для него ничего не делаем. Если токен целиком состоит из символов другого алфавита, то добавляем фрагмент языка, соответствующего этому токену. На самом деле все очень просто — видим, что у слова в русском фрагменте не все буквы русские, а все казахские, значит, у этого слова будет два возможных языка: русский и казахский.

Второй случай нам неинтересен, и мы ничего с такими фрагментами текста больше не делаем.

Доопределение языка токенов для блоков третьего типа

Теперь хотелось бы понять, как быть с той частью текста, для которой язык не определился. Эту часть мы также разбиваем на токены и для каждого пытаемся определить язык. Поиск подходящего языка ведем только среди тех языков, что в тексте уже нашлись, и тех, что передал пользователь.

Сначала мы пытаемся найти слово в словаре какого-то языка. Прежде всего заменяем омоглифы и приводим слово к нормальной форме, в предположении конкретного языка из списка возможных, потом проверяем, входит ли оно в словарь этого языка. Слово входит в словарь — добавляем фрагмент, соответствующий этому слову. Здесь также может получиться несколько языков для одного слова. Для коротких слов (менее 4 символов) много ложных срабатываний, особенно в родственных языках, поэтому такие слова пропускаем.

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

Пример текста с большим количеством омоглифов

В этом небольшом кусочке чуть больше одного омоглифа на слово. Вот какой результат показал CLD2:

Как узнать какой язык. Смотреть фото Как узнать какой язык. Смотреть картинку Как узнать какой язык. Картинка про Как узнать какой язык. Фото Как узнать какой язык

Голубым отмечены слова, для которых определился казахский язык. Фиолетовым — английский. Розовым — русский, правда, пока он не нашелся.

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

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

Как узнать какой язык. Смотреть фото Как узнать какой язык. Смотреть картинку Как узнать какой язык. Картинка про Как узнать какой язык. Фото Как узнать какой язык

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

Как узнать какой язык. Смотреть фото Как узнать какой язык. Смотреть картинку Как узнать какой язык. Картинка про Как узнать какой язык. Фото Как узнать какой язык

После этого понятно, что с «Кун» по «барады» определили символы казахского языка, с «Том» — «деревянную» – русского, с «Jim» — «him» – английского, а у слова «кадушку» язык не определен, потому что оно попало и в русский, и английский фрагменты. Перед последним запуском CLD2 заменяем омоглифы в тех фрагментах, для которых определили язык.

Как узнать какой язык. Смотреть фото Как узнать какой язык. Смотреть картинку Как узнать какой язык. Картинка про Как узнать какой язык. Фото Как узнать какой язык

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

Пример определения языка в тексте с часто чередующимися словами разных языков

В этом примере CLD2 почти ничего не нашел, а многократный запуск результат не улучшил. Определение языка слов по принадлежности к словарю дало хороший результат. Язык оставшиеся слов определили с помощью статистического метода. Розовым отмечен русский язык, фиолетовым — английский.

Как узнать какой язык. Смотреть фото Как узнать какой язык. Смотреть картинку Как узнать какой язык. Картинка про Как узнать какой язык. Фото Как узнать какой язык

Что же в результате?

Конечно, хотелось понять, имеет ли смысл городить весь этот огород. Мы добросовестно нагенерили тестовые примеры из кусочков реальных текстов с разнообразными параметрами: длина текста, длины языковых фрагментов, частота вставки слов языков отличных от языка фрагмента, частота чередования языков, доля омоглифов. Для этих примеров нам была известна языковая разметка (сами же нагенерили!). В эксперименте мы ориентировались на языки большинства документов, присылаемых на проверку в системе «Антиплагиат»: русский, английский и казахский. Из полученных результатов мы выделили параметры, которые больше всего влияют на качество определения языка, и уже на них отлаживали фазы алгоритма. Наиболее значительные отклонения в качестве получаются при изменении количества омоглифов в тексте и при очень частом чередовании языков (длина языковых фрагментов не превышает пяти слов). Нам было важно понять, насколько устойчив статистически тот результат, что мы видим на отдельных примерах. На графике показана доля слов, для которых язык определился верно.

Как узнать какой язык. Смотреть фото Как узнать какой язык. Смотреть картинку Как узнать какой язык. Картинка про Как узнать какой язык. Фото Как узнать какой язык

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

На данный момент нас устраивает качество результата, но с увеличением количества языков проблемы неизбежны. Во-первых, CLD2 игнорирует переданные в него языки, если их более 5. Во-вторых, эвристики определения языка слова по принадлежности к словарю и по символьным статистикам будут работать плохо при увеличении количества языков, допустимых для документа. Решение этих проблем нам еще предстоит. Если вы сталкивались с подобными задачами, то было бы интересно узнать о ваших идеях и подходах.

Источник

Как узнать какой язык. Смотреть фото Как узнать какой язык. Смотреть картинку Как узнать какой язык. Картинка про Как узнать какой язык. Фото Как узнать какой языкeponim2008

Жизнь замечательных имен

Короткие истории о вещах и о людях, давших им свое имя

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

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

Впрочем, сделать это, как правило, не сложно. Этот ответ услужливо дадут один-два символа, характерные только для данного языка, и ни для какого другого.

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

Что это за символы?

Как узнать какой язык. Смотреть фото Как узнать какой язык. Смотреть картинку Как узнать какой язык. Картинка про Как узнать какой язык. Фото Как узнать какой языкÃ, ã: это почти наверняка португальский язык. Если, к тому же, язык этот похож на испанский, со 100%-ной вероятностью португальский язык. Пример: São Paulo

Ă, ă: A с «чашечкой» сверху встречается только в румынском языке и во вьетнамском. Но во вьетнамском короткие слова. Для подтверждения того, что перед Вами румынский текст, поищите в нем символы Ţ / ţ и Ş / ş (T и S с запятой внизу).

Ģ, ģ; Ķ, ķ; Ļ, ļ; Ņ, ņ: латышский язык. Только в этом языке есть четыре согласные буквы с запятыми, расположенными снизу, и это не Ţ / ţ и Ş / ş, как в румынском. Кроме того, над гласными буквами в латышском языке для обозначения его длительности ставят линию: Ā /ā, Ī / ī, Ō / ō, Ū / ū. В другом балтийском языке, литовском, длительность звуков обозначают иначе.

Ő, ő; Ű, ű: «Ежики» над этими гласными буквами – верный признак венгерского языка. Кроме того, в тексте довольно часто встречается сочетание gy ризнак венгерского – почти все слова непонятны, и то и дело встречаются довольно длинные слова. Например, megszentségteleníthetetlenség – эта черта не может быть осквернена.

Ř, ř: Этот звук, средний между Р и Ж, существует только в чешском языке. Другая отличительная буква, встречающаяся только в чешском языке Ů / ů. Ну, и наконец, если то и дело встречаются слова, похожие на русские, значит 100% чешский.

Другой славянский язык, польский, имеет уникальный звук, обозначаемый буквой Ł, ł: Łódź. Буква эта похожа на Л, но читается, как английская W, Уодзь. В польском языке слов, похожих на русские еще больше, чем в чешском.

I, ı; İ, i: В турецком тексте Вы встретите оба варианта буквы I, с точкой и без точки. Это два разных звука, Ы и И. Столица Турции – İstanbul, Истанбул. Еще в турецком языке есть буква ğ. Эта буква пишется, но не произносится. Например, Erdoğan – Эрдоан, а не Эрдоган.

Å, å: Те, кто изучал физику, узнают эту букву. Так обозначается единица длины «ангстрём». Эта буква есть во всех скандинавских языках: норвежском, датском и шведском. Как различить эту веселую троицу? Если Вы найдете в тексте еще ø и æ – это норвежский или датский. Если отыщете ö и ä – это шведский язык. Как отличить датский от норвежского? Ищите в тексте сдвоенную букву а: aa (как в фамилии известного датского философа Кьеркегора (Kierkegaard). У норвежцев нет такого звука и такого обозначения этого звука.

Есть еще два скандинавских языка, исландский и фарерский. Оба используют буквы Ð, ð; Þ, þ для обозначения звука, который в современном английском обозначается сочетанием th. Фарерский язык – достаточно редкий, так что указанные буквы почти наверняка – признак исландского. Но если хотите точности определения – в фарерском встречается буква ø, в исландском вместо нее используют ö (jökull, «ледник»).

Язык состоит из коротких слов и почти над каждой гласной есть акцент или «чубчик»? Это вьетнамский язык. Пример из Википедии:

Hà Nội là thủ đô của nước Cộng hoà Xã hội chủ nghĩa Việt Nam và cũng là kinh đô của rất nhiều vương triều Việt cổ.

Ханой является столицей Социалистической Республики Вьетнам, а также является столицей многих древних вьетнамских династий.

Ñ, ñ а также перевернутые вопросительный и восклицательный знаки (¡No pasaran!) присутствуют только в испанских текстах. Если слова в тексте вроде бы испанские (или французские), но часто встречаются буквы X / x – это каталанский язык. Эту редчайшую в испанском букву каталонцы используют для обозначения звука Ш.

Как узнать какой язык. Смотреть фото Как узнать какой язык. Смотреть картинку Как узнать какой язык. Картинка про Как узнать какой язык. Фото Как узнать какой языкВ немецком языке используются гласные буквы с умлаутами Ä / ä, Ö / ö и Ü / ü. Кроме того, в немецком тексте довольно часто встречаются длинные слова, а также артикли der, die и das. В голландском языке встречаются сдвоенные гласные буквы (их используют для обозначения длинных звуков) и «сладкая парочка» ij (читается, как «ай»)

Кельтские языки (ирландский, шотландский гэльский и валлийский) характеризуются длинными словами. В ирландском и шотландском в тексте часто встречаются двухбуквенные сочетания согласных: bh, ch, dh, fh, gh, mh, ph, sh и th. Только ирландцы и шотландцы знают, как эти сочетания произносятся. Акцентированные гласные используются в обоих языках, но только в шотландском есть акценты, направленные в левую сторону, как, например, à в Gàidhlig.

Валлийский язык сильно отличается от других кельтских «братьев». В нем много сдвоенных букв ll и ff, а буква w является гласной (например, cwm).

Унгро-финские «братья», финский и эстонский. В текстах на этих языках трудно распознать даже «международные» слова. В финском языке могут встретиться очень длинные слова, например «moottoripyöräonnettomuus», «мотоциклетная авария». Сдвоенные гласные в этих языках – обычное дело.

Как отличить текст на эстонском языке от финского текста? В эстонском языке есть слова, оканчивающиеся на b или g, а также символ õ. Ну, и конечно, если Вам повезло, можно обнаружить самоназвания: у финнов Suomi, у эстонцев – Eesti.

В албанском языке используются буквы c и q, а также сочетание xh. В тексте на албанском языке можно встретить букву ë (например столица Албании Тирана пишется Tiranë). Албанский язык абсолютно не похож ни на один европейский. Самоназвание страны – Shqipëria.

Хорватский язык похож на русский еще сильнее, чем чешский и польский. В нем есть буква Đ / đ для обозначения звука «дж». Для смягчения звуков Л и Н используется буква j: Nj = Нь, Lj = Ль.

Если Вы знакомы с украинским языком, то без труда прочтете почти любую надпись на словацком языке. Эти языки очень близки.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *