Apertium - Apertium

Apertium
Apertium logo.svg
Apertium-tolk, простой настольный пользовательский интерфейс для Apertium, который переводится как пользовательские типы
Apertium-tolk, простой настольный пользовательский интерфейс для Apertium, который переводится как пользовательские типы
Стабильный выпуск
3.6.1[1] / 24 октября 2019 г.; Год назад (2019-10-24)
Репозиторийgithub.com/ apertium
Написано вC ++
Операционная системаPOSIX совместимый и Windows NT (ограниченная поддержка)
Доступно в35 языков, см. ниже
ТипМашинный перевод на основе правил
ЛицензияСтандартная общественная лицензия GNU
Интернет сайтwww.apertium.org

Apertium это бесплатно / с открытым исходным кодом машинный перевод на основе правил Платформа. это бесплатно программное обеспечение и выпущен в соответствии с условиями Стандартная общественная лицензия GNU.

Обзор

Apertium - это мелкопереносной машинный перевод система, которая использует преобразователи конечного состояния для всех его лексических преобразований, и скрытые марковские модели за теги части речи или значение категории слова. Ограниченная грамматика тегеры также используются для некоторых языковых пар (например, БретонскийФранцузский ).[2]

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

Apertium использует не зависящая от языка спецификация, чтобы упростить участие в Apertium, повысить эффективность разработки и увеличить общий рост проекта.

В настоящее время Apertium выпустил 40 стабильных языковых пар, обеспечивающих быстрый перевод с разумно понятными результатами (ошибки легко исправляются). Будучи Открытый исходный код Project Apertium предоставляет потенциальным разработчикам инструменты для создания собственной языковой пары и внесения вклада в проект.

История

Apertium возник как одна из машин машинного перевода в проекте. OpenTrad, который финансировался испанский правительство, и разработано исследовательской группой Transducens в Universitat d'Alacant. Первоначально он был разработан для перевода между тесно связанными языками, хотя недавно он был расширен для обработки более расходящихся языковых пар. Чтобы создать новую систему машинного перевода, нужно просто разработать лингвистические данные (словари, правила) в четко определенных XML форматы.

Для него разработаны языковые данные (в сотрудничестве с Universidade de Vigo, то Universitat Politècnica de Catalunya и Universitat Pompeu Fabra ) в настоящее время поддерживают (в стабильной версии) арабский, Арагонский, Астурийский, Баскский, Белорусский, Бретонский, болгарский, Каталонский, Крымскотатарский, Датский, английский, эсперанто, Французский, Галицкий, хинди, исландский, индонезийский, Итальянский, Казахский, македонский, Малазийский, Мальтийский, Северные саамы, норвежский язык (Букмол и Нюнорск ), Окситанский, Польский, португальский, румынский, русский, Сардинский, Сербо-хорватский, Силезский, Словенский, испанский, Шведский, Татарский, украинец, Урду, и валлийский языков. Полный список доступен ниже. Несколько компаний также участвуют в разработке Apertium, в том числе Prompsit Language Engineering, Программное обеспечение Imaxin и Элека Ингениарица Лингвистикоа.

Проект принял участие в 2009 г.[3] 2010,[4] 2011,[5] 2012,[6] 2013[7] и 2014[8] редакции Google Summer of Code и 2010,[9] 2011,[10] 2012,[11] 2013,[12] 2014,[13] 2015,[14] 2016[15] и 2017[16] редакции Google Code-In.

Методология перевода

Конвейер системы машинного перевода Apertium

Это общий, пошаговый обзор того, как работает Apertium.

На диаграмме показаны шаги, которые Apertium предпринимает для перевода язык источника текст (текст, который мы хотим перевести) в язык перевода текст (переведенный текст).

  1. Язык источника текст передается в Apertium для перевода.
  2. В деформатор удаляет разметка форматирования (HTML, RTF и т. Д.), Которые следует сохранить, но не переводить.
  3. В морфологический анализатор сегментирует текст (расширяя элизии, маркировка заданных фраз и т. д.) и поиск сегментов в языковых словарях, затем возврат базовой формы и тегов для всех совпадений. В парах с участием агглютинативная морфология, в том числе ряд Тюркские языки, а Хельсинки Конечный преобразователь (HFST) используется. В противном случае особая технология Apertium, называемая lttoolbox,[17] используется.
  4. В морфологический устранитель неоднозначностиморфологический анализатор и морфологический устранитель неоднозначности вместе образуют часть речевого теггера ) разрешает неоднозначные сегменты (т. е. когда есть более одного совпадения), выбирая одно совпадение. Apertium работает над установкой дополнительных Ограниченная грамматика фреймворков для своих языковых пар, позволяя налагать более тонкие ограничения, чем это было бы возможно в противном случае. Apertium использует визуальное интерактивное изучение синтаксиса Ограниченная грамматика Парсер.[18]
  5. Лексический перевод ищет однозначные базовые слова исходного языка, чтобы найти их эквиваленты на целевом языке (т. е. отображение язык источника к язык перевода ). За лексический перевод, Apertium использует XML -основанный формат словаря называется бидикс.[19]
  6. Лексический отбор выбирает между альтернативными переводами, когда слово исходного текста имеет альтернативные значения. Apertium использует специальный XML -основная технология, Апертиум-лекс-инструменты,[20] выполнять лексический отбор.
  7. Структурный перенос (т.е. это XML формат, позволяющий писать сложные структурные правила переноса) может состоять из одноэтапного переноса или трехэтапного модуля переноса. Он отмечает грамматические различия между язык источника и язык перевода (например, пол или номер соглашение ), создав для этого последовательность блоков, содержащих маркеры. Затем он переупорядочивает или изменяет фрагменты, чтобы произвести грамматический перевод на целевой язык. Это также делается с помощью lttoolbox.
  8. В морфологический генератор использует теги для доставки правильных язык перевода форма поверхности. Морфологический генератор - это морфологический преобразователь,[21] прямо как морфологический анализатор. Морфологический преобразователь одновременно анализирует и генерирует формы.
  9. В пост-генератор делает все необходимое орфографический изменения из-за контакта слов (например, элизии ).
  10. В преобразователь заменяет разметка форматирования (HTML, RTF и т. Д.), Которые были удалены деформатором на первом шаге.
  11. Apertium предлагает язык перевода перевод.

Языковые пары

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

афаранастЕвропаbrbgокданлenэоfrglхинявляетсяя быЭтоказмкРСмтсмэnbnnокptроschbsslvesсвтатurdСай
африкаансНетНетНетНетНетНетНетНетДа (⇄)НетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНет
арабскийНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (←)НетНетНетНетНетНетНетНетНетНетНетНетНетНет
АрагонскийНетНетНетНетНетНетДа (⇄)НетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (⇄)НетНетНетНет
АстурийскийНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (⇄)НетНетНетНет
БаскскийНетНетНетНетНетНетНетНетНетДа (→)НетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (→)НетНетНетНет
БретонскийНетНетНетНетНетНетНетНетНетНетНетДа (→)НетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНет
болгарскийНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (⇄)НетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНет
КаталонскийНетНетДа (⇄)НетНетНетНетНетНетДа (⇄)Да (→)Да (⇄)НетНетНетНетДа (←)НетНетНетНетНетНетНетДа (⇄)Да (⇄)НетДа (→)НетНетДа (⇄)НетНетНетНет
ДатскийНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (⇄)Да (⇄)НетНетНетНетНетНетНетДа (←)НетНетНет
нидерландский языкДа (⇄)НетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНет
английскийНетНетНетНетДа (←)НетНетДа (⇄)НетНетДа (⇄)НетДа (⇄)НетДа (←)НетНетНетДа (←)НетНетНетНетНетНетНетНетНетДа (←)НетДа (⇄)НетНетНетДа (←)
эсперантоНетНетНетНетНетНетНетДа (←)НетНетДа (⇄)Да (←)НетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (←)НетНетНетНетНетНетНетНет
ФранцузскийНетНетНетНетНетДа (←)НетДа (⇄)НетНетНетДа (→)НетНетНетНетНетНетНетНетНетНетНетНетДа (→)НетНетНетНетНетНетДа (⇄)НетНетНет
ГалицкийНетНетНетНетНетНетНетНетНетНетДа (⇄)НетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (⇄)НетНетНетНетДа (⇄)НетНетНетНет
хиндиНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (⇄)Нет
исландскийНетНетНетНетНетНетНетНетНетНетДа (→)НетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (⇄)НетНетНет
индонезийскийНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (⇄)НетНетНетНетНетНетНетНетНетНетНетНетНетНетНет
ИтальянскийНетНетНетНетНетНетНетДа (→)НетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (→)НетНетНетНетНетНетНет
КазахскийНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (⇄)НетНет
македонскийНетНетНетНетНетНетДа (⇄)НетНетНетДа (→)НетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (←)НетНетНетНетНетНет
МалазийскийНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (⇄)НетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНет
МальтийскийНетДа (→)НетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНет
Северные саамыНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (→)НетНетНетНетНетНетНетНетНетНетНетНет
норвежский язык (Букмол )НетНетНетНетНетНетНетНетДа (⇄)НетНетНетНетНетНетНетНетНетНетНетНетНетДа (←)Да (⇄)НетНетНетНетНетНетНетНетНетНетНет
норвежский язык (Нюнорск )НетНетНетНетНетНетНетНетДа (⇄)НетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (⇄)НетНетНетНетНетНетНетНетНетНетНет
ОкситанскийНетНетНетНетНетНетНетДа (⇄)НетНетНетНетДа (←)НетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (⇄)НетНетНетНет
португальскийНетНетНетНетНетНетНетДа (⇄)НетНетНетНетНетДа (⇄)НетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (⇄)НетНетНетНет
румынскийНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (←)НетНетНетНет
СардинскийНетНетНетНетНетНетНетДа (←)НетНетНетНетНетНетНетНетНетДа (←)НетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНет
Сербо-хорватскийНетНетНетНетНетНетНетНетНетНетДа (→)НетНетНетНетНетНетНетНетДа (→)НетНетНетНетНетНетНетНетНетДа (⇄)НетНетНетНетНет
словенскийНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (⇄)НетНетНетНетНет
испанскийНетНетДа (⇄)Да (⇄)Да (←)НетНетДа (⇄)НетНетДа (⇄)Да (→)Да (⇄)Да (⇄)НетНетНетНетНетНетНетНетНетНетНетДа (⇄)Да (⇄)Да (←)НетНетНетНетНетНетНет
испанскийНетНетНетНетНетНетНетНетДа (→)НетНетНетНетНетНетДа (⇄)НетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНет
ТатарскийНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (⇄)НетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНет
УрдуНетНетНетНетНетНетНетНетНетНетНетНетНетНетДа (⇄)НетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНет
валлийскийНетНетНетНетНетНетНетНетНетНетДа (→)НетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНет

Смотрите также

Примечания

  1. ^ https://github.com/apertium/apertium/releases
  2. ^ Фрэнсис М. Тайерс (2010) "Машинный перевод с бретонского на французский на основе правил ". 'Труды 14-й ежегодной конференции Европейской ассоциации машинного перевода, EAMT10', стр. 174--181
  3. ^ «Принятые организации для Google Summer of Code 2009».
  4. ^ "Принятые организации для Google Summer of Code 2010".
  5. ^ «Принятые организации для участия в Google Summer of Code 2011».
  6. ^ "Принятые организации для Google Summer of Code 2012".
  7. ^ «Принятые организации для участия в Google Summer of Code 2013».
  8. ^ «Принятые организации для участия в Google Summer of Code 2014».
  9. ^ «Принятые организации для Google Code - в 2010 г.».
  10. ^ «Принятые организации для Google Code - 2011 г.».
  11. ^ «Принятые организации для Google Code в 2012 году».
  12. ^ «Принятые организации для Google Code - в 2013 г.».
  13. ^ «Принятые организации для Google Code - в 2014 г.».
  14. ^ «Принятые организации для Google Code - в 2015 г.».
  15. ^ «Принятые организации для Google Code - в 2016 г.».
  16. ^ «Принятые организации для Google Code - в 2017 г.».
  17. ^ «Lttoolbox - Apertium». wiki.apertium.org. Получено 2016-01-19.
  18. ^ "ВИСЛ". beta.visl.sdu.dk. Получено 2016-01-19.
  19. ^ «Двуязычный словарь - Apertium». wiki.apertium.org. Получено 2016-01-19.
  20. ^ «Модуль лексического выбора на основе ограничений - Apertium». wiki.apertium.org. Получено 2016-01-19.
  21. ^ «Морфологический словарь - Apertium». wiki.apertium.org. Получено 2016-01-19.

Рекомендации

  • Corbí-Bellot, M. et al. (2005) «Механизм машинного перевода с открытым исходным кодом для романтических языков Испании» в Труды Европейской ассоциации машинного перевода, 10-я ежегодная конференция, Будапешт, 2005 г., стр. 79–86
  • Armentano-Oller, C. et al. (2006) "Португальский-испанский машинный перевод с открытым исходным кодом" in Lecture Notes in Computer Science 3960 [Вычислительная обработка португальского языка, Труды 7-го Международного семинара по вычислительной обработке письменного и разговорного португальского языка, PROPOR 2006]С. 50–59.
  • Forcada, M. L. et al. (2010) «Документация платформы машинного перевода с открытым исходным кодом с мелкой передачей данных. Apertium" в Departament de Llenguatges i Sistemes Informatics, Университет Алаканта.
  • Forcada, M. L. et al. (2011) "Apertium: бесплатная платформа с открытым исходным кодом для машинного перевода на основе правил". в "Дои:10.1007 / s10590-011-9090-0

внешняя ссылка

Услуги и программное обеспечение для конечных пользователей

(Все сервисы основаны на движке Apertium)

Сайты онлайн-переводов

Офлайн-приложения