Программы-собеседники: разработчику на заметку Достоинства и недостатки
Знакомство и продолжительные разговоры с парой десятков программ-собеседников, а также изучение отзывов других людей о подобных программах позволили мне сделать некоторые выводы относительно положительных и отрицательных особенностей таких программ (не класса программ в целом, а каждой из программ в отдельности), желательных возможностей и раздражающих факторов. Эти данные можно использовать при разработке новой подобной программы или при совершенствовании уже существующей.
Минимальные возможности, обеспечивающие работу программы в простейшем случае
- Ввод фразы пользователем.
- Подбор программой ответной фразы и вывод на экран.
- Просмотр пользователем своей последней фразы и последней фразы программы, а желательно - и диалога в целом.
Такие возможности обеспечиваются, например, программой "Эллочка", которая имитирует диалог с Эллочкой из "12 стульев" (в словарном запасе которой было всего 30 фраз). Мне показалось, что в этом случае программа вообще никак не анализирует фразу человека, а просто выводит случайным образом одну из имеющихся шаблонных фраз (хотя возможно, что я и ошибаюсь). Обучение в данном случае отстуствует.
Что, помимо этого, присутствует во многих программах-собеседниках, а также то, чему хорошо бы присутствовать ("плюсы")
Ввод фраз и их просмотр:
- Возможность просмотра вводимой фразы целиком (во многих случаях она видна на экране лишь частично).
- Возможность использования стандартных операций с буфером обмена: копирования, вырезания и вставки (желательно наличие как минимум возможности делать это с помощью контекстного меню и клавиатуры; во многих программах отсутствует либо возможность работы с контекстным меню, либо возможность использования комбинаций клавиш).
- Ввод отредактированной фразы должен осуществляться как с помощью нажатия клавиши Enter, так и с помощью специальной кнопки; ее назначение должно быть очевидно пользователю.
- Возможность отмены неправильно введенной фразы человека (желательна отмена произвольного количества фраз).
- Возможность просмотра полностью всей ответной фразы программы (фраза не должна обрезаться, если она чересчур длинная).
- Возможность просмотра всего диалога человека и программы - с использованием полос прокрутки, если диалог длинный.
- Запись диалога в текстовый файл для последующего прочтения.
- Фразы человека и программы в диалоге (как на экране, так и в текстовом файле) должны различаться: обозначаться буквенно (инициалы или полное имя программы и человека перед фразой) и/или отмечаться цветом.
Анализ фразы:
- Проверка совпадения введенной фразы с эталонами.
- Проверка наличия во фразе ключевых слов и словосочетаний.
- Сравнение фразы с фразами-эталонами из базы (в базе ищется фраза, максимально похожая на введенную).
- Определение тематики фразы.
- Выявление синонимов.
- Отделение слов-паразитов, вводных слов и т.п.
- Фильтрация нецензурной лексики (возможно - опционально)
- Разбивка фразы на отдельные предложения (если их несколько) и анализ каждого предложения в отдельности.
- Учет порядка слов при сравнении фразы с эталоном: можно или нельзя разрешить перестановку слов в другом порядке.
- Сравнение введенной фразы с эталонными "по маске".
- Выявление эмоций во фразе человека.
- Учет слов, меняющих смысл фразы на противоположный
- и т.д.
Выбор ответа:
- Выбор ответа в случае совпадения фразы человека с некой шаблонной фразой.
- Выбор ответа в зависимости от наличия во фразе человека ключевых слов.
- Выбор ответа с учетом предыдущих фраз, сказанных человеком и/или программой (история разговора).
- Выбор ответа с учетом тематики предыдущих фраз.
- Выбор ответа в зависимости от эмоционального состояния человека (а возможно, и с учетом "эмоций" программы).
- Выбор одного из нескольких возможных вариантов при одних и тех же значениях всех параметров (элемент случайности).
- Добавление к ответу слов-паразитов, вводных слов и т.п.
- Построение ответа "по маске", с возможной заменой слов их синонимами (генерирование новых осмысленных фраз, подходящих в данном контексте).
- Использование во фразе программы реплики человека или ее части.
- Составление собственных суждений (осмысленных) на основе имеющихся данных.
- и т.д.
Обучение:
- Естественное обучение в процессе беседы (запоминание программой реплик, возможно - построение графа, в частном случае дерева фраз).
- Режим обучающего диалога.
- Принудительная замена неправильно выданной реплики программы на новую фразу.
- Редактирование баз программы - как прямо в процессе диалога, так и отдельно от беседы.
- Обучение диалогу "из файла": аналогично обучающему диалогу, но реплики заранее записаны в файл.
- Обучение из произвольного файла: программа анализирует текст и на его основе формирует базы; алгоритм анализа должен быть при этом достаточно совершенным, чтобы отделить действительно необходимую информацию от "мусора" и не перегрузить базу случайными предложениями.
- Подключение баз других пользователей (с жесткого диска или с помощью выхода в интернет).
- Подключение программы к чатам, ICQ и т.д. с целью обучения.
- Соединение нескольких различных программ (не только двух копий одной программы, но и действительно различных программ!) и их диалог с целью взаимообучения.
- и т.д.
Характер программы:
- Программа обладает некоторыми знаниями о себе: когда и кто сделал программу, как зовут программу, что он/она любит (да, кстати: какого пола программа: мужского, женского, "когда как", "мы, программы, бесполые") и так далее.
- Программа обладает собственными эмоциями, меняющимися в зависимости от хода беседы.
- Эмоциональное состояние программы отображается на экране - условно (в виде числовых или графических показателей, цветовой индиации и т.п.), в виде смайликов или с помощью рисунка "лица программы".
- Программа обладает персонифицированной базой, с уникальными, нестандартными репликами.
- Есть возможность смены нескольких персонажей с различными характерами и базами.
- Есть возможность редактирования персонажей и создания собственных.
- и т.д.
Самостоятельность программы:
В случае бездействия со стороны пользователя программа может предпринимать различные действия: произносить фразы, побуждающие к беседе; рассказывать что-либо; запускать программы; изучать жесткий диск компьютера и обучаться, читая текстовые файлы... наконец, просто прощаться и уходить (закрывать окно программы).
Отношения с собеседником:
- Программа знает, как зовут собеседника, и может использовать его имя в ходе беседы.
- Программе известны некоторые другие факты о собеседнике: что ему нравится, о чем он любит/не любит говорить, чем он занимается, где живет и т.д.; все эти факты программа использует в беседе.
- Программа осознает, как относится к собеседнику (хорошо/плохо/нейтрально), и исходя из этого подбирает свои реплики.
- Программа может запоминать факты о собеседнике и свое отношение к нему, и использовать все это не только в текущей беседе, но и в дальнейших.
- Программа может различать собеседников с разными именами, запоминая факты и историю отношений для каждого собеседника в отдельности.
Другие возможности:
- Запуск других программ по просьбе пользователя или в определенное заранее время.
- Напоминание о важных событиях по наступлении определенной, указанной человеком, даты или определенного времени.
- Правильный ответ на вопрос: "Который час?" (и другие подобные практические вопросы).
- Поздравление с праздниками.
- Самостоятельное закрытие окна программы после прощания человека и/или в других случаях, предусмотренных разработчиком; дополняется прощанием программы.
- и т.п.
Что раздражает в некоторых программах-собеседниках
- Маленький объем баз
- Чрезмерно большие базы, забитые "мусором"
- Отсутствие ответа на довольно широко распространенные реплики (например, программа может ответить "Не понимаю" на вопрос "Как тебя зовут?")
Неадекватные ответы на реплики (например, на вопрос: "Как тебя зовут?" программа отвечает: "Да, я всегда пью по утрам кофе с булочкой" или "Я там не был, а что, туда стоит съездить?")
- Неумение отличать вопросительные предложения от повествовательных и восклицательных
- Отсутствие возможности обучения
- Принудительное обучение "громоздко" (например, для введения одной-единственной фразы и реакции на нее обязательно нужно выполнить множество действий; такое бывает, например, когда нужно указать много значений разных параметров, при этом ВСЕ параметры обязательные)
- Обучение не увеличивает, а уменьшает адекватность ответов программы на реплики человека
- Программа слишком долго думает над ответом
- Программа не дает возможность человеку подумать над ответом: малейшая задержка с вводом ответной фразы приводит к выдаче программой новой реплики
- Нет возможности настройки программы: увеличение/уменьшение степени самостоятельности программы, разрешение/запрет обучения в процессе диалога и т.д.
- Неумеренное использование нецензурной лексики в базах программы
- Отсутствие фильтрации мата со стороны человека
- Чрезмерно усердная фильтрация мата (например, Chat Master не давал мне произносить фразы типа: "Любой страх можно преодолеть" или "Ребенок тоже сначала не умеет говорить" - вероятно, из-за присутствия в них комбинаций символов "трах" и "ебе", в результате чего мои фразы казались ЧатМастеру нецензурными)
- Невозможность просмотра фраз диалога целиком (длинные фразы обрезаются справа - отсутствие переноса на новую строку; в худшем случае отсутствует даже возможность просмотреть конец фразы с помощью полосы прокрутки или перемещения курсора)
- Невозможность просмотреть весь текст диалога (на экране помещается только часть фраз при отсутствии полос прокрутки)
- Слишком яркие цвета (утомляют глаз)
- Слишком крупные и/или некачественные картинки (по-моему, лучше вообще отсутствие графики в программе, чем ее откровенно плохое качество - например, пискели, увеличенные до размера "сантиметр на сантиметр", такое обычно делают со смайликами)
- Нечитаемый текст: слишком мелкий или слишком крупный шрифт, использование контрастных цветов (красный текст на зеленом фоне) или, наоборот, слишком близких (темно-серый текст на сером фоне)
- Нерациональное использование пространства окна программы: пустые места, ничем не занятые
- Невозможность выделения и копирования фраз из окна программы, а также вставки фраз в текстовое поле из буфера обмена
- Невозможность использования при работе с программой стандартных комбинаций клавиш: например, Ctrl+C для копирования и Ctrl+V для вставки (причина: данные комбинации клавиш переопределены для выполнения каких-то функций программы)
- и некоторые другие вещи...
Не надейтесь, что в моей программе присутствовали все плюсы и отсутствовали все минусы. У моей программы присутствуют многие из упомянутых недостатков и осутствуют многие из достоинств. Я описывала здесь некую "идеальную" программу, а к идеалу надо стремиться...
Обобщались результаты работы со следующими программами-собеседниками:
- Chat Master 3.02 (для нескольких вариантов базы, настолько разных, что можно считать это разными версиями программы)
- Nai (Nus) 2.01
- Nai (Nus) 3.4
- Diala
- Electronic Brain 1200 SE
- Miss Talking
- Fallout Chat
- Болтун 2.0
- S'Talker 1.21 (Offline Chat)
- Sex Chat. Разговор с незнакомкой
- Sex Talk 1.1
- Бритни Спирс
- Lansa
- Говорун
- Эллочка
- РоботЧат
- Аки Росс
- Talker
- A-Life2
- A-Life3
- Talkerus (моя программа) и его предшественник под DOS
© Инга Кесс
При полном или частичном использовании этих материалов на своем сайте не забудьте поставить ссылку на Растрепанный Блокнот :)...
|