Monday, December 3, 2007

peter-mac:~ peter$

В субботу на НЛП-семинаре рассказывали нам про то, как работает система машинного перевода ПроМТ. Собственно, ничего особо неожиданного не случилось: для каждого направления перевода есть много-много заданных вручную правил, как переводить в данном направлении конкретные слова и словосочетания. Правила для последних чаще всего имеют вид шаблонов, то бишь, содержат переменные. В общем, ничего особо концептуального. Работать отлично это, видимо, не способно по определению, но можно добиться более-менее сносных результатов, что мы и имеем.

Процесс организован следующим образом. Сидит лингвист, смотрит на какой-нибудь неправильный промтовый перевод, размышляет. Придумывает новое правило, которое все разом возьмет и полечит. Идет к программисту, объясняет правило, программист это дело кодит. Далее есть 18М тестовых текстов (или текстовых тестов?), на которых прогоняются старый и новый варианты, и просматриваются отличия (hopefully их немного). Если отличия случились в плохую сторону, лингвист идет думать дальше, иначе изменения принимаются.

Если я все правильно понял, весело быть программистом в ПроМТе. Сидишь, никого не трогаешь, приходят к тебе красивые девушки и рассказывают про правила какого-нибудь экзотического языка. Кругозор, понимаешь, расширяют. Кайф!

Правила работают на словах и их сочетаниях, поэтому при вводе правил надо эти слова, что логично, вводить. Причем во всех словоформах. Получается, что надо вводить целое множество похожих слов (множество сие зовется парадигмой). Так вот, есть у них умная экспертная система, которой достаточно ввести какую-нибудь основную словоформу, и она с большой вероятностью правильно дозаполнит остальные. Что, конечно же, весьма облегчает работу по улучшению ПроМТа. Система экспертна, то бишь, насколько я помню из экзамена по специальности, представляет собой длинную последовательность правил вида if-then.

Расследование показало, что при добавлении какого-нибудь нового языка к системе подсаживается специально обученная группа экспертов, которые долго думают, а потом ее расширяют так, чтобы она нормально угадывала парадигмы и из этого языка. А именно, дописывают еще пару сотен правил. Возникает резонный вопрос - а нафига? Можно же сделать еще более умную систему, которая будет сама на основе примеров выводить те самые правила, которые сейчас в нее забиваются руками! Причем именно для данной задачи (вывод парадигмы) это, по идее, должно быть достаточно просто. И, по счастливому совпадению, это ровно та задача, про которую я туплю уже некоторое время. Так что вот, надо решать.

No comments: