litbaza книги онлайнРазная литератураАрхеолог цифрового века – Том 1. 1966-1979 - Джимми Мехер

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 14 15 16 17 18 19 20 21 22 ... 44
Перейти на страницу:
человек-«пациент», но на самом деле это не так. ELIZA – это название самого диалогового симулятора, изобретенного Вейценбаумом, и аллюзия на персонажа пьесы Бернарда Шоу «Пигмалион»63 – девушку из бедной лондонской семьи, которую обучают манерам речи и поведения, принятым в высшем обществе. Это как бы должно намекнуть нам, что компьютер тоже может овладеть естественной человеческой речью.

«Личность» симулятора определялась загруженным в него сценарием. Первый сценарий, он же самый известный – «Врач» (продемонстрирован выше), – был разработан самим Вейценбаумом. В документальном фильме Rebel at Work64 («Бунтарь за работой») он рассказывает, почему выбрал именно такой вариант:

«И вдруг меня осенило: психотерапевт. Психотерапевт выслушивает пациента и задает ему вопросы. Неважно, связаны они со сказанным только частично или вообще не связаны – пациент истолковывает их по-своему, в зависимости от душевного состояния, поскольку исходит из предположения, что психиатр его понимает, что он умнее и что в его словах должен быть смысл – “не знаю, какой, но какой-то есть”. Из этой мысли постепенно и родилась концепция ELIZA.

“Так, посмотрим… – говорит психотерапевт. – Какие у вас с этим ассоциации?”

“Как проницательно! – думает пациент. – Этот психотерапевт точно угадал мое состояние. Думаю, я продолжу с ним работать!”»

В статье для журнала АВТ Вейценбаум особо отмечает, что ELIZA, конечно же, не «понимает» вопросов, которые ей задают. В конце концов, это всего лишь усложненный движок по генерации текста с примитивным парсером, который ищет совпадения в пользовательском вводе и строит ответы по определенным правилам. Гениальность сценария «Врач» состоит в том, что живой врач-психотерапевт (как минимум, с точки зрения неспециалиста) ведет себя примерно так же.

Впрочем, необходимо понимать, что стенограмма, отрывок из которой приведен в начале главы, иллюстрирует почти идеальную ситуацию, и было бы натяжкой вслед за Вейценбаумом назвать этот текст «типичной беседой». Стоит провести с ELIZA чуть больше времени, и неизбежно наступит момент, когда раскрывается ее сущность – а именно, что это всего лишь хитроумный салонный фокус. И проколы возникают не реже, чем удивительно точные ответы.

Написана ELIZA была на языке MAD65 (Michigan Algorithm Decoder, «Мичиганский декодер алгоритмов» – по месту создания: Мичиганский университет) с использованием библиотеки SLIP, которую написал в 1963 году сам Вейценбаум. Этот язык имел довольно ограниченное хождение, однако статья в журнале АВТ содержала столь подробное описание симулятора, что его получилось относительно без труда портировать на другие языки и платформы. Словом, получилось почти как с Adventure, код которой комментировал Дон Вудс.

По мере распространения программы первоначальная концепция диалогового симулятора как-то забылась, и система ELIZA стала просто «психотерапевтом по имени Элиза». В выпуске Creative Computing за июль-август 1977 года появилась версия на языке BASIC66, написанная Джеффом Шрегером и Стивом Нортом. В сопроводительном тексте Норт отмечал: «Программа, конечно, сильно урезана по сравнению с оригиналом, но она работает». Имеются в виду, прежде всего, ограничения BASIC и необходимость работать под 16 Кб ОЗУ. Однако даже в урезанном виде программа выглядела довольно впечатляюще и за следующие десять лет породила бесчисленное множество вариаций, подражаний и продолжений. Казалось, в 70-е и 80-е нельзя было найти персональный компьютер, в библиотеке которого не было бы хоть какой-то вариации ELIZA.

18. Поговори с «Элизой», часть 2

Итак, давайте разберемся, на что ELIZA способна, а на что нет. Для наглядности я решил воспользоваться готовой стенограммой, которая была приведена в том самом выпуске Creative Computing. Я постараюсь шаг за шагом показать, что происходит у программы, так сказать, «под капотом». (Я позволил себе только заменить IMSAI 8080 на TRS-80, чтобы сделать отсылку к предыдущей теме.) Эта стенограмма куда менее впечатляющая, чем та, которую включил в свою статью Вейценбаум. Отчасти это связано с упрощенной версией самой ELIZA, а отчасти с тем, что редакторы Creative Computing верно рассудили: обычный пользователь едва ли станет играть с программой в психотерапевта-пациента; он скорее постарается всеми правдами и неправдами «сломать» ее. С этой точки зрения я считаю приведенный пример более достоверной демонстрацией возможностей ELIZA и опыта взаимодействия с ней.

В основе программы лежит простейший алгоритм, который ищет во введенном пользователем тексте совпадения с теми или иными последовательностями символов. Вот эти последовательности в порядке убывания значимости (с приблизительным переводом на русский):

1. CAN YOU – МОЖЕШЬ ЛИ ТЫ/ТЫ МОЖЕШЬ

2. CAN I – МОГУ ЛИ Я/МОЖНО МНЕ

3. YOU ARE – ТЫ (УТВ.)

4. YOU’RE – ТЫ (УТВ.)

5. I DON’T – Я НЕ

6. I FEEL – Я ЧУВСТВУЮ (СЕБЯ)

7. WHY DON’T YOU – ПОЧЕМУ ТЫ НЕ/ПОЧЕМУ БЫ ТЕБЕ НЕ

8. WHY CAN’T I – ПОЧЕМУ Я НЕ МОГУ

9. ARE YOU – ТЫ (ВОПР.)

10. I CAN’T – Я НЕ МОГУ

11. I AM – Я

12. I’M – Я

13. YOU – ТЫ (+ГЛАГ.)

14. I WANT – Я ХОЧУ/МНЕ НУЖНО

15. WHAT – ЧТО

16. HOW – КАК

17. WHO – КТО

18. WHERE – ГДЕ

19. WHEN – КОГДА

20. WHY – ПОЧЕМУ/ЗАЧЕМ

21. NAME – ИМЯ/ЗОВУТ

22. CAUSE – ПРИЧИНА/ПРИЧИНЯЕТ

23. SORRY – ПРОСТИ/ИЗВИНИ

24. DREAM – СОН/СНИТСЯ

25. HELLO – ПРИВЕТ/ЗДРАВСТВУЙ

26. HI – ПРИВЕТ/ЗДРАВСТВУЙ

27. MAYBE – МОЖЕТ БЫТЬ

28. NO – НЕТ

29. YOUR – ТВОЙ/-Я/-Ё/-И

30. ALWAYS – ВСЕГДА

31. THINK – ДУМАЮ/-ЕШЬ

32. ALIKE – ПОХОЖ/-А/-Е/-И

33. YES – ДА

34. FRIEND – ДРУГ

35. COMPUTER – КОМПЬЮТЕР

Найдя все возможные совпадения, программа начинает подбирать ответ. Например, триггер на слово «КОМПЬЮТЕР» сработает только в том случае, если предыдущие 34 варианта в пользовательском вводе не найдены.

НАЧАЛО

ПРИВЕТ! МЕНЯ ЗОВУТ ЭЛИЗА. В ЧЕМ ТВОЯ ПРОБЛЕМА

? Я IBM 370

ТЫ ЗДЕСЬ ПОТОМУ, ЧТО ТЫ IBM 370

ELIZA выбирает ответы из соответствующего совпадению списка по порядку, без рандомизации. В этом примере за основу берется «Я_»; алгоритм отсекает местоимение, оставляя только «IBM 37067»*, после чего выбирает первую заготовку «ТЫ ЗДЕСЬ ПОТОМУ ЧТО ТЫ…» – и подставляет в пропуск конец фразы, введенной пользователем.

*Да, кстати, вся эта «беседа» сочинена ради хохмы. IBM 370 был, наверное, самым большим и мощным мейнфреймом того периода; отсюда и высокомерное отношение к «малютке» TRS-80.

? ДА, МНЕ НУЖЕН НОВЫЙ ПРИНТЕР

ЗАЧЕМ ТЕБЕ НУЖЕН НОВЫЙ ПРИНТЕР

Здесь два совпадения: «ДА» и «МНЕ НУЖЕН», – однако «МНЕ НУЖЕН» имеет более высокий приоритет (14). ELIZA отбрасывает всю часть фразы до «НОВЫЙ ПРИНТЕР» (куда, кстати,

1 ... 14 15 16 17 18 19 20 21 22 ... 44
Перейти на страницу:

Комментарии
Минимальная длина комментария - 20 знаков. Уважайте себя и других!
Комментариев еще нет. Хотите быть первым?