Numra для разработчиков
Здесь начинается документация для того, чтобы заставить Numra работать на новые языки.
Числовая система
Задача состоит в том, чтобы сделать преобразователи которые из чисел производят имена числительные. Наши преобразователи сделаны одновременно с компиляторами Xerox Finite State Transducer и HFST Finite State Transducer Прежний лучше зарегистрирован (см. ссылку выше), и легче установить и использовать, но последний - с открытым исходным кодом, и также более стабильный. Текущая установка Oahpa использует xfst компиляторы.
В нашем текущем внедрении Numra мы предлагаем бегущие числа (количественные и порядковые), выражения времени и даты.
Сам по себе Numra можно было бы управлять без автоматов, используя просто список пары число - слово, но мы обнаружили, что легче сделать это с автоматами.
Числа (количественные и порядковые)
Задача состоит в том, чтобы соответствовать числу к слову. Порядок частей в слове может быть тем же самым как в числе (как в Мари: вит = 5, латвит = 15 , или это может отличаться (как на английском языке: five = 5, fifteen = 15 ). Вы можете построить систему "с нуля" или на основе преобразователя имей числительных некоторого другого языка.
В Giellatekno у нас есть автоматы числителных для различных языков: кильдин саамский, Пите саами, юго саами, северный саамский, Луле саами, инари, Сколт саами, Финский, квенский, коми, луговой марийский, горномарийский, эрзянский, мокшанский, ливонский, ненецкий, норвежский и русский.
Обратите внимание на то, что некоторые из них находятся на стадии испытаний и могут содержать ошибки.
Выберите один из существуюших преобразователей, или начните с ноля и сделайте свой преобразователь. Включайте и количественные и порядковые числительные. В Oahpa, наибольшее число 1000, таким образом, в этом контексте нет потребности продолжаться и после 1000.
Время (Clock)
Задача состоит в том, что соответствовать выражению времени написанному числами (11:45) к словесному выражению (без четверти двенадцать).
В Giellatekno у нас есть автоматы времени для различных языков: юго саами, северный саамский, Луле саами, Финский, квенский и русский.
Мы используем технику "flag diacritics". Причина этой техники состоит в том, что часы написаны в час заказа - минута, но говоривший в минуту заказа - часы (семнадцать прошлых десять = 10:17). Чтобы получить это, мы помещаем отметку на час число. Когда слово часа добавлено позже, мы проверяем его против отметки. Мы таким образом производим двенадцать версий тот же самый час, но удаляют 11 из них, 11 не наличие отметки часа соответствия. Для документации читайте главу "Flag diacritics" в книге Beesley и Karttunen.
Дата
Задача состоит в том, чтобы соответствовать численно написанному выражению даты (18/9) к словесному выражению (восемнадцатого сентября).
В Giellatekno у нас есть автоматы даты для, по крайней мере, этих языков: юго саами, северный саамский, инари Saami, and квенский and русский.
Компилирование файлов
Исходные файлы могут быть сделаны в любом редакторе текста. Соберите в языковом справочнике (например, $GTHOME/langs/fkv для Kven) сочиняя make . Преобразователи могут быть проверены командами:
- lookup src/transcriptor-clock2text.xfst
- lookup src/transcriptor-date2text.xfst
- lookup src/transcriptor-number2text.xfst
- lookup src/transcriptor-text2clock.xfst
- lookup src/transcriptor-text2date.xfst
- lookup src/transcriptor-text2number.xfst