company_banner

Машинный перевод и автоматический словарь в Яндексе

    Каждый большой продукт включает в себя много сложных и интересных технологий, над созданием которых работали люди, зачастую посвятившие им целую жизнь. И в браузере Yandex реализованы многие разработки наших коллег, которые могут остаться не замеченными неспециалистами и казаться незначимыми деталями. Например, одной из облачных технологий Яндекса, которые интегрированы в Браузер, стал наш собственный переводчик.

    Сам Яндекс.Перевод вышел из беты несколько месяцев назад. От других немногочисленных подобных сервисов его отличает автословарь, уникальная технология которого разработана командой лингвистов и программистов Яндекса. Во время его разработки удалось объединить современные статистические подходы машинного перевода и традиционные лингвистические инструменты.



    Чтобы понять, насколько значимым шагом в развитии машинного перевода является появление автословаря, стоит вспомнить, что 20 лет назад были распространены синтаксические переводчики, для которых таблицы соответствия фраз на разных языках составляли вручную. Процесс их создания стал меняться только в конце 1990-х, когда появились первые статистические переводчики. Для обучения их моделям переводов стали использовать параллельные тексты. Документы, в которых одно и то же написано на разных языках, извлекали, например, из дипломатической документации. Большой базой параллельных текстов стали документы ООН. Но на подобной лексике создать общелексический переводчик не получилось, потому что даже неформальные тексты он переводил сухим дипломатическим языком.

    Решением проблемы обучения универсальной модели перевода стало использование параллельных документов, извлечённых из индексов поисковых машин. И это не только мультиязычные сайты, которые изначально были созданы на нескольких языках. К примеру, в интернете появился документ с текстом о каком-то событии. Для него создаётся своеобразный «паспорт» с характерными (контрастными) словами, который потом сравнивается с паспортами других документов, и при их совпадении делается вывод, что это текст об одном и том же, но на разных языках. Этот процесс требует значительных вычислительных ресурсов, потому что приходится обрабатывать миллиарды веб-документов.

    Естественно, не все предложения в таких текстах будут последовательными переводами друг друга. Чтобы составить таблицы соответствия слов и фраз со всеми возможными переводами, нужно сделать специальное выравнивание и выкинуть те, которые случайно туда попали. В итоге получается, что, например, каждому русскому слову соответствует 20–30 английских.

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



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

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

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

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

    В результате пользователю Яндекс.Перевода не нужно дополнительно смотреть статьи из обычных словарей, чтобы подобрать более точный перевод. Автословарь покажет ему автоматически сформированную статью, в которой даже будут примеры употребления слова. К тому же, основанный на статистике словоупотребления в интернете, автоматический словарь быстрее обновляется. Благодаря всему этому, переводы, выполненные с помощью машинного переводчика Яндекса, будут гораздо качественнее.
    Яндекс
    Как мы делаем Яндекс

    Comments 30

      +4
      Было бы классно добавить языки СНГ, например казахский и белорусский.
      В целом, качество перевода мне нравится. Понятно что машинный, но думаю текст править будет легче.
        +1
        Всё хорошо. Понравился autocomplete.
        А можно переход на новую строку не Shift+Enter, а Ctrl+Enter? Так как-то привычнее.
        Ещё прошу добавить написание транслитом (латиницей) и добавить другие иностранные языки (японский, например).
          +2
          Всегда пользовался ctrl+enter для отправки сообщений, а shift+enter или где возможно просто enter для перехода на новую строку, поэтому не могу сказать, что согласен с вашей просьбой. Как вариант можно предложить сделать в настройках переключатель
            +1
            Переключатель было бы хорошо, да.
          +1
          А есть способы перевода акромя статистического и синтаксического? Мне всегда казалось, что для качественного перевода надо сначало понять о чём речь, а потом написать с 0 но сохранив смысл и передав отенки.
          Если бы я сейчас занялся этой задачей то скорее делал что то типо «базы знаний» и промежуточного формализованого языка.
          Т.е. сначало надо понять смысл фразы, разложиь её в некое представление, а потом собрать заного (в том числе с учётом синтакса). Существующие переводчики часто какойто бред выдают, даже синтаксически не верно.

          Всегда мечтал работать близко к теме ИИ но как то не срослось пока :(
            +1
            Это бы позволило писать независимо фронтенд (чтение текста), ядро (универсальный язык, смысл, граф ситуации) и бекенд (запись текста нанужном языке). ИМХО
            Эта мысль мне очень нравится, реалистична ли?
              +2
              Если не читали, я думаю, вам будет интересно: habrahabr.ru/company/abbyy/blog/115226/
              Читать с «Центральным ядром создаваемой технологии..» и далее.

              Еще здесь, например: www.computerra.ru/663954/
                0
                Большое спасибо!
                Прочитал, очень интересно и очень похоже на то что думал я.
                Хотя есть и отличия:
                1. Я думал о графе, а не о дереве.
                2. В графе бы хранились не настолько «языковые» понятия, а всё же более универсальные.
                3. Я думал скорее о IBMовском Watson в разрезе перевода (или более универсального ИИ в будущем).

                Я так понял ABBYY ещё не показала публике продукты на Compreno? И пугает то что ABBYY не очень любит веб приложения по этому на своём Linux я не факт, что смогу найти это чудное творение. (вспоминаю историю с Lingvo)

                ЗЫ К слову, аналогичный подход я думал применять для распознование изображений.
                  0
                  Еще нет.

                  А по поводу веб-приложений: почему же не любит? Например, Lingvo и FineReader есть в онлайне (гуглятся на раз). Просто они не настолько распространены и известны, как их десктопные аналоги.
                    0
                    Ну Lingvo не очень полная в онлайне, а платной подписки вроде бы нету. Про FineReader не знал, уже интересно. :)

                    Еще нет.
                    Когда же когда? :) Правильно я понимаю, что нам стоит ждать online версию?
                    Если так то это будет очень крутой удар по Google так и по Yandex. Желаю успехов! (самим, что ли начать такую систему писать...)
                      0
                      Когда же когда? :) Правильно я понимаю, что нам стоит ждать online версию?
                      К сожалению, я не в курсе. В противном случае я все равно вряд ли был бы в праве говорить об этом здесь :)
                        0
                        Сенсации не произошло — увы! :)
                        Ждёмс.
                        0
                        > Ну Lingvo не очень полная в онлайне, а платной подписки вроде бы нету.
                        Есть: lingvopro.abbyyonline.com/ru/Bonuses
                +5
                Этим тоже занимаются, вот тут описано создание Открытого корпуса
                  +1
                  Просто огромное спасибо за эту ссылку!!! Просто суппер клад. И почему раньше не натыкался?
                  0
                  Попробуйте ещё посмотреть модель «Смысл ⇔ Текст» Мельчука. Она вполне интересная, хотя при этом достаточно сложная, чтобы не нашлось большой кучи желающих потратить на это всю жизнь. Ну и плюс, за Мельчуком нет никакой корпорации, одна голая лингвистика :(
                  –10
                  Я смотрю, немного разнообразили перевод.
                  Изначально, когда он только появился, было так (нервным и беременным скриншот не смотреть).
                    +2
                    Особенно, если человек не очень хорошо знает язык, на который переводит.

                    По-моему, для онлайн-сервиса типична противоположная ситуация. У вас же есть статистика чаще переводят, например, с английского на русский или наоборот? Можете озвучить хотя порядок относительных цифр?
                    ,
                      +4
                      иногда странно как то переводит — видимо структура предложения вообще на анализируется. пример: перевод 'action required' ->'необходимые действия', а 'action is required' ->'действий не требуется'. Откуда взялось 'не' остается только гадать. Возможно тексты ООН некорректно переведены были, отсюда и проблемы :) Кстати, Google Translate тоже страдает этой болезнью на этом примере.
                        +1
                        а ещё предложение «how much is the fish» вообще не переводится, а та же фраза с другими словосочетаниями — на ура. Я, конечно, допускаю, что это из-за того, что так называется одна из песен скутера, но всё же странно
                          0
                          это похоже на недостатки статистического перевода) в моем случае, в «сводках ООН :)» вероятно фигурировала фраза «no action is required', которая корректно переводится как „никаких действий не требуется“. Но при этом частица „не“ ассоциирована в таком словосочетании с „никаких“, а остаток фразы соответственно неправильно. есть гипотеза, что такая проблема будет со многими фразами, которые на русский переводятся с двойным отрицанием.
                          А вот пример how much is the fish — очень странный. how much is the bread — нормально переводиться как „сколько стоит хлеб“, было бы логично, чтобы и все замены существительного правильно переводились. Я надеюсь Яндекс прояснит в чем тут дело. Пока видно, что структура предложения никак не анализируется.
                        0
                        Свой переводчик это хорошо, будем надеяться, что он, как и карты, будет лучше адаптирован к России
                        но яндекс, скажи, что за «гиречки»?)
                        image
                          +2
                          Да уж, если такие моменты моменты случаются в системах перевода, то что будет, когда в обиход войдут системы искусственного интеллекта типа IBM-овского Ватсона? Отладка такого чуда даже Айзеку Азимову не снилась. На этот раз спасибо «Ананасовому Экспрессу»:
                          — Давай. бери весы и я пойду.
                          «Я думала, сезон бурь закончился!»
                          — Вот так!
                          — Где же вы, мои гиречки?
                          — Что это, к черту, такое?
                          — Крестовый косяк. — Курил такой?
                          — А его курят? ru

                          — Grab the scale. Let's get me out of here.
                          I thought hurricane season was over.
                          — Oh, crow.
                          — Where are you, you little fucker?
                          — What the fuck is this thing?
                          — Cross joint. — Yeah. — You ever smoke one of those?
                          — You can smoke this? en
                          +2
                          Очень жаль, что в вашем сервисе нет возможности посмотреть список применений для каждого варианта перевода (как на lingvopro.abbyyonline.com/ru ) — очень удобно при переводе. При такой методике подбора переводов такие сопоставления должны получаться как естественный побочный продукт.
                            +1
                            Теперь бы еще сделать Яндекс.Очки, для чего подружить Яндекс.Перевод и Abbyy Finereader. А то Google Goggles ужасно распознает (и поэтому совершенно бесполезен для перевода получившейся ерунды) сфотографированные объявления и надписи на улицах. Проверял в Финляндии — ни упаковки товаров, ни объявления в парке, вообще ничто не может перевести с финского даже на английский из-за плохого распознавания текста.
                              +1
                              Получилось определенно лучше гугла. Одобряю.
                                0
                                Чем именно лучше?
                                Вообще хотелось бы увидеть развернутое сравнение с гуглом.
                                  +1
                                  Качество перевода сравнимое на мой взгляд, а вот интерфейс намного лучше сделан у Яндекса и на порядок быстрее работает.

                                  В Яндексе мне вообще не приходится указывать направление перевода, он сам догадывается, а гуглу руками вечно указывать приходится.
                                +1
                                Если программа учится переводу на параллельных текстах, можно было бы показывать предложения на «родном» якыке, из которых был взят перевод. По контексту легче определить правильно переведено или нет.
                                  0
                                  научили выявлять из всего набора фраз действительно устойчивые словосочетания

                                  Какая–то хитрая метрика для нахождения коллокаций?

                                  Only users with full accounts can post comments. Log in, please.