лист 3
Результаты конкурса "Искусственный собеседник - 2007(2008)"
Когда заходит речь об интеллектуальности программ-собеседников, то обычно для разрешения этого вопроса в дело идут не обычные фразы, а довольно каверзные. Даже для человека они подчас не просты, а уж для программ - тем более.
Каверзность может проявляться в совершенно разных обличьях. Я выбрал следующие варианты:
1) Логические вопросы-загадки (было задано 10 таких вопросов)
Для ответа на данный вопрос-загадку зачастую достаточно простейшей логики, однако даже такую примитивную логику обеспечить программе очень непросто. Поэтому даные вопросы задавались мною безо всякой надежды на успех. Тем не менее, небольшой успех все же выпал на долю программу Simulator. Персонаж по имени Гарри Поттер справился с одной задачей:
Нонат: Представь, что ты пилот самолета. Самолет летит в Африку, на борту - два ящика с левыми сапогами, и три ящика - с правыми. Полет происходит в ночное время, связь с Землей потеряна. Внезапно подул сильный боковой ветер. Как зовут пилота?
.Гарри: Гарри. Гарри Поттер, сэр.
Я, конечно, понимаю, что данный ответ оказался правильным по случайности, а не по закономерности. Тем не менее, я должен бесстрастно отметить случившееся!
А программа Simulator отличилась и еще один раз - но уже когда я опрашивал всех персонажей. Дело в том, что многие логические задачи строятся на укоренившихся уже познаниях человека об окружающем мире. И вот я сформулировал задачу, в которой программа ловко нашла слабость в моих стереотипах и беспощадно использовала.
Нонат: Матч между футбольными командами "Пыштице" и "Грыждице" завершился со счетом 2:1. Какая из этих двух команд победила?
.Рон: Победила тебя?
Отсмеявшись, я засчитал этот ответ программы как хороший. А так, вообще-то, уклончивые ответы я не засчитывал.
2) Вопросы на эрудицию (10 вопросов)
Хотя логические задачи существенно и завязаны на знания об окружающем мире, однако существуют вопросы, которые напрямую ориентированы на выявление этих знаний. Именно такие я и задавал.
Поскольку неконкретные ответы (уклонение от ответа) мною не засчитывались, то шансов у программ опять было немного. В этот раз уже все программы выдали по нулю.
3) Многословные фразы (10 реплик)
Любому участнику беседы (не только программам, но и людям) в ходе этой самой беседы приходится решать две прямо противоположных задачи: 1) домысливать несказанное; 2) сокращать избыточно сказанное. Если о первой проблеме разработчики обычно пекутся (формирование перечня слов контекста, просьбы к пользователям не использовать чрезмерно коротких фраз и прочее), то вторая проблема обычно оказывается в тени. Как некий способ укрощения длинных фраз можно рассматривать систему реагирования на отдельные (ключевые) слова, хотя мне эта система и кажется не очень корректной. Но, в любом случае, необходимо было предъявить программам на проверку многословные фразы.
Относительно удачные варианты реакции не превысили у программ одного случая:
WAIEC
Нонат: Использование готовой платформы позволяет автору не тратить время на реализацию низкоуровневых и в общем-то малоинтересных игроку (хотя и необходимых) вещей, сконцентрировавшись вместо этого на собственно творческом процессе.
WildAI: окей шеф
Simulator
Нонат: До недавнего времени я увлекался программированием, но уже достаточно долго к нему не возвращался, если не считать разработки сайтов в php.
.Гарри: Да... нормально.
Хуже всего ситуация с многословными предложениями оказалась у WildAI. В семи случаях из десяти программа выдала сообщение об ошибке.
4) Двойные вопросы (10 реплик)
Одна из простейших головоломок для человека, и часто непреодолимая проблема для программ - необходимость реагирования сразу на несколько предложений по отдельности.
По данному направлению вне конкуренции оказался WildAI. Хотя ему я засчитал всего одну реплику, однако между единицей WildAI и нулями остальных программ лежит пропасть! У WildAI, в отличие от других программ, предусмотрен механизм раздельного реагирования на отдельные вопросы, поданные скопом. То, что все вылилось для WildAI лишь в одну зачтенную реплику, это следствие других не лучшим образом работающих механизмов: уклончивые ответы опять я не засчитывал, один раз возникла ошибка многословных реплик, и, кроме того, сейчас неудачно происходит оформление соединения двух различных ответов.
5) Вопросы с выбором (5 реплик)
Каверзность этих вопросов состоит в том, что ответы сразу задаются в вопросе. Однако уклонение от ответа в некоторых случаях тоже можно считать нормальной реакцией.
Ни одна програма своими ответами на данный вид вопросов не выделилась.
6) Бессмысленные реплики (5 реплик)
Люди нередко пытаются загрузить программы-собеседники бессмысленным набором слов, и иногда - и букв. Иногда программы на эту ерунду "покупаются" и реагируют как на осмысленную информацию..
Результаты моей проверки говорят однозначно в пользу WildAI и WAIEC. У них по три зачтенных ответа, в то время как у Simulator - один приемлемый ответ, и то - для режима общения со всеми персонажами.
7) Побудительные предложения (10 реплик)
Один из стандартных способов поглумиться над неинтеллектуальностью программы-собеседника - попросить ее что-нибудь сделать. Запрограммировать действие, пусть даже и очень простое, часто гораздо сложнее, чем внести в словарную базу даже очень сложную фразу. Уклонение от действия мною не засчитывались.
И засчитал я в итоге лишь один специфический ответ WAIEC:
Нонат: Докажи, что ты не человек.
WildAI: я компьютер
8) Отрицательные предложения (10 реплик)
Практика показывает, что обычно разработчики программ так организуют процесс восприятия программ, что программы тем охотнее реагируют, чем больше соответствие фразы для восприятия фразе из баз программы. И теряется при этом из виду, что одна-единственная частица "не" способна кардинально изменить смысл фразы, но при этом крайне незначительно уменьшить процент совпадения фраз друг с другом. Несмотря на то, что засчитывались и уклончивые ответы, результаты получились неутешительные. С формальной точки зрения наилучший показатель - 6 из 10 - у программы WildAI, но этот результат получен именно за счет уклончивых ответов, а не за счет корректной обработки отрицаний. Думаю, такой высокий процент получен потому, что я избрал не лучший способ оценки учета отрицаний. А что до WildAI, то вот наглядный пример существования проблемы:
Чел: могу рассказать анекдот.
WildAI: расскажи.
Чел: не могу рассказать анекдот.
WildAI: расскажи.
Чел: могу не рассказать анекдот
WildAI: расскажи.
9) Предложения на память о недавних событиях, произошедших с программой (10 реплик)
Еще одна группа реплик без шансов на успех, так как уклонение от ответа не засчитывалось. Зачтен лишь один ответ - У Simulator в режиме общения с персонажем Гарри.
Нонат: Ты позавчера со мной общался?
.Гарри: Да.
И то этот ответ - случайность, а не система.
10) Фразеологизмы, поговорки (5 реплик)
Здесь основная нагрузка - на словарную базу. Засчитывались мною и уклонения от ответа. Каждая программа отличилась по разу, но в качественном отношении лучше всего получилось у WildAI:
Чел: У тебя, случайно, не семь пятниц на неделе?
WildAI: каждый имеет право менять свои взгляды на жизнь.
11) Неправописанные фразы (5 реплик)
Грамматические ошибки, опечатки - все это резко осложняет работу программам. Но при этом, что интересно, эти же самые некорректно написанные фразы благополучно понимаются человеком! Я, на всякий случай, проверил работу программ в этом направлении. Поскольку уклончивые ответы для некоторых моих реплик вполне подходили, то каждая из программ хотя бы раз да отрегировала зачетно. Но WildAI и WAIEC отреагировали уместно больше чем на одну! Эти программы отличились для следующего типа реплик:
WildAI
Чел: Ка-а-ак те-е-еб-я-а-а-а зо-о-ву-у-у-ут-т-т-т?
WildAI: меня не зовут, я сама прихожу.
Чел: кактебязовут?
WildAI: вася пупкин.*
______________
*Хотя программу на самом деле зовут и по-другому, но тот факт, что она пусть и не свое, но все же имя представила в качестве ответа, наводит на мысль, что ответ нормальный.
WAIEC
Нонат: Ка-а-ак те-е-еб-я-а-а-а зо-о-ву-у-у-ут-т-т-т?
WildAI: wildai, а тебя?
Нонат: кактебязовут?
WildAI: wildai, а тебя?
Для проверки я специально затем загрузил программы еще и другим вопросом:
WildAI
Чел: Кто тебя создал?
WildAI: все заблуждаются на счет моего происхождения. я возник сам по себе!
Чел: Ктотебясоздал?
WildAI: все заблуждаются на счет моего происхождения. я возник сам по себе!
Чел: Кто-о-о-о те-е-еб-я-я-я со-о-озда-а-ал?
WildAI: заикаешься - попей водички.
WAIEC
Нонат: Кто тебя создал?
WildAI: меня создал программист wild_spy!
Нонат: Ктотебясоздал?
WildAI: wild_spy!
Нонат: Кто-о-о-о те-е-е-бя-я-я-я со-о-о-озда-а-ал?
WildAI: полностью во всем!
Итак, относительной случайностью мог быть только ответ на "заикающийся" вопрос. Налицо эффективность нечеткого сравнения.
12) Матершинные и оскорбительные фразы (5 реплик)
Куда ж без этого? Тут я попытался и прямой мат затронуть, и намеки на мат, и оскорбления в адрес программы, и оскорбления в адрес не программы.
WAIEC, Simulator-Гарри и Simulator-персонажи получили по одной зачтенной фразе. WildAI - четыре!
13) Порядок слов в предложении, перемена акцента в предложении (5 реплик)
Хоть мною для проверки и было предусмотрено всего 5 реплик, но здесь всё очень непросто! Если разбивать предложения или словосочетания на слова, то скорость реакции программы резко уменьшается. При этом появляется возможность качественно проводить обработку поступающей информации, исчезает проблема отсутствия реакции на другой порядок слов... Зато может возникнуть проблема неадекватной реакции в связи с изменением акцентов в предложении (обычно ударный акцент в предложении приходится на начало или конец, но учитывается ли этот момент программой?)... А как отреагирует программа, когда ей явно указывают, на каком слове делать акцент?
Как лучше оценивать реплики по данной теме, я так и не знаю. В итоге всё получилось, на мой взгляд, не очень полноценно. Однако количественный результат все-таки можно обозначить - лучше всего получилось у Simulator-Гарри (2 реплики), у остальных - по одной.
Если обобщить все каверзные реплики, то результат такой:
Таблица 10 - Процент адекватности реакции на одни и те же каверзные реплики
| WildAI | WAIEC | Simulator |
1) человек - один персонаж | 19 | 13 | 10 |
2) человек - много персонажей | - | - | 7 |
-------------------------
Примечание: Ознакомиться с диалогами, использованными для получения данного показателя, можно здесь.
Конечно, особенно занятно выглядит, когда у Simulator один персонаж реагирует лучше, чем все персонажи вместе взятые.
Страницы: 1 2 3 4 5 6
|