Программирование компьютеров на повседневном языке

«Мы хотим уйти от сложных правил для пользователей — вот что такое языки программирования — к умным компьютерам, которые вступают с нами в диалог», — говорит Матиас Ландхауер, ученый из Института программных структур и организации данных KIT ( ИТП). Пока что программами можно управлять только с помощью языка, если они разработаны производителем соответствующим образом. Примером может служить отправка коротких сообщений через смартфон. Компьютерные специалисты KIT в настоящее время работают над программным обеспечением, которое устанавливает языковой интерфейс для любого типа программ.

Пользователи могут не только открывать свои приложения, но и управлять ими с помощью голосовых команд. Ученые уже успешно внедрили такой интерфейс в приложение, управляющее системой отопления, освещением и окнами умных домов.«Пройдет некоторое время, прежде чем сложное программное обеспечение будет не только работать, но и программироваться на естественном языке», — считает Ландхауэр.

Центральная проблема коммуникации между человеком и машиной — проблема порядка — только что была решена учеными, и английский язык был использован в качестве первого примера. «Давайте посмотрим на предложение« Перед тем, как машина завелась, дверь гаража открывается ». На нашем обыденном языке это описание вполне обычное, — говорит Ландхауэр. Однако, если процесс должен происходить в виртуальном мире на компьютере, возникает проблема: компьютер выполняет команды последовательно в порядке их поступления. В приведенном примере компьютер сначала получает информацию «автомобиль заводится». Затем поступает информация «дверь гаража открывается».

Значит, машина врезается в дверь гаража. «Если такая цепочка действий не предусмотрена программой, в лучшем случае ничего не произойдет. В худшем случае компьютер выйдет из строя», — говорит ученый.

Новое программное обеспечение, разработанное учеными KIT, анализирует связанные со временем сигнальные слова, которые указывают на то, что произнесенный текст не описывает порядок процесса строго линейным образом. Такие сигнальные слова указывают, происходит ли что-то «до» или «после», «первое» или «последнее», независимо от положения информации в предложении. Ученые-информатики присваивают этим словам логические формулы, чтобы создать хронологический порядок в исходном тексте. Применительно к приведенному выше примеру формула для сигнального слова «до» автоматически перемещает основное предложение на передний план.

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

Помимо проблемы порядка, ученые выявили и другие проблемы в программировании на естественном языке. Некоторые слова испытуемые заменяли синонимами или местоимениями.

Компьютеры не понимают автоматически, что термин «автомобиль» означает то же самое, что и «транспортное средство» или «оно» в следующем предложении. «Люди понимают эти отношения, потому что ситуация мелькает, как пленка, в их внутреннем взоре. Мы работаем над тем, чтобы дать компьютерам такое понимание в долгосрочной перспективе», — объясняет Ландхауэр.