К
О
Н
К
У
Р
С

"ИСКУССТВЕННЫЙ СОБЕСЕДНИК"




На главную страницу

лист 1

Результаты конкурса "Искусственный собеседник - 2007(2008)"


Сравнение программ хочется начать с наиболее формальной характеристики.

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

Таблица 2 - Файловая структура программ
 WildAIWAIECSimulator
Количество файлов10379
  в т.ч. рисунков--70
Объем запускающего файла (Кб)5938672
Объем файла словарных баз (Кб)1140503490
Разница в размерах, конечно, колоссальная, и это резко усложняет сравнение программ между собой. Исходя из размера файлов, можно сделать предположение, что Simulator обладает самыми большими функциональными возможностями, а WildAI Extra Chatter - наименьшими (особенно по части словарной базы).

Теперь перейдем к сравнению тех характеристик, которые укладываются в перечень заявленных номинаций.

ОБЪЕМ И КАЧЕСТВО СЛОВАРНЫХ БАЗ

Словарные базы - отдельный разговор. Хотя по давней традиции у большинства программ-собеседников они называются словарными, однако на деле это базы не столько слов, сколько фраз и словосочетаний. Также по давней традиции объем словарных баз разработчиками подается упрощенно. Максимум, что показывается, это количество фраз, на которые программа реагирует, и количество фраз, которыми программа отвечает. А зачастую и такого разделения не осуществляется, а просто показывается, сколько существует строчек в базе (конкурсные программы как раз относятся к этой категории). Считаю, что этот упрощенный подход к статистике словарных баз должен быть изжит. У человека, например, словарный запас далеко неоднороден, в нем можно выделить:
1) пассивный словарный запас (все слова, которые человек знает);
2) активный словарный запас (слова, которые человек активно употребляет в речи);
3) слова, написание и произнесение которых человек знает, но не знает смысла этих слов;
4) набор матершинных слов и выражений;
5) перечень слов-паразитов;
6) любимые изречения-присказки;
7) дежурные фразы;
8) и т.д.

На данный момент развития программ-собеседников особенно актуальными считаю три типа фраз:
1) фразы восприятия (на которые программа реагирует);
2) фразы ответа (которыми программа реагирует);
3) фразы обращения (которыми программа сама обращается к собеседнику).

Покажем словарные базы программ через эти три типа фраз.

Таблица 3 - Объем и структура словарных баз
 WildAIWAIECSimulator
Фраз восприятия38399158320075
Фраз ответа38399216020075
Фраз обращенияболее 20-4704
-------------------------
Примечание: у главного персонажа по имени Гарри Поттер, по пропорции, получается соотношение: 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 реплик)
 WildAIWAIECSimulator
1) человек - один персонаж8243
2) человек - все персонажи--7
-------------------------
Примечание: Ознакомиться с диалогами, использованными для получения данного показателя, можно здесь.

Если попытаться одновременно учесть и объем, и качество словарных баз, то первое место стоило бы отдать WildAI, второе - Simulator, третье - WAIEC.


Словарные базы мало задать. Их потом нужно еще переработать. Косвенно характер переработки можно оценить по времени реакции. Обычно, чем сложнее обработка входящей информации, тем больше времени требуется.

Таблица 5 - Скорость работы программы
 WildAIWAIECSimulator
Длительность обдумывания ответа, с.обычно - до 4, но бывало и до 30<1<=1
-------------------------
Замеры производились на компьютере 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) При включении показа авторов реплик персонажей почему-то я был обозначен как автор и тех реплик, которые я явно не вводил.

Ну, и еще обнаружилось такое, что, возможно, и не совсем "баг". Цитата из переписки с автором программы:
< Почему Simulator так долго выгружается из памяти? Если выключить
< программу, то снова включить ее можно не сразу. Впервые с таким
< встречаюсь. Дважды из-за этого даже пришлось компьютер перегружать.
Дело в том, что при закрытии программы она закрывается только визуально, а
некоторое время ещё продолжает работать - шифрует базу (процесс обратный
тому что при открытии происходит, но визуализированно), т.к. эта процедура
довольно длительная и в VB6 не было возможностей, чтобы реализовать это
побыстрее. По идее ей должно хватать максимум пол минуты, если зависает на
больше, то видимо чего-то напортачил в последней версии, хотя у меня
выгружается. Перезагружать компьютер не обязательно, можно убить процесс
программы в Диспетчере задач или не сохранять базу при закрытии (для этого
надо изменить значение параметра в SimConfig.ini База/ЗапросНаСохранение на
True).


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

За счет использования матрицы схожести выполняется нечеткое сравнение полученной от пользователя фразы с теми оборотами, которые заложены в базе программы.

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

Обнаруженные "баги":
1) Невозможность удаления фраз из пользовательской базы.

2) Обработка длинных фраз заканчивается сообщением об ошибке.


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

1|Фраза1=|кол-во вариантов|Вариант1;Вариант2...и т.д.
2|Фраза2 (является ответвлением от предыдущей и затрагивается только
при большом сходстве и предшествии Фразы1)=|кол-во вариантов|Вариант1;Вариант2...и т.д.
3|Фраза3 (является ответвлением от предыдущей и затрагивается только
при большом сходстве и предшествии Фразы2)=|кол-во вариантов|Вариант1;Вариант2...и т.д."
[цитата из письма автора программы]

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

По сравнению с WildAI у WAIEC также отсутствуют и некоторые полезные "фишки": программа не считает, не учитывает двойственные вопросы.

Обнаруженные "баги":
1) В конце фразы программы нередко отображается символ "|".

2) Не доделано отображение даты.
3) Скриптовая система с "выходом" программы из разговора может сработать в неподходящий момент.

Если считать качество диалога более приоритетным по сравнению с пользовательским интерфейсом, то тогда Simulator уступает двум другим конкурсантам. Что до сравнения WildAI и WAIEC между собой, то ситуация - специфическая. Сам автор заявляет, что WAIEC основан на более качественных алгоритмах, чем WildAI, и нет оснований не доверять ему. Однако степень проработки этих более качественных алгоритмов, очевидно, еще очень далека от совершенства. По отсутствию "багов" и по наличию полезных "фишек" WildAI, на мой взгляд, все-таки на момент начала конкурса оказался лучше, чем WAIEC. Хотя при этом я прекрасно и понимаю, что WildAI уже останется таким, как он есть сейчас, а WAIEC - вроде как развивается.


Страницы: 1   2   3   4   5   6




Hosted by uCoz