Когда в 2011 году мы запустили Яндекс.Переводчик, он знал три языка: русский, украинский и английский. Сейчас Переводчик — настоящий полиглот. Он владеет 90 языками и может переводить, например, с русского на язык папьяменто, на котором говорят жители островов в южной части Карибского моря. Освоить редкий язык — сложная задача для системы машинного перевода: в интернете мало текстов, которые можно использовать для обучения. Наш Переводчик научился компенсировать нехватку материала: изучая новый язык, он применяет знания о других языках, которые уже есть в его распоряжении.
По библейскому преданию, проблема языкового барьера ведёт начало от Вавилонской башни. Так или иначе, человечество давно пытается изобрести универсальное средство коммуникации, которое позволило бы представителям разных народов свободно общаться, не тратя годы на изучение чужого языка.
Преодолеть барьер пытались разными способами. Один из них — создание несложных в освоении искусственных языков: именно так появились эсперанто и интерлингва. Они стали важной вехой развития лингвистической мысли, но в обиход не вошли — их используют для общения лишь энтузиасты.
Другая идея состояла в том, что надо упростить сам процесс перевода. Сперва это пытались сделать с помощью механических приспособлений, но настоящий потенциал машинных переводчиков стал очевиден только после изобретения ЭВМ. Да и то не сразу — сначала компьютеры умели переводить лишь отдельные слова и фразы в одной языковой паре. Предложения и целые тексты поддались им лишь ближе к 1990-м годам. Первый полнотекстовый перевод был весьма неуклюж — перлы вроде «гуртовщиков мыши» навсегда вошли в интернет-фольклор, но с годами он становится всё лучше. Конечно, машины по-прежнему не могут тягаться с людьми, но в целом онлайн-переводчики вполне можно считать тем самым универсальным средством коммуникации, о котором веками мечтали люди.
Статистика против правил
У машинного перевода есть две основные разновидности: перевод на основе правил и перевод на основе статистических моделей. В первом случае машина учится переводить примерно так же, как это делает человек, — с помощью двуязычных словарей и сводов грамматических норм. Во втором случае используется математическая модель с набором параметров — чтобы извлечь их, нужно проанализировать корпус текстов на двух языках. В отличие от перевода на основе правил, статистический перевод не требует кропотливой ручной работы лингвистов. Одна и та же модель может применяться для перевода на множество языков — достаточно лишь подобрать параметры. Кроме того, система быстрее подстраивается под изменения в языке. Наш Переводчик — статистический.
Первые статистические модели были достаточно простыми. Они не учитывали синтаксис и морфологию языка: например, не понимали, что «мама», «маме» и «мамой» — это разные формы одного и того же слова. Со временем на смену простым моделям пришли комплексные. Они состоят из нескольких вспомогательных моделей: одна отвечает за лексику, вторая — за морфологию, третья — за синтаксис. Параметры каждой модели подбираются путём анализа корпуса текстов. Сейчас в Яндекс.Переводчике используются комплексные модели.
Тексты и где их взять
Одна из главных задач в статистическом машинном переводе — подготовить корпус текстов, из которого извлекаются параметры модели. Корпус должен включать тексты на обоих языках, причём весомая часть из них должны быть параллельными — то есть иметь одинаковое содержание. Параллельными текстами можно считать, например, книгу на английском и её перевод на русский. Ещё один хороший источник данных для корпуса — сайты международных компаний, у которых есть версии на разных языках.
Чем больше текстов самых разных тематик удастся включить в корпус, тем выше будет качество перевода. Если язык достаточно распространён, подобрать материал не проблема. Большинство статистических машинных переводчиков на старте поддерживали только самые популярные языки — скажем, английский, русский или испанский, — не только потому, что они наиболее востребованы у пользователей, но и из-за того, что на этих языках много текстов. Редкие и экзотические языки системы автоматического перевода долгое время обходили вниманием.
Конструктор переводов
На наш взгляд, языки, которые нельзя назвать распространёнными — допустим, на них говорят не миллионы, а всего лишь десятки тысяч людей, — тоже заслуживают право на машинный перевод. Во-первых, если регион, где говорят на таком языке, является туристической зоной, иностранные гости с помощью автоматических переводчиков смогут объясняться с местными и читать вывески и объявления. Во-вторых, машинный перевод, как ни странно, способствует сохранению и развитию языка. Хороший пример — Википедия, в которой насчитывается более 270 языковых разделов. Носитель папьяменто может взять статью из крупного раздела — например, английского, — перевести её на свой язык в Яндекс.Переводчике и затем отредактировать результат. Так раздел будет пополняться гораздо быстрее.
Чтобы Переводчик мог освоить языки, для которых нет крупного корпуса текстов, мы научили его учитывать родственные связи между языками. Родство может быть разным — так, в идише большая часть лексики пересекается с немецкой, а в папьяменто много заимствований из испанского и португальского. В татарском и башкирском языках схожие синтаксис и морфология. Комплексная статистическая модель, где за лексику, синтаксис и морфологию отвечают отдельные вспомогательные модели, позволяет компенсировать нехватку текстов в корпусе с помощью данных из родственного языка, уже известного Переводчику.
Процесс изучения Переводчиком редкого языка проходит в два этапа. Сначала моделируется ядро языка — в него входят самые частотные слова и основные морфологические и синтаксические признаки. Для построения ядра достаточно совсем маленького корпуса текстов. Например, это могут быть тексты Библии и Корана — эти книги переведены практически на все существующие языки. Затем ядро обогащают данными из уже известных Переводчику родственных языков. Так, если у двух языков схожая лексика, это будут данные вспомогательной лексической модели, а если у них одинаковые правила словоизменения — то морфологической.
Таким способом — мы назвали его «конструктор» — Переводчик за последние полтора года выучил восемь новых языков: башкирский, горномарийский, идиш, маратхи, непальский, папьяменто, узбекский и синдарин. Последний язык — вымышленный: на нём разговаривают эльфы в романах Дж. Р. Р. Толкина. Текстов на синдарине очень мало, зато известно, что Толкин создал его во многом на основе древнекельтских языков. Поэтому, чтобы восполнить пробелы в примерах, мы применили вспомогательные лексические модели из современных кельтских языков: ирландского, гэльского и валлийского языков.
Ссылки
Как Яндекс научил машину самостоятельно создавать переводы для редких языков — дополнительные подробности на «Хабрахабре».
Яндекс.Переводчик — переведёт слово, словосочетание, предложение, текст или целый сайт с русского на папьяменто и ещё на 89 языков. И обратно тоже.
Машинный перевод — как устроен статистический машинный переводчик Яндекса в целом.