ШРДЛУ
![]() | Эта статья включает список общих ссылок , но в ней отсутствуют достаточные соответствующие встроенные цитаты . ( февраль 2010 г. ) |
Оригинальный автор(ы) | Терри Виноград |
---|---|
Первоначальный выпуск | 1968 |
Написано в | Micro Planner , язык программирования Lisp. |
Операционная система | ПДП-6 |
Платформа | Декабрь |
Тип | понимание естественного языка |
SHRDLU — это первая для понимания естественного языка компьютерная программа , разработанная Терри Виноградом в Массачусетском технологическом институте в 1968–1970 годах. В программе пользователь ведет диалог с компьютером, перемещая объекты, называя коллекции и запрашивая состояние упрощенного « мира блоков », по сути, виртуальной коробки, заполненной различными блоками. [1]
SHRDLU был написан на языке программирования Micro Planner и Lisp на компьютере DEC PDP-6 и графическом терминале DEC . Позже дополнения были сделаны в лабораториях компьютерной графики Университета Юты , добавив полную 3D-рендеринг «мира» SHRDLU.
Название SHRDLU произошло от ETAOIN SHRDLU , расположения буквенных клавиш на линотипе , расположенных в порядке убывания частоты использования на английском языке.
Функциональность [ править ]
SHRDLU — это прежде всего языковой анализатор, который позволяет пользователю взаимодействовать с использованием английских терминов . Пользователь инструктирует SHRDLU перемещать различные объекты в «мире блоков», содержащем различные базовые объекты: блоки, конусы, шары и т. д. Уникальность SHRDLU заключалась в сочетании четырех простых идей, которые в сумме создавали симуляцию «понимания». гораздо убедительнее.
Во-первых, мир SHRDLU настолько прост, что весь набор объектов и локаций можно описать, включив всего лишь 50 слов: такие существительные, как «блок» и «конус», такие глаголы, как «поместить на» и «перейти к», и такие прилагательные, как «большой» и «синий». Возможные комбинации этих основных строительных блоков языка довольно просты, и программа достаточно хорошо понимает, что имеет в виду пользователь.
SHRDLU также включает базовую память для предоставления контекста. Можно было попросить SHRDLU «положить зеленый конус на красный блок», а затем «снять конус»; «Конус» будет означать тот зеленый конус, о котором только что говорили. SHRDLU может выполнять более глубокий поиск по взаимодействиям, чтобы найти правильный контекст в большинстве случаев, когда были указаны дополнительные прилагательные. Можно также задавать вопросы об истории, например, можно спросить: «Вы что-нибудь взяли до конуса?»
Побочным эффектом этой памяти и первоначальных правил SHRDLU является то, что программа может отвечать на вопросы о том, что возможно в мире, а что нет. Например, SHRDLU может прийти к выводу, что блоки можно складывать друг в друга, глядя на примеры, но также понять, что треугольники не могут быть сложены, после того, как попробовал это сделать. «Мир» содержит базовую физику , заставляющую блоки падать независимо от синтаксического анализатора языка .
Наконец, SHRDLU также может запоминать имена, данные объектам, или их расположение. Например, можно сказать: «Шпиль — это маленький треугольник на вершине высокого прямоугольника»; Затем SHRDLU сможет ответить на вопросы о шпилях в мире блоков и построить новые.
Вот знаменитая демонстрация SHRDLU: [2]
- Человек: Возьмите большой красный блок.
- Компьютер: ОК.
- Человек: Возьмите пирамиду.
- Компьютер: Я НЕ ПОНИМАЮ, О КАКОЙ ПИРАМИДЕ ВЫ ИМЕЕТЕ В виду.
- Человек (передумав): Найдите блок, который выше того, который вы держите, и положите его в коробку.
- Компьютер: ПОД «ЭТОМ», Я предполагаю, ВЫ ИМЕЕТЕ В виду БЛОК, КОТОРЫЙ ВЫШЕ, ЧЕМ ТО, ЧТО Я держу.
- Компьютер: ОК.
- Человек: Что находится в коробке?
- Компьютер: СИНЯЯ ПИРАМИДА И СИНИЙ БЛОК.
- Человек: На чем держится пирамида?
- Компьютер: КОРОБКА.
- Человек: Сколько кубиков нет в коробке?
- Компьютер: ИХ ЧЕТЫРЕ.
- Человек: Хоть один из них уже, чем тот, который я тебе посоветовал подобрать?
- Компьютер: ДА, КРАСНЫЙ КУБ.
- Человек: Это поддерживается?
- Компьютер: ДА, ЗА СТОЛОМ.
- Человек: Может ли стол собирать блоки?
- Компьютер: НЕТ.
- Человек: Может ли пирамида опираться на блок?
- Компьютер: ДА.
- Человек: Может ли пирамида поддерживать пирамиду?
- Компьютер: НЕ ЗНАЮ.
- Человек: Сложите две пирамиды.
- Компьютер: Я НЕ МОГУ.
- Человек: Не могли бы вы сложить в стопку оба красных блока и зеленый куб или пирамиду?
- Компьютер: ОК.
- Человек: Какой кубик стоит на столе?
- Компьютер: БОЛЬШОЙ ЗЕЛЕНЫЙ, КОТОРЫЙ ПОДДЕРЖИВАЕТ КРАСНУЮ ПИРАМИДУ.
- Человек: За пирамидой есть большой блок?
- Компьютер: ДА, ИХ ТРИ: БОЛЬШОЙ КРАСНЫЙ, БОЛЬШОЙ ЗЕЛЕНЫЙ КУБ И СИНИЙ.
- Человек: Положите маленький кубик на зеленый кубик, на котором стоит пирамида.
- Компьютер: ОК.
- Человек: Положите на него самую маленькую пирамидку.
- Компьютер: ОК.
- Человек: Поддерживает ли самая короткая вещь, которую поддерживает опора самой высокой пирамиды, что-нибудь зеленое?
- Компьютер: ДА, ЗЕЛЕНАЯ ПИРАМИДА.
- Человек: Какого он цвета?
- Компьютер: ПОД «ЭТОМ», Я предполагаю, ВЫ ЗНАЧИТЕ САМОЕ КОРОТКОЕ, ЧТО ПОДДЕРЖИВАЕТ САМАЯ ВЫСОКАЯ ПИРАМИДА.
- Компьютер: КРАСНЫЙ
- Человек: Сколько вещей находится на зеленых кубиках?
- Компьютер: Я НЕ ПОНИМАЮ, ЧТО ВЫ ЗНАЧИТЕ ПОД «НА ВЕРШИНЕ» ВО ФРАЗЕ «НА ПОВЕРХЕ ЗЕЛЕНЫХ КУБИКОВ».
- ВЫ ЗНАЧИТЕ:
- 1 - ПРЯМО НА ПОВЕРХНОСТИ
- 2 - ГДЕ НА ВЕРХУ?
- Человек: 2
- Компьютер: ИХ ТРОЕ.
- Человек: Прикасались ли вы к какой-нибудь пирамидке, прежде чем положить зеленую на маленький кубик?
- Компьютер: ДА, ЗЕЛЕНЫЙ.
- Человек: Когда ты его взял?
- Компьютер: ПОКА Я СКЛАДЫВАЛ КРАСНЫЙ КУБ, БОЛЬШОЙ КРАСНЫЙ БЛОК И БОЛЬШОЙ ЗЕЛЕНЫЙ КУБ.
- Человек: Почему?
- Компьютер: ЧТОБЫ ИЗБАВИТЬСЯ ОТ ЭТОГО.
- Человек: Почему ты это сделал?
- Компьютер: ЧТОБЫ ОЧИСТИТЬ КРАСНЫЙ КУБ.
- Человек: Почему ты убрал этот куб?
- Компьютер: ПОСТАВИТЬ ЕГО НА БОЛЬШОЙ ЗЕЛЕНЫЙ КУБ.
- Человек: Почему ты это сделал?
- Компьютер: СОСТАВИТЬ КРАСНЫЙ КУБ, БОЛЬШОЙ КРАСНЫЙ БЛОК И БОЛЬШОЙ ЗЕЛЕНЫЙ КУБ.
- Человек: Почему ты это сделал?
- Компьютер: ПОТОМУ ЧТО ТЫ МЕНЯ ПРОСИЛ.
- Человек: Как ты это сделал?
- Компьютер: ПОСТАВИВ БОЛЬШОЙ КРАСНЫЙ БЛОК НА СТОЛ; ЗАТЕМ ОТПУСКАЕМ ЕГО; ЗАТЕМ ПОСТАВЛЯЕМ НА НЕГО БОЛЬШОЙ ЗЕЛЕНЫЙ КУБ; ЗАТЕМ ОТПУСКАЕМ ЭТОТ КУБ; ЗАТЕМ ПОСТАВЛЯЕМ КРАСНЫЙ КУБ НА ЭТОТ КУБ; ЗАТЕМ ОТПУСКАЕМ ЭТОТ КУБ.
- Человек: Сколько предметов вы прикоснулись, пока это делали?
- Компьютер: ИХ ЧЕТЫРЕ.
- Человек: Что поддерживал красный куб до того, как вы начали его очищать?
- Компьютер: ЗЕЛЕНАЯ ПИРАМИДА.
- Человек: Тогда слева от коробки было пять блоков.
- Компьютер: НЕТ, ТОЛЬКО ЧЕТЫРЕ: КРАСНЫЙ КУБ, ДВА БОЛЬШИХ ЗЕЛЕНЫХ КУБА И БОЛЬШОЙ КРАСНЫЙ БЛОК.
- Человек: Положите синюю пирамиду на блок в коробке.
- Компьютер: ОК.
- Человек: Есть ли что-нибудь, что больше любой пирамиды, но не такое широкое, как то, что ее поддерживает?
- Компьютер: ДА, СИНИЙ БЛОК.
- Человек: Делает шпиль
- Компьютер (перебивая): ИЗВИНИТЕ, Я НЕ ЗНАЮ СЛОВА «ШТИЛЬ».
- Человек: «Шпиль» — это стопка, содержащая два зеленых кубика и пирамиду.
- Компьютер: Я ПОНИМАЮ.
- Человек: Есть ли сейчас какие-нибудь шпили?
- Компьютер: НЕТ.
- Человек: Постройте один.
- Компьютер: ОК.
- Человек: Назовите самый большой блок «суперблоком».
- Компьютер: ОК.
- Человек: Вы изучали суперблок с тех пор, как мы начали?
- Компьютер: ДА.
- Человек: Почему ты это бросил?
- Компьютер: ПОД «ЭТОМ», Я предполагаю, ВЫ ИМЕЕТЕ В виду СУПЕРБЛОК.
- Я НЕ МОГУ ОБЪЯСНИТЬ НЕСУЩЕСТВУЮЩЕЕ СОБЫТИЕ.
- Человек: Есть ли что-нибудь справа от красной пирамиды?
- Компьютер: ДА, ЧЕТЫРЕ ВЕЩИ: КОРОБКА, КРАСНЫЙ КУБ, СИНЯЯ ПИРАМИДА И БЛОК НАЗВАНИЯ СУПЕРБЛОК.
- Человек: Спасибо.
- Компьютер: ДОБРО ПОЖАЛОВАТЬ!
Последствия [ править ]
SHRDLU считался чрезвычайно успешной демонстрацией искусственного интеллекта (ИИ). Это привело других исследователей ИИ к чрезмерному оптимизму, который вскоре был утрачен, когда более поздние системы попытались справиться с ситуациями с более реалистичным уровнем двусмысленности и сложности. [ нужна ссылка ] . Последующие усилия типа SHRDLU, такие как Cyc , имели тенденцию быть сосредоточены на предоставлении программе значительно большего количества информации, на основе которой она могла бы сделать выводы.
В интервью 1991 года Виноград сказал о SHRDLU: [3]
[...] знаменитый диалог с SHRDLU, где можно было подобрать блок и так далее, я очень тщательно прорабатывал, строчка за строчкой. Если вы сядете перед ним и зададите ему вопрос, которого нет в диалоге, существует некоторая вероятность, что он на него ответит. Я имею в виду, что если бы он был достаточно близок к одному из вопросов, которые были там по форме и содержанию, он, вероятно, получил бы ответ. Но не было никакой попытки довести его до такой степени, чтобы его можно было передать кому-нибудь, и они могли бы использовать его для перемещения блоков. И никакого давления по этому поводу не было. Давление было за что-то, что можно было бы продемонстрировать. Возьмем недавний пример — , Негропонте Медиа-лабораторию где вместо « погибнуть или опубликовать » написано «демо или умереть». Я думаю, это проблема. Я думаю, что ИИ сильно пострадал от этого, потому что это привело к « потёмкинским деревням », вещи, которые — учитывая то, что они на самом деле делали в демо-версии, выглядели хорошо, но если оглянуться назад, то оказалось, что не хватает структуры, чтобы заставить это действительно работать. в более общем плане.
Хотя SHRDLU не разрабатывался намеренно как таковой, он считается первым известным формальным примером интерактивной художественной литературы , поскольку пользователь взаимодействует с простыми командами для перемещения объектов в виртуальной среде, хотя ему не хватает четкого повествования, обычно присутствующего в жанре интерактивной фантастики. Игра 1976–1977 годов Colossal Cave Adventure широко считается первым настоящим произведением интерактивной фантастики. [4]
См. также [ править ]
Ссылки [ править ]
- ^ Виноград, Терри (1 января 1971 г.). «Процедуры как представление данных в компьютерной программе для понимания естественного языка» . hdl : 1721.1/7095 .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ «ШРДЛУ» . Стэнфордская группа по взаимодействию человека и компьютера (HCI) .
- ^ «Устное историческое интервью с Терри Алленом Виноградом» . Институт Чарльза Бэббиджа. 11 декабря 1991 г. hdl : 11299/107717 .
- ^ Монфор, Ник (2003). Маленькие извилистые отрывки: подход к интерактивной фантастике . Кембридж: MIT Press. стр. 84–85. ISBN 0-262-13436-5 .
Дальнейшее чтение [ править ]
- Виноград, Терри (24 августа 1970 г.). «Процедуры как представление данных в компьютерной программе для понимания естественного языка» (PDF) . Технический отчет MIT AI 235. Архивировано (PDF) из оригинала 3 октября 2020 г.
- Виноград, Терри (январь 1972 г.). «Понимание естественного языка». Когнитивная психология . 3 (1): 1–191. дои : 10.1016/0010-0285(72)90002-3 .
Внешние ссылки [ править ]
- Виноград, Терри (2001). «ШРДЛУ» . Архивировано из оригинала 17 августа 2020 г. - Страница SHRDLU Терри Винограда включает исходный код.
- (Неизвестно) (22 августа 2013 г.). «Воскресение ШРДЛУ» . Архивировано из оригинала 17 ноября 2017 г. - Переписанные версии SHRDLU, включая версию Java3D.
- Первая полная репликация диалога SHRDLU (июнь 2023 г.) как приложение экспериментальной системы NLI-GO на основе Go .
- «Как SHRDLU получила свое название» .