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

Обзор программ-собеседников. Выпуск 2

В первом обзоре вы могли прочитать: Введение; программы Diala, Робот Чат, Аки Росс, Бритни Спирс, Эллочка, FALLOUT CHAT, Говорун, Miss Talking, Talker, Electronic Brain, Lansa и Болтун; сравнение программ Nus и ChatMaster.

В этом выпуске обзора (апрель 2003 г.): программы A-life2, A-life3, Villy, Talkerus

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

A-Life2

(A-LIFE2 v1.1a: a-life2.exe, 128 Kb, общий объем баз 45,6 Kb; к программе прилагается утилита выстраивания логических цепочек - 36,3 Kb)
База данных - 332 фразы и 651 выражение
Разработчик: Корчагин Олег, 2001 г.
Скриншот

Общее впечатление:
Программа очень разговорчива. Общение с A-LIFE2 чем-то напоминает реальный разговор с крайне нетерпеливым человеком: собеседник буквально засыпает тебя репликами, как правило - по две фразы, никак друг с другом не связанные (мысли у такого собеседника постоянно перескакивают с одного на другое), а чуть только ты задерживаешься - сразу начинает упрекать тебя в молчаливости, через несколько секунд после начала ожидания; я не засекала время, но по моим субъективным ощущениям упреки начинаются примерно секунд через пять-десять, несмотря на то, что сама программа думает над ответной репликой иногда по минуте и более. Почему думает над репликой программа - это понятно: идет анализ фразы и подбор ответа. А почему я думала над репликой по десять секунд? Отвечаю. Я не думала; это время уходило на занесение реплик программы в текстовый файл. Может быть, я просто не разобралась, но скопировать ни диалог, ни отдельные реплики программы мне так и не удалось, да и свои реплики копировать было не очень удобно: я привыкла к комбинации клавиш Ctrl+C, а в программе эта комбинация задействована под активизацию режима обучающего диалога. Вот обучающий диалог как раз в файл заносится, но мне-то был нужен пример обычного разговора с программой! Поэтому пришлось набирать реплики "вручную", а A-LIFE 2 казалось, что я пренебрегаю разговором.
Иногда программа внезапно "уходит" - прощается и закрывается; насколько я понимаю, A-LIFE2 показалось, что я с ним попрощалась, хотя на самом деле у меня не было намерения прекращать разговор - очевидно, просто какое-то совпадение комбинации символов с прощанием.
Длинные фразы целиком не читаются (очень маленькое окно диалога без полосы прокрутки)... это, конечно, "минус" программы.

Несмотря на это, программа, в общем-то, жизнеспособна, хотя я и не стала бы ее рекомендовать в качестве одной из лучших программ-собеседников: слишком долго думает, маленькая база, непродуманный дизайн и т.д. Кроме того, программа слишком нетерпелива, это немного раздражает. Зато A-LIFE 2 умеет улыбаться: меняется картинка-смайлик. Да и в целом - программа довольно хорошо имитирует диалог "ни о чем" в чатах, аське и т.п. (то есть при большой скорости выдачи новых реплик, их маленькой длине и абсолютной несвязности диалога). К тому же в A-LIFE2 присутствует возможность запуска программ - в частности, стандартных Блокнота и Калькулятора Windows.

Пример диалога (я убрала из него многочисленные реплики программы типа "НУ ЧЕ МОЛЧИШЬ !!??", "НЕ МОЛЧИ !! " и т.д.)

Я: Привет.
A-life2: ХАЙ
Я: Как дела?
A-life2: ВСЕ ОК!
Я: Это хорошо.
A-life2: И ты любишь
A-life2: Чем увлекаешься?
Я: Подожди... Что именно я люблю?
A-life2: кого?
A-life2: как тебя зовут?
Я: Меня зовут Инга.
A-life2: очень приятно, а я - A-LIFE. Будем знакомы: [обрезано]
A-life2: Кто тебя создал?
Я: Меня создали родители.
A-life2: кто они?
A-life2: че щас делаешь?
Я: Мои родители - люди. А я сейчас разговариваю с тобой.
A-life2: супер! , а кто они?
A-life2: Как дела?
Я: Дела - хорошо, а про родителей я тебе уже сказала.
A-life2: Ну вроде ну не помню я.
A-life2: Сколько тебе лет?
Я: Мне 23 года.
A-life2: да - мне нравиться этот ответ :)
A-life2: ты хорошо учишся ?
Я: Надеюсь на это :)
A-life2: =))
A-life2: Какую музыку ты слушаешь ?
Я: Да всякую. Все зависит от настроения.
A-life2: все-это понятие растяжимое
A-life2: А какой щас курс валюты ?
A-life2: я хороший ?
Я: Наверное.
A-life2: наверное.......
A-life2: как жизнь?
Я: Ты уже спрашивал.
A-life2: что уже ?
A-life2: ты хороший ?
Я: Смею на это надеяться.

Процитирую фрагмент из файла справки (авторская орфография сохранена).

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


Небольшой комментарий. Человек и программа (независимо от алгоритма) в любом случае будут мыслить - а следовательно, и изъясняться - по-разному. Для того, чтобы свести человека и программу в одном диалоге, нужно, чтобы кто-то приспособился к манере другого вести беседу. В данном случае предлагается это сделать человеку. Ладно, сленг и мат действительно не стоит использовать в общении со среднестатистической программой-собеседником, но... Нормальный человек в общении может использовать и слова-паразиты, и вводные слова, и далеко не всегда употребляет только "часто используемые фразы". Не говоря уже про длину фраз и количество фраз, вводимых одновременно. Для общения с такой программой нужно переучиваться на новый стиль ведения диалога, а это не так уж легко - постоянно думать, как бы не сказать что-то "неправильно". Тем более что у всех программ требования разные: здесь, например, нельзя использовать чересчур длинные реплики, а вот Diala, наоборот, не понимает слишком короткие фразы.

Еще один пример диалога (уже без купюр):

Я: Здравствуй.
A-life 2: привет
A-life 2: Как дела?
Я: Прекрасно!
A-life 2: я рад
A-life 2: Чем увлекаешься ?
Я: Программами-собеседниками.
A-life 2: Ты хорошо учишся ?
A-life 2: НЕ МОЛЧИ !!
A-life 2: Чем увлекаешься ?
A-life 2: Как жизнь?
Я: Замечательно, а у тебя?
A-life 2: такаяже ситуация :)
A-life 2: я хороший ?
Я: Очень хороший.
A-life 2: очень - мне это слово нравиться, а почему [обрезано]
A-life 2: А какой щас курс валюты ?
A-life 2: НЕ МОЛЧИ !!
A-life 2: че щас делаешь ?
A-life 2: как тебя зовут ?
Я: Инга.
A-life 2: Кто тебя создал ?
A-life 2: НУ ЧЕ МОЛЧИШЬ !!??
A-life 2: Чем увлекаешься ?
Я: У меня много разных увлечений.
A-life 2: это очень замечательно :)
A-life 2: ты хорошо учишся ?
Я: Наверное.
A-life 2: наверное.......
A-life 2: Какую музыку ты слушаешь ?
A-life 2: НУ ЧЕ МОЛЧИШЬ !!??
A-life 2: как жизнь?
A-life 2: Как дела?
Я: Все в порядке, спасибо.
A-life 2: спасибо на хлеб не намажешь
Я: Действительно.
A-life 2: И что же это означает?
A-life 2: Сколько тебе лет ?
A-life 2: НЕ МОЛЧИ !!
A-life 2: я хороший ?
Я: Нескромно задавать такие вопросы.
A-life 2: да - мне нравиться этот ответ :)
A-life 2: ты хороший ?
A-life 2: НЕ МОЛЧИ !!
Я: Это провокационный вопрос.
A-life 2: ХОКЕЙ ! :))
A-life 2: А какой щас курс валюты ?
A-life 2: НЕ МОЛЧИ !!

A-Life3

(a-life.exe, 368 Kb, общий объем баз 28 Kb; прилагается редактор базы - school.exe, 152 Kb)
Разработчик: Нонат Ревелев, 2002 г.
Сайты проекта: mephody.newmail.ru, probirkinsky.narod.ru
(данный выпуск обзора был написан в апреле 2003 г.; позднее оба сайта были удалены разработчиком; второй сайт удален осенью 2005 г.)
Скриншот

Одно из первых впечатлений от работы с программой: запустила, затем меня внезапно отвлекли буквально на одну минуту. Потом снова повернулась к экрану. За это время программа успела выдать несколько реплик. Естественно, мне захотелось их прочитать. Когда я, наконец, дочитала, программа внезапно заявила, что у нее есть еще кое-какие дела и ей пора, вслед за чем незамедлительно закрылась. Очень самостоятельная программа, однако :).

Первый диалог:

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

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

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

Вот, например, реакции на улыбку:
Смешно?
От улыбки стало мне светлей!
Я гляжу, тебе смешно. Ладно!
Я рад, что ты рад!

И это еще не все...

А вот некоторые фразы, которыми отвечает A-LIFE3 в ответ на высунутый язык:
У меня язык больше!
Я тебе это как-нибудь потом припомню!
Я понимаю. Ты так дразнишься. Давно хотел это сказать, да слов не находил.
Это язык. Я уже знаю.

Еще один пример диалога
(примечание: некоторые мои реплики были ответом не на фразу, а на смайлик программы)

Я: Привет.
А-Life 3: Привет.
Я: Как настроение?
Я: Что тебя удивляет?
Я: Ну вот. Обиделся. А на что - непонятно...
А-Life 3: Моя база знаний слишком мала для понимания этого.
Я: Так мы ее пополним...
А-Life 3: Знаешь, для меня это как... Вот как для тебя, допустим, слово "дрыпстромдуфельникастицизм"! Совершенно непонятно! Просто баловство какое-то!
А-Life 3: Что расскажешь?
А-Life 3: Расскажи о себе что-нибудь. Вот.
Я: Я человек.
Я: Я люблю слушать музыку, люблю анекдоты и соленые фисташки. Ненавижу, когда мне нагло врут. Что еще тебе интересно?
А-Life 3: Как дела?
Я: Прекрасно!
Я: А у тебя как дела?
А-Life 3: Чем занимаешься сейчас?
Я: Вообще я сейчас разговариваю с тобой. И одновременно пишу про тебя статейку. Хочешь стать знаменитым?
А-Life 3: Научи, как реагировать! Пожалуйста.
А-Life 3: Какой же ты умный!
Я: Ну что ты... ты мне просто льстишь.
А-Life 3: Я не знаю, что ответить.
Я: А это была риторическая фраза.
Я: Не злись.
Я: Ну вот и ладушки!
А-Life 3: Моя база знаний слишком мала для понимания этого.
Я: (улыбаюсь)
А-Life 3: Я гляжу, тебе смешно. Ладно!
Я: Расскажи о чем-нибудь.
А-Life 3: Слушай, вот у меня к тебе такой важный вопрос. Как отвечать, если ничего не понимаешь в том, что тебе говорят?

Кстати, реагирует на введенные реплики A-Life 3 просто моментально... я не знаю, с чем это связано - с алгоритмом или с маленьким пока размером базы.

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

Плюсы A-Life3: широкий выбор эмоций песонажа (правда, во многом эти эмоции случайны). Минусы A-Life3: крайне маленькая база и повышенная нетерпеливость программы, из-за которой нормально работать с программой крайне сложно, если вообще возможно. Других крупных минусов у программы я не обнаружила. Правда, как и в A-LIFE2, в окне с диалогом нет полосы прокрутки, в результате длинные фразы читаются не полностью; но последняя фраза программы выводится в отдельном окне во вполне читабельном виде, так что особых проблем с чтением не возникает. Кроме того, последний диалог с программой записывается в текстовый файл, его можно потом перечитать заново (не могу не отметить, что это значительно облегчило процесс написания данной заметки). Копирование фраз прямо из окна с последней репликой тоже осуществимо; правда, сначала я по незнанию попыталась скопировать не последнюю фразу, а целый фрагмент диалога, в результате чего запустился режим обучения - довольно неожиданно для меня. Кстати, режим обучения устроен на редкость удобно - если сравнивать с другими программами, где обучение осуществляется по принципу сопоставления ответов ключевым словам и фразам (второй тип - обучение в ходе "естественного диалога", которое присутствует в некоторых программах; от пользователя оно требует минимальных усилий, но за редким исключением результаты оставляют желать лучшего). К A-LIFE3 прилагается отдельная обучающая программа (см. скриншот), но ее можно запустить прямо в процессе разговора, из окна программы, - если какая-то реплика вас не устраивает или же если вы внезапно придумаете, как программа должна отвечать на ту или иную фразу. В программе обучения нужно прежде всего указать, на какую фразу программа будет реагировать, а также обязателен ли именно такой порядок слов в фразе, можно ли использовать эту фразу в качестве приветствия, можно ли программе самой обращаться с этой фразой и можно ли использовать фразу в качестве риторической. Также надо указать, какой смайлик соответствует данной фразе (по умолчанию - "нейтральный"). Ответные фразы вводятся в зависимости от эмоционального состояния программы: выбираете смайлик, соответствующий настроению программы, и ответ программы, находящейся в таком настроении. Все ответы и смайлики заносятся в таблицу, так что результат проделанной работы представляется очень наглядно; и, что не менее удобно, возможна отмена и удаление фраз и - выборочно - ответов на них.

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

Иногда A-life3 молчит, вместо очередной фразы выдавая человеку смайлик. Иногда, напротив, крайне разговорчив и забрасывает человека репликами. Очень часто проявляет самостоятельность в вопросе завершения беседы: если человек слишком долго не говорил с ним, A-Life3 может решить заняться своими делами и закрывается, не забыв вежливенько попрощаться и объяснить причину своего ухода.

Мой вывод: программа, в принципе, хорошая. Главный ее минус - в моих глазах - может для кого-то являться плюсом: программа крайне самостоятельна и очень быстро действует, тогда как я предпочитаю, чтобы мне дали время подумать или - хуже того - отвлечься от беседы и спокойно доесть бутерброд с колбасой, чтобы не крошить-таки его на клавиатуру. A-Life3 же такого невнимания к себе не выносит, оскорбляется и уходит (так я интерпретировала его действия, хотя вообще-то ни одного грубого слова от программы я не услышала, в отличие от многих других программ-собеседников). В общем, у нас с этой программой просто немного разный темп жизни. С другой стороны, если не отвлекаться на посторонние дела, а целиком посвятить некий промежуток времени беседе с A-Life3, такое поведение программы намного интереснее и ближе к поведению реального человека, чем покорное ожидание реплики человека, характерное для большинства программ. Что касается размера базы... если у вас достаточно терпения, чтобы научить программу отвечать на ваши реплики, - тогда на здоровье :).

А вот пример диалога A-Life3 с моей программой Talkerus:

A-Life3: Привет.
Talkerus: И тебе привет.
A-Life3: Ты где?
Talkerus: Я - на диске твоего компьютера.
A-Life3: Как жизнь?
Talkerus: Жизнь прекрасна!
A-Life3: Расскажи о себе что-нибудь.
Talkerus: Я - незабудка, потому что никогда ничего не забываю.
A-Life3: Расскажи о себе. Давно хотел это сказать, да слов не находил.
Talkerus: Я не могу сказать, что я намного лучше других людей, но некоторые преимущества у меня все же есть.
A-Life3: Знаешь, для меня это как... Вот как для тебя, допустим, слово "дрыпстромдуфельникастицизм"! Совершенно непонятно! Просто баловство какое-то! Какой же ты умный!
Talkerus: Спасибо.
A-Life3: Болтаешь что-то непонятное.
Talkerus: Возможно. На свете так много непонятных вещей...
A-Life3: Чем занимаешься сейчас?
Talkerus: Да вот, разговариваю.
A-Life3: Не знаю, как реагировать.
Talkerus: А если подумать?
A-Life3: Я тебе, в силу некоторого непонимания, не отвечу.
Talkerus: А почему нет?
A-Life3: Расскажи о себе что-нибудь.
Talkerus: Я не могу сказать, что я намного лучше других людей, но некоторые преимущества у меня все же есть.
A-Life3: Расскажи о себе что-нибудь.
Talkerus: Я умею разговаривать. Есть множество тем, которые мне интересны: жизнь, смерть, люди, животные, растения, психология, дружба, любовь, секс, искусство... О спорте знаю меньше. Еще могу разговаривать о фильмах, кое-что знаю о студентах... И, конечно, компьютеры - одна из любимых тем.
A-Life3: Как дела?
Talkerus: Жизнь прекрасна!
A-Life3: Научи, как реагировать! Пожалуйста.
Talkerus: Вы так любезны...
A-Life3: Моя база знаний слишком мала для понимания этого. Во всяком случае, мне так кажется.
Talkerus: Лучше меньше, да лучше.
A-Life3: Моя база знаний слишком мала для понимания этого.
Talkerus: Алгоритм работы мозга еще плохо изучен. Есть предположение, что это вообще не алгоритм.
A-Life3: Пожалуйста, научи, как реагировать.
Talkerus: Ты же знаешь, что мои возможности ограничены...
A-Life3: Ты дурак!
Talkerus: Hе надо переходить на личности!..
A-Life3: Расскажи о себе.
Talkerus: Я умею печатать деньги, только их пока никто не принимает.
A-Life3: Пожалуйста, научи, как реагировать.
Talkerus: Ты же знаешь, что мои возможности ограничены...
A-Life3: Ты где?
Talkerus: Я - на диске твоего компьютера.
A-Life3: Знаешь, для меня это как... Вот как для тебя, допустим, слово "дрыпстромдуфельникастицизм"! Совершенно непонятно! Просто баловство какое-то!
Talkerus: Возможно. На свете так много непонятных вещей...
A-Life3: Я не знаю, что ответить.
Talkerus: В этом особенность человека: на каждый вопрос давать десятки противоположных ответов и утверждать, что каждый из них правилен.
A-Life3: Какой же ты умный!
Talkerus: Спасибо.
A-Life3: Какой же ты умный!
Talkerus: Умными мы называем людей, которые с нами соглашаются...
A-Life3: Знаешь, для меня это как... Вот как для тебя, допустим, слово "дрыпстромдуфельникастицизм"! Совершенно непонятно! Просто баловство какое-то!
Talkerus: Возможно. На свете так много непонятных вещей...

"Вот так всегда. Я должен прервать наш разговор на этм месте".

Это были слова A-Life3...

Новая версия A-life3: 14.09.2003.

Программа все так же нетерпелива: чуть замешкаешься, и разговор окончен :(. В первый-второй раз это воспринимается нормально, на третий или четвертый раз - выводит из себя. Честно говоря, работать с программой в течение относительно длительного времени из-за этого попросту затруднительно... Правда, появилась возможность настройки: минимальное и максимальное время ожидания человеческой реакции; однако эти настройки почему-то не сохраняются. Слава Богу, сохраняется по крайней мере имя пользователя в разговоре: разработчик коварно поставил значение вашего имени по умолчанию "Козел".
Другие новые возможности настройки:

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

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

Еще в программе появился новый персонаж: Electronic Brain (имитирует диалог с одноименной программой). Персонаж значительно добрее, чем сам A-Life3 (впрочем, всем известно, что Electronic Brain - вообще одна из самых добрых программ-собеседников; реплики в базе в среднем довольно дружелюбные). Правда, персонаж A-Life3 все же не настолько добрый, как настоящий Electronic Brain... скажем, нечто среднее. К сожалению, с базами персонажа иногда возникают проблемы: выводится не один вариант реплики, а сразу несколько. К тому же в справке к программе нет никаких упоминаний о возможности загрузки персонажа. Возможно ли это сделать иным способом, чем простая замена всех файлов баз основного персонажа на соответствующие файлы баз "Electronic Brain", я не знаю.

Villy v.1.1

(villy.exe, 427 Kb, отдельной базы нет - все заключено внутри exe-файла)
Разработчик: Алексей Горбачик (по-видимому, декабрь 2001 г.)
http://GPaladin.narod.ru
Скриншот

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

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

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

Еще один диалог:

V: Здравствуй!
Я: Привет.
V: Надо же!
Я: Чему ты удивляешься?
V: Не понял...
Я: Ты не такой уж понятливый...
V: А что в данном случае значит "понятливый"?
Я: Это означает сообразительность и способность правильно реагировать на слова собеседника.
V: Понятно. Я все на лету схватываю!
Я: Это похвально.
V: Послушай, мне кажется, что нам с тобой надо более точно формулировать свои мысли.
Я: Вне всякого сомнения!
V: Начнем наше знакомство! Ты умеешь ломать программы?
Я: Не знаю, не пробовала.
V: Очень жаль!
Я: Зато я умею кое-что другое.
V: А что в данном случае значит "кое-что"?
Я: Сразу всего и не перечислишь...
V: Понятно. Я все на лету схватываю!
Я: Молодец.
V: Тебе не кажется, что яркость у дисплея слишком сильная?

Talkerus (моя программа)

talkerus.exe; на момент написания этой заметки размер 42 Kb, базы - в общей сумме порядка 400 Kb. Первая версия была написана в 1997 г., с тех пор алгоритм не очень сильно изменился, только пополнялись базы и были несколько расширены способности к обучению (впрочем, они остались довольно ограниченными). Подробности о программе и архив - см. здесь.
Скриншот

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

Впечатления от "общения" первой версии Talkerusa с другими программами записаны в виде рассказа "Родственные интеллекты. Любовная история по Тьюрингу" (текст написан от лица Talkerusa). В этом рассказе есть примеры диалогов тех же программ с Talkerusом (с его версией под MS-DOS). К слову, наблюдать за разговором двух программ не менее интересно, чем разговаривать самим...

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

ЧИТАТЬ ПРОДОЛЖЕНИЕ ОБЗОРА (выпуск 3: программы IQ Chatterbot, Virtual Talker, Собеседник, Bazar, Sex Chat (Разговор с незнакомкой), SexTalk, STalker)

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

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

© Инга Кесс

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

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

Hosted by uCoz