Разработан алгоритм преобразования обычного языка в программный код

15 июль, 2013 - 15:55
Разработан алгоритм преобразования обычного языка в программный код

В двух статьях, представленных ими на ближайшие конференции, сотрудники лаборатории Computer Science and Artificial Intelligence Массачусетского технологического института (MIT) продемонстрировали, что для ряда специфических задач вполне возможно написать компьютерные программы, используя обычный язык вместо специализированных языков программирования.

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

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

Хотя, как правило, они плохо согласуются с естественным языком, ученые установили, что каждому регулярному выражению можно найти (пусть и не такой компактный) эквивалент, удачно переносимый на обычный язык. Более того, применив математическую конструкцию, известную как теория графов, можно представить все эквивалентные версии регулярного выражения сразу. Таким образом, система должна научиться наиболее легкому для нее способу преобразовывать натуральный язык в символы регулярных выражений — далее, наиболее сжатый вариант ищется с применением графов.

В другом докладе, подготовленном для августовской конференции Ассоциации, описывается автоматическое обучение системы обращению с данными, записанными в различных форматах. Разработанная в MIT система способна написать код входного синтаксического анализатора (парсер) на основе спецификаций на естественном языке. В тестах ей удалось создать работающие парсеры примерно для 80% спецификаций. В остальных случаях, с затруднениями, как правило, удавалось разобраться, изменив одно или два слова в спецификации.