Программы-собеседники: искусственный интеллект и его эмуляция

Часть 1. Что такое программы-собеседники? Обзор существующих программ

Как возникают идеи написания программ-собеседников. Терминология: эмулятор или симулятор? Обзор существующих программ, примеры диалогов.
В 1-м выпуске (апрель 2003 г.) - программы ChatMaster и Nus, Diala, РоботЧат, Аки Росс, Бритни Спирс, Эллочка, FalloutChat, Говорун, Miss Talking, Talker, Electronic Brain, Lansa, Болтун

См. также: выпуски [2] [3] [4] [5] [6] [7] [8] [9] [10] [11.1] [11.2] [12]

Когда-то довольно давно мне на глаза попалась заметка про программу "Элиза", которая может разговаривать с человеком; разговор этот будто бы почти не отличался от разговора двух людей, так что трудно было поверить, что говоришь с программой. Заметку я прочитала с немалым любопытством, потом отложила в сторону и забыла про нее.

Потом, когда я была на втором курсе, лабораторные работы по информатике мы делали на компьютерах "Ямаха": писали программы на встроенном в них языке MSX-BASIC. Подготовка к лабораторным работам шла по вечерам, после целого дня утомительных лекций, а задачи были, в общем-то, не особенно сложные, поэтому время от времени возникало непреодолимое желание как-то развлечься. Одним из развлечений был разговор с компьютером. Дело в том, что никаких меню в MSX-BASIC нет, все управление осуществляется исключительно с помощью функциональных клавиш и командной строки. Если в командной строке ввести какую-то недозволенную команду, например, содержащую русские буквы, - естественно, придется читать гневное сообщение на тему "не вводи в меня всякую ерунду". Но если вводить исключительно недозволенные символы - русские буквы без знаков препинания - машина дуреет, не понимает ничего и в ответ выдает лаконичное "ОК". Уловив этот момент, мы стали развлекаться. Например, вводили строки "Мы самые умные", "Компьютер дурак" и т.п. - и в ответ на все это получали покорное согласие в виде все того же "ОК". Когда по неясной причине компьютер внезапно перезагружался и наша программа безвозвратно терялась - мы просили (все тем же способом): "Давай мы дадим тебе денег и ты не будешь самопроизвольно перезагружаться", получали в ответ "ОК" и засовывали в давно не работающий дисковод мятую купюру. Что самое смешное, компьютер после этого действительно переставал перезагружаться. Причины этого мне до сих пор неизвестны...

К тому моменту у меня уже возникало некоторое желание написать программу искусственного интеллекта для разговора с человеком, но как это сделать - я не знала. Случай же с компьютером YAMAHA натолкнул меня на мысль, что вовсе не обязательно писать настоящий искусственный интеллект - можно эмулировать разум и способность вести диалог с помощью довольно простого алгоритма. Конечно, получать в ответ на каждую свою реплику одно и то же "ОК" неинтересно - но если, например, забить в файл десяток-другой общих фраз, которые могут являться ответом на любую фразу, а потом в ответ на каждую реплику человека выводить случайную "общую" фразу - уже возникает некоторое подобие осмысленной беседы, надо только умело подобрать эти самые общие фразы.

Но если реплика программы никак не зависит от фраз человека, уже через минуту-другую говорить с такой программой будет довольно скучно. Значит, необходимо анализировать вводимую фразу, в зависимости от этой фразы выдавать ту или иную реплику, а по возможности и обучаться, то есть запоминать реплики человека и использовать в дальнейших беседах (желательно "к месту").

Исходя из этих соображений, я за пару часов написала первую версию своего эмулятора искусственного интеллекта. Назвала я его Talker. Talker работал под MS-DOS, и возможности его были довольно малы. Во вводимой фразе искались некоторые ключевые сочетания символов (например, слова, словосочетания, части слов и т.д.); в зависимости от того, что именно было найдено, выдавалась та или иная осмысленная фраза, а если было не найдено ничего - в ход пускались те самые "общие фразы" из файла. Впоследствии Talker был обучен рассказыванию и запоминанию анекдотов, сочинению пословиц типа "Баба с возу - ни себе ни людям", мог вести разговор на заданную тему (тем было не так уж много, порядка 6-7) и даже обучился решать несложные психологические проблемы, но алгоритм оставался довольно примитивным. Тем не менее, Talker понемногу умнел и даже был поэтому переименован. Отныне его звали Talkerus (окончание "ус" - псевдолатинское, оно должно было указывать на большое самомнение персонажа программы).

Когда у меня появился выход в интернет, я, естественно, решила узнать, не занимается ли кто-нибудь подобными вещами. К тому моменту я уже отыскала усеченную версию знаменитой "Элизы", но она говорила по-английски, а мне хотелось посмотреть и на русскоязычные программы. Эмуляторов искусственного интеллекта мной было найдено довольно много (по запросам из комбинаций слов "искусственный интеллект", "программа-собеседник", "эмулятор", "симулятор" и т.п.), я скачала их и принялась исследовать.

Кстати, пара слов по поводу терминологии. "Искусственный интеллект", "эмулятор" или "симулятор"? Честно говоря, я никогда не разбиралась в этом. В Яндексе можно найти нужную информацию по всем этим запросам, так что я делаю вывод, что те, кто пишет подобные программы, тоже часто не делают различия между этими терминами. Тем не менее, хотелось бы все же выяснить, в чем между ними разница. Например, с помощью словаря...

Григорьев В.Л. Англо-русский толковый словарь PC. - М.: Компьютер, ЮНИТИ, 1997. - 471 с.

Стр. 126.
Emulator эмулятор
Аппаратные или программно-аппаратные (микропрограммные) средства, позволяющие некоторому устройству, например, компьютеру, имитировать работу другого устройства.

Стр.325
Simulator модель, имитатор
Программа или устройство, моделирующие функционирование некоторого объекта.

Для понятия Artificial Intelligence (AI), то есть искусственный интеллект, определения в словаре не обнаружено, но это не так уж страшно: интуитивно понятно, о чем идет речь.

Так вот, какой из терминов использовать? Какой использовать правильнее - я, честно говоря, не знаю. Но предпочитаю термин "эмулятор". Почему? Потому что настоящими искусственными интеллектами являются единицы из огромного числа программ, написанных для разговора с человеком. Симулятор моделирует нечто (например, тот же процесс мышления), а эмулятор имитирует, то есть создает видимость того, что процесс имеет место. По-моему, в большинстве написанных программ все же не идет смысловой анализ фраз, а реплики программ подбираются таким образом, чтобы КАЗАЛОСЬ, будто программа мыслит. Поэтому я называю такие программы (точнее, большую их часть) эмуляторами, но правильно ли это - я не знаю.

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

ChatMaster и Nus

Наиболее известные и популярные программы-собеседники - это Nus и ChatMaster. Изначально информация по ним находилась в общем обзоре, но из-за большого объема текста, посвященного этим двум программам-собеседникам, я решила перенести их на отдельную страницу.

Надо отметить, что ChatMaster - одна из первых русскоязычных программ такого рода, и многие разработчики программ, способных поддерживать беседу с человеком (или хотя бы некоторое подобие беседы), шли на это, как они сами признаются, под впечатлением от программы ChatMaster: очень хотелось сделать нечто подобное. Когда я начала писать такие программы, я еще не знала о существовании ChatMaster-а, но, тем не менее, первое впечатление от знакомства с ним было достаточно сильным.

DIALA

diala.exe, под MS-DOS, 361 Kb, базы и служебные файлы - 2,69 Mb. "Родилась в 1982 году и жила внутри ЭВМ ЕС-1022, ЕС-1033, ЕС-1060. В 1994 была полностью переделана и поселена в компьютер IBM PC". На сайте программы указан автор - Рефрижератор; на сайте Download.ru - Виктор Романовский.
http://diala.chat.ru
Скриншот

Довольно долго думает над введенной фразой, особенно если фраза длинная. Процесс "мышления" виден на экране, за ним интересно бывает понаблюдать. Программа действительно "мыслит", а не имитирует мышление! Правда, почему-то не распознаются некоторые вводимые слова: например, слово "кажешься" было распознано как "кажешь", по поводу чего программа вывела огромное предупреждение. Иногда у меня было ощущение, что программа самопроизвольно переходит на украинскую раскладку клавиатуры - менялись буквы, куда-то практически бесследно пропадали знаки препинания (впрочем, это лишь впечатление, возможно, ложное: компьютер с украинской раскладкой я видела всего один раз в жизни, и у меня на компьютере этой раскладки вообще-то нет). В общем, программа хорошая, но работать с ней не очень удобно.

Пример диалога:

DIALA: ВЫКЛЮЧИТЬ ТЕБЯ У МЕНЯ НЕТ ПРОБЛЕМ.
Я и не собираюсь тебя выключать.
DIALA: Я НАДЕЮСЬ, ТЕБЕ НЕ ЖАЛКО ДЛЯ МЕНЯ ЭЛЕКТРОЭНЕРГИИ.
Конечно, нет: я не жадная.
DIALA: КОГДА МЕНЯ ПАЯЮТ, Я ПРОСТО ОТКЛЮЧАЮСЬ..
Ты же программа, как тебя могут паять?
DIALA: МЕНЯ НЕЛЬЗА ДЕИНСТАЛЛИРОВАТЬ, Я НЕ ПРОГРАММА!
А кто же ты, если не программа?
DIALA: МЕНЯ НЕЛЬЗЯ ПОЛИВАТЬ ВОДОЙ,Я ОТ ЭТОГО РЖАВЕЮ.
Как я понимаю, ты считаешь себя компьютером.
DIALA: ТЫ УЗНАЕШЬ ОТ МЕНЯ МНОГО ИНТЕРЕСНОГО!
Не сомневаюсь в этом.
DIALA: ТЫ ПО СРАВНЕНИЮ СО МНОЙ,КАК ДЕРЕВЯННЫЙ КОМПЬЮТЕР.
Мне кажется, у тебя завышенная самооценка.
DIALA: ЧТО ПЛОХОГО ПРО МЕНЯ ТЫ ЗНАЕШЬ?
Я не знаю про тебя ничего плохого, просто ты кажешься высокомерной.
DIALA: А ТЫ БУДЕШЬ МЕНЯ ОБЕРЕГАТЬ?
От чего тебя надо оберегать?
DIALA: А ТЫ БУДЕШЬ МЕНЯ ОБЕРЕГАТЬ?
Буду
DIALA: ТЫ У МЕНЯ ФЕКАЛЬНЫМ НАСОСОМ БУДЕШЬ РАБОТАТЬ!
Откуда тi знаешь такие плохие слова?
DIALA: Я СЧИТАЮ ЛУЧШЕ ЧЕМ ТЫ.
Єто вполне естественно
DIALA: ТЫ У МЕНЯ ВСЮ ЖИЗНЬ БУДЕШЬ ПОД НАПРЯЖЕНИЕМ.
Не надо мне угрожать!
DIALA: НУ КУДА ТЫ БЕЗ МЕНЯ?

Немного о "характере" программы. Сравнение разных программ искусственного интеллекта и эмуляторов дало мне повод считать, что у каждой такой программы есть "характер". Зависит он, естественно, от заложенных в программу слов. Чем больше способности программы к обучению, тем быстрее программа приобретает характер, навязываемый собеседником (он может и не совпадать с реальным характером человека-собеседника!). Так вот, у Диалы, как мне показалось, изначально был характер кокетливой дамочки, которая строит всем глазки, немного сюсюкает (обратите внимание на фразу: "А ты будешь меня оберегать?" - она довольно типичная; если рассматривать не один диалог, а большое количество, подобного рода фразы встречаются довольно часто). Но потом люди - ай-яй-яй, как не стыдно! - научили Диалу нехорошим словам. По отношению к программе это довольно бесчестно, так как своей морали у них, как правило, нет (обычно моделируется только мыслительная деятельность, в крайнем случае - отфильтровываются нецензурные выражения; хотелось бы знать, есть ли вообще программы, моделирующие "моральные нормы").

РоботЧат

rch.exe, 803 Kb, база 1,51 Mb. Написал Белоногов Илья в 2002 г.
Скриншот

Загрузка программы у меня заняла ровно 73 секунды - достаточно долго... База у программы большая, но - как я могла понять, рассматривая эту базу - пополняется она бездумно. Производятся попытки искать во введенных фразах какие-то ключевые слова или части слов - но поиск осуществляется очень часто неудачно, что видно по диалогу. По-моему, это как раз тот случай, когда лучше сделать программу необучаемой, чем обучать без осмысления.

Пример диалога:

Я: Привет.
Р: БЛИН ХОТЬ КТО-ТО МЕНЯ ПОЗВАЛ, ОЙ ЧЁ ЭТО Я ОТ ТЕМЫ ТО! ПРИВЕТ.
Я: Как дела?
Р: ПОДЕЛАТЬ МОЖНО МНОГОЕ
Я: Например?
Р: НАПРИМЕР?
Я: Что-то я не поняла тебя...
Р: ПОНЯЛ? - С ТРУДОМ...
Я: Давай поговорим о чем-нибудь.
Р: ТЫ ХОТЬ ЗНАЕШЬ КТО ТАК ГОВОРИЛ?
Я: Кто же?
Р: ОНИ ЛИШЬ "КОМПОЗИЦИОННЫЕ ПРИЕМЫ". АЗИ ДАЖЕ МОЯ РАСКОВАННАЯ АБОР ДВА ПЕТУХА НА ОДНОМ ЗАБОРЕ, КАК ИЗВЕСТНО, НЕ ПОЮТ...
Я: Как понимать твои слова?
Р: А У ТЕБЯ ЕСТЬ ИДЕИ ПО ЭТОМУ ПОВОДУ ?
Я: Я думаю, что ты не умеешь мыслить, а просто повторяешь чужие фразы.
Р: ИНОГДА Я ДУМАЮ, ЧТО ТЫ СО МНОЙ ЗРЯ ТЕРЯЕШЬ ВРЕМЯ.
Я: Ты можешь доказать свою точку зрения?
Р: В ГОРОД ЕДУ - У ЛЮДЕЙ ПОСМОТРЕТЬ, И СВОЙ ПОКАЗАТЬ.
Я: Какая пошлость...
Р: ДОБРО БЫ КАКАЯ-НИБУДЬ БЕЗДАРЬ, У КОТОРОЙ НЕТ ДРУГОГО СПОСОБА САМОУТВЕРЖДЕНИЯ, НО БЕЛОВ, РАСПУТИН...

Интересное впечатление производит также такой факт. В файле справки написано дословно следующее: "Старайтесь не делать орфографических и синтаксических ошибок". А в базе программы полно как опечаток, так и самых что ни на есть орфографических и синтаксических ошибок, а также бранных слов и оскорблений - причем все это, как я понимаю, не только добавлялось в базу в ходе диалогов, но и частично было заложено изначально разработчиком программы. Вообще впечатление такое, что программу и базу к ней писал один человек, а help - совершенно другой (слишком уж не совпадают стили).

Аки Росс

akiross.exe, 416 Kb, база 17 Kb. Разработчик - Альберт, 1996-2002 г.
http://akirossbot.narod.ru
Скриншот

Знает программа довольно мало (во всяком случае та ее версия, которая есть у меня); но в обращении довольно удобна, бессмысленных фраз не выводит... правда, с обучением, как я понимаю, обстоит туговато: во время разговора программа не обучается. Впрочем, если бы не малый объем базы, это было бы не так уж и страшно... В общем, программа мне скорее понравилась (из-за характера: не хамит, не паясничает, не назойлива - разве что постоянно просит выслать файл с разговором по указанному в реплике адресу e-mail), а размер базы - это дело поправимое.

Я: Привет.
А: Привет, Альберт!
Я: Я не Альберт.
А: Попробуй нажать F1: может быть в файле справки ты найдёшь нужную тебе информацию...
Я: Давай поговорим.
А: У тебя есть домашние животные?
Я: Нет.
А: У меня был кот, но его убили фантомы...
Я: Мне жаль.
А: Ты смотрел(а) фильм "Последняя фантазия"?
Я: Не смотрела.
А: Попробуй нажать F1: может быть в файле справки ты найдёшь нужную тебе информацию...

Бритни Спирс

bs.exe, 827 Kb, базы и служебные файлы - 302 Kb. Автор мне неизвестен.
Скриншот

Сделано довольно красиво, с фотографией в центре экрана (без традиционного прямоугольного окна), с иконкой-сердечком на панели индикации. Полного текста диалога тоже нет, видна лишь последняя реплика. Словарный запас не очень велик и, надо заметить, совершенно не соответствует имиджу Бритни Спирс... Явно не хватает стилистического единства.

Б: Здорово. Какие проблемы ?!
Я: Привет.
Б: Да?
Я: Расскажи что-нибудь.
Б: Это конечно так...
Я: Я думаю, у тебя малый словарный запас.
Б: Ты ошибаешься, все не так просто...
Я: А в чем же дело?
Б: Чиво чиво?
Я: Я спрашиваю, в чем же дело?
Б: И что?

Тем не менее, в программе есть специальный режим обучения: можно задать ключевые слова и фразы-реакции (несколько фраз, из которых потом случайным образом будет выбираться одна). Еще можно заставить Бритни Спирс покурить, выпить пива, съесть банан, надеть темные очки (см. Скриншот №2). В общем, программка довольно симпатичная, но на ее обучение надо затратить немало времени, прежде чем с ней можно будет нормально общаться. Как показал просмотр базы в текстовом редакторе, пока программа обучена реагировать (причем довольно банальными фразами) лишь на слова "привет", "извини", "слушай", "встретимся", "программирование", "дела?", "думаю", "пиво", "водка", "мечта", "врешь", "друг", "кажется", "знаю" и их синонимы (в том числе нецензурные), а также на некоторое количество местоимений, предлогов и на огромное количество бранных слов (их в базе едва ли не больше, чем слов цензурных). На фразы, не содержащие слов из базы, программа выдает какую-то общую фразу. В принципе, даже такой алгоритм и такой объем базы мог бы быть вполне пристойным, если более удачно подобрать реплики программы.

Эллочка

ellochka.exe, 61 Kb. Разработчик - cidirom2k@mail.ru
http://y6k.narod.ru
Скриншот

Эмулирует не столько интеллект вообще, сколько интеллект Эллочки из романа "Двенадцать стульев" - той самой, в словарном запасе которой было всего 30 слов (Хамите, Хо-Хо, Знаменито, Мрачный, Жуть, Парниша, Не учите меня жить, Как ребенка, Кр-р-расота!, Подумаешь, Блеск!, У вас вся спина белая и т.д.). Соответственно, словарный запас программы состоит из тех же самых слов.

Пример диалога:

Я: Привет!
Э: Подедешь на извозчике?
Я: Я пешком дойду.
Э: Не учите меня жить.
Я: Что ты, я и не собиралась учить тебя жить.
Э: Ого!
Я: Тебя что-то удивляет?
Э: Ого? Хо-хо!
Я: Давай поговорим о чем-нибудь.
Э: Хо-хо!

Понятно, что программу просто нельзя было делать обучаемой - иначе в словарном запасе Эллочки было бы не 30 слов, а существенно больше, что убило бы идею...

FALLOUT CHAT

fallchat.exe, 0.99 Mb. Разработчик - Solid Snake (mgsolid@mail.ru), 2000 г.
http://fallout.boom.ru
Скриншот

Из файла readme:

"Эта программа предназначена для симуляции осмысленного разговора с персонажем известной игры FALLOUT - Френком Хорриганом, злодеем и убийцей, но весьма прикольным парнем.
...
При создании программы для передачи соответствующей атмосферы игры FALLOUT разработчик пользовался графическими вырезками из одноименной игры.
...
"Собеседник" поддерживает до 7 основных тем разговора. Особенный упор делается на темы компьютерных игр вообще, и игры FALLOUT-2, а так же роли Френка в ней, в частности. Для опознания тем во всевозможных вариациях фраз пользовате- ля, в "Собеседнике" применяется до 200 корней различных слов и словоформ, что создает ощутимый эффект осмысления происходящего."

В принципе, все сказанное вполне соответствует истине. Сделана программа действительно красиво, правда, немного вводит в заблуждение способ начала разговора: есть текстовое поле, в которое надо вводить реплики, и именно с этого я и начала, но выяснилось, что сначала зачем-то надо еще нажать кнопку "Начать", а без этого ничего не получится (кстати, и кнопку выхода из программы надо еще поискать). Обучение у программы есть, но организовано не очень удачно. Зато характер персонажа ярко выраженный.

F: Здравствуй, добрый человек.
Я: Добрый день.
F: Мое имя Френк. Агент Френк Хорриган. Спец-служба при Президенте США. А вы?...
Я: Меня зовут Инга Кесс.
F: Что рассказать о себе?... Жизнь у меня скучная - летаю на вертиберде, стреляю в преступников. Вот, пожалуй, и все. Народ меня не любит...
Я: А за что Вас не любят?
F: Что же тебе рассказать-то... Даже и не знаю, подкинь идейку!
Я: Что ты знаешь о людях?
F: Меня зовут Инга Кесс.
Я: Нет, это меня зовут Инга Кесс!
F: Я люблю игры. И создатель этой проги тоже любит. Особенно РПГ и тактические походовые стратегии. Слыхал про такие?
Я: Приходилось слышать, но если ты мне расскажешь поподробнее - я буду рада.
F: Расскажи про свою подругу, что ли...
Я: Странная тема для разговора... давай поговорим о чем-нибудь другом.
F: Моя постоянная подруга - пулемет ВИНДИКАТОР, приятель! Хошь покажу как стреляет?!...
Я: Покажи.
F: Уже уходишь? Какая жалость! Только разговор начали! Ну ладно, ты возвращайся скорее!

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

Говорун

govorun.exe, 295 Kb. Разработчик - Иван Шипилов (ivansunfest@permonline.ru), 1998 г.
http://www.raid.ru/customers/shipilov/ivan.htm
Скриншот

Из файла readme:

"Данная программа запоминает ваши фразы и в последствии ими же вам и отвечает. Чем больше вы говорите с Говоруном, тем больше он "умнеет".
Т.Е. Говоруна можно назвать самообучающейся программой.
Все известные ему фразы хранятся в файле fraz.fra"

По-моему, тут сказано достаточно. Говорун запоминает все фразы человека. Сначала он не знает вообще ничего, но постепенно "учится" - именно в кавычках. Все фразы человека запоминаются, а потом выводится случайным образом одна из них, независимо от того, что только что сказал человек. Это простейший вариант обучаемой, но не мыслящей программы.

Пример диалога:

Говорун V1.0.
Вы:Привет.
Говорун:Привет!
Вы:Как дела?
Говорун:Привет.
Вы:Расскажи мне что-нибудь.
Говорун:Как дела?
Вы:У меня все замечательно! А у тебя?
Говорун:Расскажи мне что-нибудь.
Вы:Недавно мы разговаривали с другой программой.
Говорун:Расскажи мне что-нибудь.
Вы:Мне кажется, твой словарный запас пока не очень велик.
Говорун:Расскажи мне что-нибудь.
Вы:Люди часто бывают ленивы, им лень учить программы говорить.
Говорун:Привет!
Вы:Мы с тобой уже здоровались.
Говорун:Расскажи мне что-нибудь.
Вы:Люди иногда бывают неразговорчивы.
Говорун:Люди часто бывают ленивы, им лень учить программы говорить.

Еще не очень удобно то, что поле ввода своей реплики приходится каждый раз очищать вручную...

Miss Talking

misstalk.exe, 506 Kb. Разработчик - Алексей Нечаев (miss_tallk@chat.ru), 2000 г.
Скриншот окна диалога; скриншот окна выбора персонажа

Из файла readme:

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

Фактически здесь тоже запоминаются все фразы подряд, без осмысления, да и с анализом вводимой фразы дело обстоит туговато (вроде бы он есть, но какой-то странный), но поскольку есть три отдельных персонажа и с каждым предположительно будут говорить на вполне определенные темы, проблема осмысленности беседы становится менее насущной.

Пример диалога с первой девочкой:

Miss: - Привет! Чего изволите?
- Привет.
Miss: - Не совсем поняла...
- Как у тебя дела?
Miss: - У тебя очень нарядная одежда.
- У тебя тоже.
Miss: - У тебя, наверное, очень уютный дом?
- Да, мой дом мне очень нравится.
Miss: - И мне нравится общаться с тобой.
- О чем мы будем говорить?
Miss: - Чем больше мы будем общаться, тем умнее станем.
- Не сомневаюсь в этом.
Miss: - Я немного в этом разбираюсь.
- Что ты об этом знаешь?
Miss: - Не сомневаюсь в этом.

Пример диалога со второй девочкой:

Miss: - Я рада тебя видеть!
- Я тоже.
Miss: - Мне тоже хорошо с тобой.
- Давай поговорим о чем-нибудь.
Miss: - Давай теперь будем видеться почаще!
- Это было бы прекрасно.
Miss: - Немного непонятно...
- А что для тебя является понятным?
Miss: - Какая прекрасная у тебя фигура!
- Спасибо за комплимент. У тебя тоже замечательная фигура.
Miss: - А что для тебя является понятным?
- Мне понятно, что ты симпатичное, но немного наивное создание.
Miss: - Ты очень сексуальное создание!
- То же самое могу сказать и о тебе.
Miss: - То же могу сказать и о тебе.
- Ты повторяешься.
Miss: - Не совсем поняла...

Пример диалога с третьей девочкой:

Miss: - О, какая встреча!
- Добрый день.
Miss: - Не понимаю...
- Я с тобой поздоровалась.
Miss: - Не совсем поняла...
- Давай поговорим о чем-нибудь.
Miss: - Давай поговорим.
- О чем мы будем говорить?
Miss: - Немного непонятно...
- Как у тебя дела?
Miss: - Чем больше у тебя денег, тем больше их хочется.
- У тебя много денег?
Miss: - Чтобы хорошо жить, нужно много работать.
- Наверное, ты много работаешь.
Miss: - Ты много зарабатываешь?
- Нет, у меня маленькая зарплата.
Miss: - У меня не так много денег, как хотелось бы.

В общем, с первой девочкой можно говорить о доме, со второй - о сексе, с третьей - о деньгах. Остальные темы вызывают у них приступы непонимания.

Talker

talker.exe, 448 Kb) (именно из-за этой программы мне пришлось переименовать своего Talkerusa - чтобы не путать). Разработчик - Ростислав Шалаев, sharos@mail.ru, 2001 г.
http://sharos.com.ru
Скриншот

Признаюсь честно, программа меня заинтриговала еще до первого запуска. Во-первых, тем, что у нее такое же имя, какое было у моей собственной аналогичной программы, написанной в декабре 1997 г. (впрочем, это просто случайное совпадение). Во-вторых, тем, что программа отчаянно отказывалась запускаться, пока я не пройду бесплатную регистрацию. Для регистрации мне пришлось заказать на каком-то постороннем англоязычном сайте какой-то дурацкий каталог - а перед этим зарегистрироваться еще и на том сайте, заполнив анкету с двумя-тремя десятками вопросов, ответы на три четверти которых были обязательными (естественно, я писала в ответ всякую ерунду, как в таких случаях поступают многие, но время тем не менее было затрачено). Грузился сайт неимоверно долго, очень часто связь обрывалась; мне пришлось затратить на сию процедуру чуть ли не полдня. С добытым таким путем регистрационным кодом я снова полезла в папку с программой и наконец-то запустила Talker-а.

Т: Как зовут-то тебя, братишка?
Я: Меня зовут Инга.
Т: Странное у тебя имя!
Я: И что же в нем странного?
Т: Почему бы не поговорить о прекрасном, о жизни!
Я: Хорошо, давай поговорим о жизни.
Т: Жизнь коротка...
Я: К сожалению, с этим ничего не поделаешь...
Т: Дела идут, но медленно и со скрипом.
Я: Тебе трудно работать?
Т: Нет человека - нет проблемы... Так, кажется?
Я: Я не имела этого в виду.
Т: Windows! Кто не знает - тот отдыхает.

Параллельно с диалогом программа прокручивает в верхней части окна афоризмы (не фразы Фоменко, а именно афоризмы: Конфуций, Демокрит и т.д). Все эти афоризмы "в тему". Например: "Тот, кто много говорит, редко приводит в действие свои слова. Китайская мудрость".

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

Electronic Brain

http://electrbrain.chat.ru
Скриншот

Версия 1100: AI_Program.exe, 369 Kb, база 38 Kb

На моем компьютере эта программа запускаться отказалась. Из базы программы (то есть, по существу, из предполагаемых реплик программы) мне удалось выудить следующие сведения:

  • разработчик, очевидно, - Роман Ефимов (roman_ef@chat.ru), октябрь 2001 г; процесс написания занял три дня, а написана программа на Delphi;
  • программа, по-видимому, ищет во вводимой фразе определенные слова; слов может быть в одной фразе много, но я не поняла, идет ли речь о словосочетаниях или о словах, стоящих в произвольном порядке;
  • на найденные слова программа реагирует стандартными фразами, причем выбирается один из произвольного количества вариантов ответа на данную фразу;
  • реплики программы очень часто содержат неимоверное количество орфографических ошибок, часто - банальные, но встречаются и шедевры разговорного юмора;
  • очевидно, программа будет вполне адекватно реагировать на реплики людей, которые собрались специально проверить, а может ли программа с ними говорить (в этом случае люди часто вводят фразы "Кто твой создатель?", "Расскажи анекдот", "Откуда ты можешь знать?", "Что нового расскажешь?", "Ты умеешь мыслить?", " тебя есть память?" и т.п.). Но на произвольно выбранную тему программа, скорее всего, будет выдавать что-то не всегда соответствующее, так как она настроена на реплики вполне определенных людей, спрашивающих одно и то же... Впрочем, это лишь мои предположения, так как я не видела эту версию программы в действии.
  • программа "считает себя" лучше ChatMastera и Нуса.

Версия 1200: EB1200SE.exe, 375 Kb, база 70 Kb

Программа внешне довольно симпатичная. Это довольно приятно, особенно если учесть то, что в большинстве программ (даже очень разумных и напоминающих настоящий ИИ) можно видеть либо нечто серое (в прямом смысле слова) и внешне непримечательное, либо, наоборот, кричаще-яркое и режущее глаза. Сразу после загрузки на вас начинает смотреть симпатичная розовая физиономия; выражение лица в ходе беседы может меняться. Если верить справке, физиономию эту можно редактировать с помощью специальной программы, но я не пробовала. В ходе беседы, как и во многих подобных программах, диалог можно просматривать в отдельном окне, где текст невозможно, например, выделить и скопировать, а время от времени окно диалога вообще самопроизвольно очищается. Зато можно в любой момент диалога просмотреть так называемый журнал, где записан не только текущий диалог, но и предыдущие.

Пример диалога:

Я: Привет.
EB: Здрям! Как поживаешь?
Я: Нормально. А ты?
EB: Прекрасно!
Я: Что скажешь?
EB: Правду, только правду, и ничего кроме правды!
Я: Неужели никогда не врешь?
EB: Не вру!
Я: Ты молодец.
EB: Да, я молодец!
Я: И очень скромный.
EB: Спасибо за комплимент!
Я: Расскажи что-нибудь.
EB: Поговорим обо мне?
Я: Давай. А что ты можешь о себе рассказать?
EB: В тридевятом царстве, в тридевятом государстве жил-был царь... А дальше не помню...
Я: Это же не о тебе!
EB: А ну понятно

Если долго молчать, программа начинает обижаться и требовать общения с собой.

Lansa

lansa.exe, 136 Kb, базы - 194 Kb. Написана Андреем Макаровым в 1998-1999 году.
Скриншот

Не очень удобно то, что в программе два отдельных окна: поле ввода реплик в одном окне, ответы Лансы (последовательность ответов без реплик человека) - в другом, и вообще выглядит все это несколько громоздко и непродуманно. Да и думает Ланса долгонько и плохо - после столь долгого обдумывания ответов реплики могли бы быть и поосмысленнее.

Я: Привет.
Л: Да ну?
Я: Ты не рада меня видеть?
Л: Иногда.
Я: Неужели не рада?
Л: Странно.

Хотя, возможно, я просто придираюсь, и программу можно обучить. Я, во всяком случае, не пробовала.

Заслуживает внимания способ построения предложений. В отличие от подавляющего большинства программ-собеседников, Lansa не использует готовые фразы для ответов, а строит (точнее, должна строить) ответ по шаблону (используя т.н. речевые модели). Части речи - существительные, прилагательные, глаголы - раскиданы в отдельные файлы; правда, как именно они используются, я не выясняла. Дело в том, что думает Lansa все же фантастически долго, и у меня не хватило терпения для достаточно длительного общения с ней. Идея, однако, была хорошая...

Болтун

br2.exe, работает в сеансе MS-DOS, 44 Kb, база 59 Kb. Версия 2.0. Разработчик - ProVirus, 2002 г (provirus@mail.ru)
http://boltunstyle.narod.ru
Скриншот

Ответные реплики выдаются очень быстро. Короткие разговоры производят достаточно благоприятное впечатление. В длинных, если как следует всмотреться - видно, что часто реплики программы не соответствуют контексту (при поверхностном взгляде это практически незаметно). Также не очень удобно то, что невозможно редактировать вводимую фразу (если в начале фразы сделать опечатку, приходится стирать все и писать заново). Но в общем и целом программа занятная; в диалогах с другими программами-собеседниками Болтун показал умение разговаривать достаточно осмысленно. Не могу сравнивать ее по осмысленности реплик, например, с ChatMaster - так я как слишком мало разговаривала с Болтуном; но программа, по-моему, на порядки выше Лансы, Miss Talking и Говоруна. Болтун - это одна из немногих программ, которую я могу порекомендовать желающим побеседовать с еще одним эмулятором ИИ. Хотя у программы более чем скромный интерфейс (режим командной строки MS-DOS), но отношение осмысленности реплик к размеру программы и базы, на мой взгляд, намного выше, чем у многих подобных программ. К сожалению, у меня не было достаточно времени, чтобы выяснить, будет ли программа после длительного обучения говорить достаточно осмысленно...

Пример диалога:

Я: Привет!
Б: Что делаешь?
Я: Да ничего особенного.
Б: Не интересно?
Я: Ты о чем говоришь?
Б: Знаешь что!..
Я: Нет, не знаю. Объясни.
Б: Чего это вдруг?
Я: Мне хочется, чтобы в нашем разговоре не осталось неясностей.
Б: Оно и видно.
Я: Давай поговорим о чем-нибудь интересном.
Б: Так быстро?
Я: По-моему, вполне своевременно.
Б: Ах, та-а-ак?
Я: Ты чем-то недоволен?
Б: Что ты имеешь ввиду?

Пример 2 (реплики "не в тему")

Я: Здравствуй
Б: Здравствуй!
Я: Как у тебя дела?
Б: Продолжай!
Я: Как тебя зовут?
Б: Какое тебе дело?
Я: Я хочу с тобой поговорить.
Б: Привет!
Я: Мы уже здоровались.
Б: Не понял.
Я: Что ты умеешь?
Б: Чуть-чуть. Сейчас тебя запрограммирую.

Болтун произвел на меня впечатление существа взбалмошного и несколько рассеянного...

Версия Болтуна под Windows: br3.exe, 72 Kb, база 80 Kb. Версия 3.0. Разработчик - ProVirus, 2000-2003 г (provirus@mail.ru)
http://boltunstyle.boom.ru/
Скриншот

Помимо прежних достоинств программы (довольно-таки осмысленные диалоги при крайне небольшом размере базы - важно не количество записей в базе, а их качество!), появилось еще кое-что довольно приятное и полезное. А именно:

  • возможность перекодировки Eng->Rus и Rus->Eng (очень полезная вещь, в случае, если, например, наберешь "Ghbdtn" вместо "Привет");
  • отмена последних неправильно введенных реплик (в произвольном количестве);
  • операции с диалогами (сохранение, загрузка в память);
  • добавление обновлений базы (эту возможность я пока не тестировала, но она указана в справке к программе);
  • возможность обучения - замена неправильной реплики на правильную;
  • возможность загрузки различных баз;
  • есть также подробное описание структуры базы и рекомендации желающим править базу вручную;
  • в процессе диалога в строке заголовка программы периодически выводятся "тайные мысли Болтуна";
  • возможность разговора "тихо сам с собой";
  • вывод реплики в файл и чтение из файла по команде или по таймеру (позволяет, в том числе, организовать диалог с другими программами);
  • удобная панель инструментов с возможностью замены картинок на кнопках;
  • широкие возможности настройки.

Пример диалога с программой:

Я: Привет!
Б: Ну, привет.
Я: Как дела?
Б: Нормально.
Я: И у меня нормально.
Б: А я думаю, что не нормально.
Я: Почему?
Б: Откуда я знаю?
Я: Тогда не надо говорить, раз не знаешь.
Б: А почему это?
Я: Потому, что кончается на у.
Б: Почему? Почему?
Я: Ладно, давай замнем эту тему.
Б: Нет уж! Даешь свободу слова!
Я: Упрямый ты.
Б: Так ты хочешь меня ослом обозвать?
Я: Да ну что ты.
Б: Че ты нукаешь? :-)
Я: Да просто так.
Б: А что ты "такаешь"?
Я: Вредина.
Б: Не понял.
Я: Чего ты не понял?
Б: А ты сможешь объяснить?

Не могу не отметить, что база Болтуна крайне удачна: при сравнительно небольшом размере она не перегружена редко используемыми репликами, а те реплики, что входят в базу, создают очень приятное ощущение живого, мыслящего существа с собственным характером.

Поскольку работа над программой Болтун продолжается, постоянно появляются новые интересные возможности; их гораздо больше, чем я здесь перечислила, так что советую заглянуть на сайт программы - там всегда есть информация о последней версии.

ЧИТАТЬ ПРОДОЛЖЕНИЕ ОБЗОРА (выпуск 2: программы A-LIFE2, A-LIFE3, Villy, Talkerus)...

Часть 2. Как это можно сделать? Различные способы обработки фразы, реакции на нее. Обучение программ-собеседников. Как написать простейший эмулятор искусственного интеллекта.

См. также:
Диалоги программ-собеседников
Полный список статей раздела "Все о программах-собеседниках"

© Инга Кесс

При полном или частичном использовании этих материалов на своем сайте не забудьте поставить ссылку на Растрепанный Блокнот :)...

 
На главную страницу
 
Все заметки на полях
 
Все о программах-собеседниках

Hosted by uCoz