К
О
Н
К
У
Р
С
"ИСКУССТВЕННЫЙ СОБЕСЕДНИК" |
На главную страницу |
лист 1
Сравнение программ хочется начать с наиболее формальной характеристики.
Таблица 2 - Файловая структура программ
Теперь перейдем к сравнению тех характеристик, которые укладываются в перечень заявленных номинаций. ОБЪЕМ И КАЧЕСТВО СЛОВАРНЫХ БАЗ Словарные базы - отдельный разговор. Хотя по давней традиции у большинства программ-собеседников они называются словарными, однако на деле это базы не столько слов, сколько фраз и словосочетаний. Также по давней традиции объем словарных баз разработчиками подается упрощенно. Максимум, что показывается, это количество фраз, на которые программа реагирует, и количество фраз, которыми программа отвечает. А зачастую и такого разделения не осуществляется, а просто показывается, сколько существует строчек в базе (конкурсные программы как раз относятся к этой категории). Считаю, что этот упрощенный подход к статистике словарных баз должен быть изжит. У человека, например, словарный запас далеко неоднороден, в нем можно выделить: 1) пассивный словарный запас (все слова, которые человек знает); 2) активный словарный запас (слова, которые человек активно употребляет в речи); 3) слова, написание и произнесение которых человек знает, но не знает смысла этих слов; 4) набор матершинных слов и выражений; 5) перечень слов-паразитов; 6) любимые изречения-присказки; 7) дежурные фразы; 8) и т.д. На данный момент развития программ-собеседников особенно актуальными считаю три типа фраз: 1) фразы восприятия (на которые программа реагирует); 2) фразы ответа (которыми программа реагирует); 3) фразы обращения (которыми программа сама обращается к собеседнику). Покажем словарные базы программ через эти три типа фраз. Таблица 3 - Объем и структура словарных баз
Примечание: у главного персонажа по имени Гарри Поттер, по пропорции, получается соотношение: 4429 - фразы восприятия, 4429 - фразы ответа, 1356 - фразы обращения. По объему словарных баз разница между программами также колоссальная. Однако места, очевидно, теперь распределяются иначе. Наибольшее качество общения, согласно объему словарных баз, следует ожидать от WildAI. Структура словарных баз Структура баз WildAI выглядит примерно так: фраза восприятия | фраза ответа фраза восприятия | фраза ответа Структура баз WAIEC выглядит примерно так: 1фраза восприятия | фраза ответа1 | фраза ответа2 | фраза ответа3 2фраза восприятия | фраза ответа1 1фраза восприятия | фраза ответа1 | фраза ответа2 Фраза восприятия под номером два придает базе характер древовидности - эта фраза выбирается лишь в случае предварительного выбора вышестоящей фразы под номером 1. Это обеспечивает учет контекста. Структура баз Simulator опирается на строение диалога: [Диалог 1] реплика 1 реплика 2 реплика 3 реплика 4 [Диалог 2] реплика 1 реплика 2 Первые реплики диалога могут выступать в качестве реплики обращения и реплики восприятия, последние реплики диалога - только в качестве реплики ответа, промежуточные - в качестве реплик восприятия и реплик ответа. Еще, на всякий случай, по этому поводу процитирую слова автора программы: "Вариант реагирования один на каждую фразу. Т.к. каждая реплика была когда-то репликой обычного диалога (который использовался при обучении, в т.ч. при разговоре с программой) и, кроме того что персонажи могут ею реагировать, она также является репликой-стимулом для следующей за ней репликой в этом диалоге. Реплики начала беседы - это все первые реплики диалогов обучения." Качество словарных баз следует оценивать также с точки зрения соблюдения правил русского языка и с точки зрения литературности. В этом отношении явное превосходство наблюдается у программы Simulator. Литературность баз Simulator обеспечивается изначально за счет использования книг о Гарри Поттере. Использование этих книг привело к появлению большого количества оригинальных реплик, к тому же соответствующих всем нормам русского языка. Что касается словарных баз WildAI и WAIEC, то здесь особенно заметно несоблюдение правила начинать предложение с заглавной буквы. У WildAI относительное количество прочих ошибок при этом меньше, чем у WAIEC. Таблица 4 - Количество реплик с ошибками в правописании (на 100 реплик)
Примечание: Ознакомиться с диалогами, использованными для получения данного показателя, можно здесь. Если попытаться одновременно учесть и объем, и качество словарных баз, то первое место стоило бы отдать WildAI, второе - Simulator, третье - WAIEC. Словарные базы мало задать. Их потом нужно еще переработать. Косвенно характер переработки можно оценить по времени реакции. Обычно, чем сложнее обработка входящей информации, тем больше времени требуется. Таблица 5 - Скорость работы программы
Замеры производились на компьютере Pentium(R) 4 CPU 3.20 ГГц, ОЗУ 512 Мб. Соответственно, можно с полной уверенностью утверждать, что WildAI при такой длительности обработки должен показывать более качественные результаты, чем Simulator. Что касается WAIEC, то здесь не хватает объема словарной базы для достоверности выводов. Ну, а в целом, можно сказать, что мы подошли вплотную к следующей номинации. АЛГОРИТМ Номинация очень важная и крайне сложная. Подходы к разработке программ у авторов отличаются фактически до противоположности. Если Wild_Spy (автор WildAI и WAIEC) напоминает мне лихого кавалериста, который прямой стремительной атакой берет оборонительные редуты, то Михаил (автор Simulator) напоминает полководца, стремящегося победить за счет полного окружения неприятеля. Если общий объем потраченных сил на программирование у обоих авторов примерно равный, то распределение этих сил - очень разное. Wild_Spy больше тратит силы на основные процессы в программировании общения (можно даже сказать - в ущерб вспомогательным процессам). А Михаил достаточно ровно распределяет силы между всеми процессами. Поэтому качество диалогов и получается лучше у WildAI и WAIEC, а дружественность интерфейса, справочная система и прочее - лучше у Simulator. Simulator При запуске программа случайным образом выбирает фразу начала диалога, а затем начинается сам диалог, в которой каждая новая фраза является ответом на предыдущую, и поэтому завершение диалога может произойти исключительно по инициативе человека. Отсюда основной алгоритм программы - по организации словесного реагирования заранее заданными фразами. Организация словесного восприятия строится на том, что "реплика пользователя ищется в базе не целиком, а только её слова, и с отрезанием окончаний, если надо." Нужно отметить, что программа при этом пытается учитывать и контекст. Цитата из переписки с автором программы: < Программа поддерживает контекст? То есть, ответ подбирается на основании < только последней реплики, или предпоследняя, предпредпоследняя и т.д. тоже < как-то могут влиять? Да, поддерживает немного. Дело в том, что сравнив версии с разными контекстами я понял, что глубокий контекст неэффективен, и сейчас он равен приблизительно 1 - 3 репликам, в зависимости от их длины. Реализуется это таким образом, что чем дальше слово-стимул от текущего момента диалога, тем меньше оно весит в плане возможности повлиять на выбор реплики-реакции. Обнаруженные "баги": 1) При выключении абсолютно всех персонажей программа все равно рвется общаться.
2) При включении показа авторов реплик персонажей почему-то я был обозначен как автор и тех реплик, которые я явно не вводил.
2) Обработка длинных фраз заканчивается сообщением об ошибке.
2) Не доделано отображение даты. |