как узнать какой язык написан
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 = Ль.
Если Вы знакомы с украинским языком, то без труда прочтете почти любую надпись на словацком языке. Эти языки очень близки.
Определяем язык текста. Сложный случай
Система «Антиплагиат» работает с текстами на разных языках. Большинство работ, поступающих на проверку, написаны на русском, английском или казахском языках. Сейчас индекс «Антиплагиата» содержит документы более чем на 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. Во-вторых, эвристики определения языка слова по принадлежности к словарю и по символьным статистикам будут работать плохо при увеличении количества языков, допустимых для документа. Решение этих проблем нам еще предстоит. Если вы сталкивались с подобными задачами, то было бы интересно узнать о ваших идеях и подходах.
Как быстро и бесплатно узнать движок или конструктор сайта
Если вы серьёзно изучаете конкурентов или делаете ТЗ на сайт, полезно уметь определять CMS и другую начинку. Это не так сложно, нужно просто…
CMS — content management system, система управления контентом, или просто движок. Позволяет загружать информацию на сайт и настраивать его функции. Упрощает взаимодействие администратора с сайтом (для этого используется административная панель, или просто админка). Тем не менее требует навыков веб-разработки и обеспечения безопасности данных.
Конструктор — тоже платформа для создания сайтов, создания и редактирования контента, хранения данных. Разница в том, что она позволяет делать всё это вообще без знаний и опыта. Недостатки конструкторов по сравнению с CMS: меньше возможностей в плане функций и дизайна, высокая стоимость, отсутствие реального контроля (по сути вы арендуете сайт на конструкторе, а не владеете им).
Умение определять движок интернет-ресурса — а также установленные там плагины, скрипты, счётчики — пригодится не только веб-разработчикам. Интернет-маркетологу это тоже будет полезно: при анализе конкурентов, подготовке ТЗ на создание или редизайн сайта.
Ведь если нравится дизайн и функциональность какого-то действующего портала/лендинга/интернет-магазина, возможно, стоит использовать такую же систему для своего проекта. А также выбирать и подключать сторонние инструменты с учётом таковых у сайтов-конкурентов.
Узнать CMS и другое ПО на любом ресурсе можно вручную и с помощью специальных инструментов. Перечисляем самые эффективные способы.
Пишущий интернет-маркетолог, автор-фрилансер. Помогает развивать и продвигать блоги, делает контент для внешних площадок. Пишет об интернет-маркетинге, реже о финансах и бизнесе.
1. Определяем вручную
Копаемся в HTML-коде
Упоминания движка можно найти в метатеге generator, названиях плагинов, путях к важным файлам (внутри тега head), иногда в футере (подвале) сайта. Чтобы открыть исходный код, нужно кликнуть правой кнопкой мыши в любом месте страницы и нажать на «Просмотреть код» или использовать горячие клавиши Ctrl + U. Далее искать удобно уже с помощью Ctrl + F.
Ищем адрес админки
Определить движок можно также по адресу, ведущему к административной панели сайта (в народе — админка). У каждой CMS он свой. Чтобы найти админку сайта, нужно просто попробовать разные варианты.
Определение языка текста
Исходные данные: есть сотни тысяч небольших текстов, написанных на всех известных науке языках.
Цель: оставить только те из текстов, которые написаны на русском или английском языке, остальные отбросить.
Как делаю сейчас:
1. С помощью PCRE выкидываю из текста всё, кроме букв (\p<^L>).
2. Так же убираю русские и английские буквы ([а-яa-z]).
3. Если что-то осталось — считаю текст не русским и не английским, соответственно отбрасываю.
В текущем раскладе есть как false positive так и false negative ошибки, это расстраивает.
Первые: в немецком или французском, например, тексте, может по несчастливой случайности не быть ни одного умляута и он посчитается английским.
Вторые: в корректном русском или анлийском тексте может встретиться какое-нибудь, например, имя собственное с умляутом, либо цитата из других языков — текст будет ошибочно отброшен.
Вопрос: не говоря о стопроцентном распознавании языка (оставим это экспертным системам и прочему ИИ), есть ли возможность снизить число ошибок распознавания? Интересуют готовые библиотеки (PHP, perl) / публичные веб-сервисы либо алгоритм, который достаточно прост в имплементации.
1. Для небольших текстов 100% распознавание невозможно будет в принципе.
2. Для улучшения распознавания надо делать экспертную систему с базой слов и с частотами различных языков.
Но возможно получится воспользоваться Google переводчиком с помощью API или еще каким-нибудь.
Обзор определителей языков есть здесь. Может быть у некоторых есть API.
Можно сравнивать частотный характеристики текстов.
как видно — одни и те же буквы в разных языках используются с разной частотой — за счёт этого можно улучшить распознавание языка. И отделять, казалось бы неотделимые =) (при достаточном объёме текста, конечно же)
>> 1. С помощью PCRE выкидываю из текста всё, кроме букв (\p<^L>).
>> 2. Так же убираю русские и английские буквы ([а-яa-z]).
>> 3. Если что-то осталось — считаю текст не русским и не английским, соответственно отбрасываю.
^L>
В английском тексте могут быть заимствованные слова, сохранившие оригинальное написание café, Übermensch и т.д. Кроме того, текст на языке с латинским алфавитом может набираться без диакритики, если он набирается на компьютере, на котором установлена только английская раскладка.
Сделайте для каждого нужного языка список распространённых в нём служебных слов, местоимений и т.д., которые не используются в остальных языках и проверяйте их наличие в тексте.
Кроме того, можно добавлять вероятность, обнаружив типичные для данного языка сочетания букв (для немецкого sch, ei. ). Для определения украинского кроме наличия в тексте є, ї, і, ґ, отсутствия ы и ъ можно использовать поиск і в качестве союза.
Если языков немного, то несложно собрать данные об их особенностях.
Ещё можете поэксперементировать с Google Language API (пример).
Кроме того, можете погуглить «language identifier», может найдётся что-то готовое подходящее.
Как быстро определить язык, на котором написан текст?
Глобализация наступает. В любой момент вы можете столкнуться со строкой текста, написанном на иностранном языке, который вы не то что не знаете, но даже идентифицировать его будете не в состоянии.
Впрочем, сделать это, как правило, не сложно. Этот ответ услужливо дадут один-два символа, характерные только для данного языка, и ни для какого другого.
О языках, использующих кириллицу, мы в этой статье говорить не будем. Но у тех языков, которые пользуются латинской письменностью, для звуков, которые встречаются только в данном языке, используются уникальные символы или комбинации символов, которые помогут однозначно определить сам неизвестный язык.
Что это за символы?
Ã, ã: это почти наверняка португальский язык. Если, к тому же, язык этот похож на испанский, со 100%-й вероятностью португальский язык. Пример: São Paulo.
Ă, ă: A с «чашечкой» сверху встречается только в румынском языке и во вьетнамском. Но во вьетнамском короткие слова. Для подтверждения того, что перед вами румынский текст, поищите в нем символы Ţ / ţ и Ş / ş (T и S с запятой внизу).
Бухарест, Румыния
Фото: freestocks-photos, pixabay.com
Ģ, ģ; Ķ, ķ; Ļ, ļ; Ņ, ņ: латышский язык. Только в этом языке есть четыре согласные буквы с запятыми, расположенными снизу, и это не Ţ / ţ и Ş / ş, как в румынском. Кроме того, над гласными буквами в латышском языке для обозначения его длительности ставят линию: Ā /ā, Ī / ī, Ō / ō, Ū / ū. В другом балтийском языке, литовском, длительность звуков обозначают иначе.
Ő, ő; Ű, ű: «Ежики» над этими гласными буквами — верный признак венгерского языка. Кроме того, в тексте довольно часто встречается сочетание gy для обозначения звука ДЬ. Например, самоназвание Венгрии, Magyarország, Мадьярорсаг. Заметили еще одно часто встречаемое в венгерском языке сочетание — sz? Так венгры обозначают звук С. Довольно неожиданно! Еще один признак венгерского: почти все слова непонятны, и то и дело встречаются довольно длинные слова. Например, megszentségteleníthetetlenség — эта черта не может быть осквернена.
Ř, ř: этот звук, средний между Р и Ж, существует только в чешском языке. Другая отличительная буква, встречающаяся только в чешском языке — Ů / ů. Ну, и, наконец, если то и дело встречаются слова, похожие на русские — значит, 100% чешский.
Станция метро в Праге, Чехия
Фото: mh-grafik, pixabay.com
Другой славянский язык, польский, имеет уникальный звук, обозначаемый буквой Ł, ł: Łódź. Буква эта похожа на Л, но читается, как английская W — Уодзь. В польском языке слов, похожих на русские, еще больше, чем в чешском.
I, ı; İ, i: в турецком тексте вы встретите оба варианта буквы I, с точкой и без точки. Это два разных звука — Ы и И, соответственно. Столица Турции — İstanbul, Истанбул. Еще в турецком языке есть буква ğ. Она пишется, но не произносится. Например, Erdoğan — Эрдоан, а не Эрдоган.
Уличный плакат в Рейкьявике, Исландия
Фото: DCCom, pixabay.com
Есть еще два скандинавских языка — исландский и фарерский. Оба используют буквы Ð, ð; Þ, þ для обозначения звука, который в современном английском обозначается сочетанием 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» — «мотоциклетная авария». Сдвоенные гласные в этих языках — обычное дело.
Уличный указатель в Таллине, Эстония
Фото: camux, pixabay.com
Как отличить текст на эстонском языке от финского текста? В эстонском языке есть слова, оканчивающиеся на b или g, а также символ õ. Ну, и конечно, если вам повезло, можно обнаружить самоназвания: у финнов Suomi, у эстонцев — Eesti.
В албанском языке используются буквы c и q, а также сочетание xh. В тексте на албанском языке можно встретить букву ë (например столица Албании Тирана пишется Tiranë). Албанский язык абсолютно не похож ни на один европейский. Самоназвание страны — Shqipëria.
Хорватский язык похож на русский еще сильнее, чем чешский и польский. В нем есть буква Đ / đ для обозначения звука «дж». Для смягчения звуков Л и Н используется буква j: Nj = Нь, Lj = Ль.
Если вы знакомы с украинским языком, то без труда прочтете почти любую надпись на словацком языке. Эти языки очень близки.
Вообще задача определения современного языка по небольшому отрывку текста на этом языке разрешима всегда. У каждого языка есть характерные признаки, которые позволяют это сделать. Эти особенности проанализированы в замечательном справочнике и «Определитель языков мира по письменностям» для большого числа языков. Книга эта очень полезная, хотя последнее ее издание вышло в 1965 году, поэтому кое в чем она устарела.
То, что можно свести в таблицу и классифицировать, можно и запрограммировать. Программу по автоматическому определению языка называют иногда guesser. Такая программа позволяет по введенным нескольким словам текста определить язык, на котором этот текст написан. Естественно, чем больше слов, тем точнее будет определение. Список таких программ можно найти в Интернете. Кроме того, с задачей определения языка, с которого осуществляется перевод иностранных слов, очень часто справляется и переводчик Google.