Немецкие ученые: программируем… без языков программирования



    Компьютеры «говорят» на собственном языке. И они могут быть запрограммированы только теми, кто знает этот язык-код. Специалисты в области вычислительных систем из Технологического института Карлсруэ (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 Не забывайте, будущее — в наших руках!
    Geek To The Future
    Компания

    Похожие публикации

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 6

      +4
      Слишком мало букв, статья больше похоже на введение к большой статье.

      По теме: естественные языки слишком гибкие и неточные, для программирования они имхо если когда-нибудь и сгодятся, то только в виде некоторого подмножества, исключающего неоднозначности в стиле «Добро побеждает зло» и «Мы отдали бананы обезьянам, потому что они были голодные».
        +1
        Думается, описанное в статье пойдёт для «программирования» каких-то простейших бытовых сценариев.
        «Если завтра после 15 часов пойдёт дождь, напомни взять зонтик на прогулку». Умная бытовая техника, автопилоты etc.
        На что-то большее с естественными языками сложно рассчитывать.

          +1
          иф а равно равно пять а присвоить семь назад назад назад заменить на шесть
            +3
            Не там роют, ИМХО. Проблема не в синтаксисе, а в объектном окружении.

            Кто такой гараж, куда машина едет? Если она едет по тротуару — гараж открыть? А если она едет на другом континенте — открывать? За час? За неделю? Машину блокировать, если за месяц заранее гараж не открыт? Который из?

            А уж ставить точку с запятой или не ставить, вводить ли конструкцию before — дело десятое.

            Ощущение о статьи такое, будто этим немцам «обои скучные».

            i.imgur.com/nKzX8.jpg
              +3
              Основная проблема, с которой предстоит справиться — люди не всегда описывают процессы в строго хронологическом порядке.
              А я думал, что это умопомрачительная контекстная зависимость естественной речи. Если я скажу «The car starts, the door opens», то человек догадается, что речь идёт именно о двери гаража, и что она откроется до того, как в неё врежется автомобиль. А может, имелась в виду и другая дверь; зависит от того, куда я смотрел, произнося эту фразу. Или может я не успел договорить «but not quite fully and the car rams into it».

              Мне в этом плане очень нравится выражения Дона Кнута: «Если вы можете объяснить что-то компьютеру, то это наука. Всё остальное — искусство». Конечно, удачи им (неискренне), но вне зависимости от их усилий, с компьютером придётся разговаривать формальным образом. Вагон сахара и абстракций могут помочь компьютерам с угадайкой того, что имела в виду эта жалкая белковая форма жизни, но они всё равно останутся бездушными железками, слепо исполняющими программы.
                0
                А это точно не британские ученые? Детский сад, честное слово.

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое