846
0,2
2014-10-22
Немецкие ученые: программируем… без языков программирования
Компьютеры «говорят» на собственном языке. И они могут быть запрограммированы только теми, кто знает этот язык-код. Специалисты в области вычислительных систем из Технологического института Карлсруэ (KIT) в настоящее время работают над программным обеспечением, которое сможет напрямую переводить естественный язык (как средство человеческого общения) в машинно-считываемый исходный текст.
Если исследователям удастся решить все стоящие перед ними проблемы, пользователи смогут создавать собственные компьютерные приложения, использовав набор фраз. Основная проблема, с которой предстоит справиться — люди не всегда описывают процессы в строго хронологическом порядке. Новый аналитический инструмент, разрабатываемый исследователями из KIT, служит для автоматического упорядочивания команд, после чего они могут быть выполнены компьютером.
«Мы хотим уйти от сложных правил для пользователей — то, чем, по сути, являются языки программирования — к умным системам, которые ведут диалог с нами», — говорит Матиас Ландхойсер (Mathias Landhäußer), специалист из Institute for Program Structures and Data Organization, входящего в Технологический институт Карлсруэ. Сегодня программы могут лишь управляться естественным языком, если это было предусмотрено разработчиком. Пример — отправка коротких сообщений со смартфона.
Специалисты из KIT в настоящее время работают над софтом, который сможет выполнять роль языкового интерфейса для любого типа программ. Пользователи смогут не только запускать приложения, но и управлять ими с помощью голосовых команд. Исследователям уже удалось успешно внедрить такой интерфейс в приложение, управляющее системами обогрева, освещения и окнами в умных домах.
«Понадобится время для того, чтоб компьютеры не только контролировались, но и могли быть запрограммированы посредством естественного человеческого языка», — считает Ландхойсер. Но главная коммуникационная проблема между человеком и машиной — проблема хронологического порядка — уже получила решение. В качестве основы для исследований использовался английский язык. «Давайте разберем фразу «Before the car starts, the garage door opens» (англ. «До того как машина начинает движение, открываются ворота гаража»), — предлагает Ландхойсер. — В нашем повседневном общении это описание довольно стандартно. Если же речь идет о виртуальном мире компьютеров, возникает проблема: компьютер выполняет команды последовательно, по мере поступления команд. В приведенном примере компьютер сначала получает информацию «the car starts» (машина начинает движение). Затем — «the garage door opens» (ворота гаража открываются). В итоге машина врезается в ворота… Если такая последовательность действий не предусмотрена программой, то в лучшем случае ничего не происходит. В худшем — компьютер зависает».
Софт, разрабатываемый в KIT, анализирует связанные со временем сигнальные слова, которые указывают на то, что произнесенный текст описывает процесс нелинейным способом. Такие сигнальные слова уточняют что должно произойти «до» или «после», «сначала» или «наконец», независимо от расположения информации в произносимой фразе. Специалисты привязали к этим словам логические алгоритмы с тем, чтобы создать правильный хронологический порядок действий. Если применить такой подход к примеру, описанному выше, то алгоритм для сигнального слова «before» (до) автоматически перемещает главное предложение в начало. Результат — «The garage door opens before the car starts» (Ворота гаража открываются до того, как машина начинает движение).
По словам исследователей, специально разработанные требования для голосового общения с компьютерам не являются надежной альтернативой. Уже первые тесты показали, что испытуемые, как имеющие навыки программирования, так и не владеющие ими, не смогли соблюдать строгую хронологию, даже если их специально инструктировали. Вместо этого они неосознанно продолжали использовать сигнальные слова. «Наша цель состоит в том, чтобы компьютер адаптировался к языку пользователя. И никак иначе», — считает Ландхойсер.
Помимо хронологической проблемы исследователи выявили ряд других препятствий на пути к программированию посредством естественного языка. Испытуемые заменяли некоторые слова синонимами или местоимениями. Компьютер не может автоматически понять, что слово «car» (автомобиль) означает то же, что и «vehicle» (транспортное средство) или «it» (он) в последующих фразах. «Люди понимают такие взаимосвязи, потому что они видят ситуацию как фильм, который крутится в их голове. Мы работаем над тем, чтобы дать компьютерам такое же понимание», — объясняет Ландхойсер.
PS При подготовке статьи использовались следующие материалы: статья 1, статья 2
PPS Не забывайте, будущее — в наших руках!
Источник: geektimes.ru/company/gttf/blog/240512/
Марк Андрессен: почему оптимизм — всегда выигрышная стратегия
Путь к монополии: Как «Яндекс» пытается объединить в себе интернет