Форум СИ  

Вернуться   Форум СИ > Интеллектуальные игры в миру и сети > Игровая арена

 
 
Опции темы Опции просмотра
Prev Предыдущее сообщение   Следующее сообщение Next
Старый 20.12.2006, 11:16   #1
Ur-Quan
Senior Member
 
Аватар для Ur-Quan
 
Регистрация: 06.04.2006
Адрес: Москва
Сообщения: 258
Поблагодарил(а): 19
Поблагодарили 30 раз(а) в 13 сообщениях
Отправить сообщение для  Ur-Quan с помощью ICQ
По умолчанию Автоматический зачёт ответов

Попробуем разобраться с зачётов ответов на вопросы без участия человека. Возможно, это позволит выработать какие-то общие правила для зачёта ответов вообще.

Суть проблемы
Итак, у нас есть:
  • вопрос, требующий ответа;
  • база знаний, помогающая нам определять правильные ответы;
  • набор правил, позволяющих дать ответ на вопрос, верен ли ответ;
  • собственно ответ игрока.
В "Умном казино", например, база знаний представлена в виде одной строчки с правильным ответом. Правило зачёта одно - полное совпадение с авторским ответом.
Необходимо определить, можно ли засчитывать ответ, данный игроком.

Общие предпосылки решения
Здесь и далее под авторским ответом подразумевается не один ответ, а некоторое множество ответов, которые изначально определены как правильные.
Будем различать два аспекта зачёта:
  1. Орфографический - вы написали ответ неправильно, но невооружённым глазом видно, но он верен (например "сабака" при правильном "собака");
  2. Семантический - написали вы ответ по правилам русского языка, он не совпадает с авторским, но вы имели в виду то же самое ("Советский союз" вместо "СССР") или почти то же самое ("РСФСР" вместо "СССР", тут с зачётом надо быть аккуратнее).
Что касается орфографии, то тут сразу же можно выделить три подхода:
  1. Жёсткий подход. Вы написали слово по правилам орфографии, и оно не совпадает с авторским ответом. Значит, вы имели в виду что-то совсем другое. Такой ответ не может быть засчитан с позиции орфографии ("СЕНТО" при ответе "СЕАТО").
  2. Мягкий подход. Вы написали слово, которое есть в словаре, но оно мало отличается от авторского ответа. Так что, вообще говоря, ваш ответ можно и засчитать ("шубы" вместо "губы").
  3. Сложный подход. Ваше слово есть в словаре, и оно засчитывается лишь тогда, когда понятно, что вы не могли ответить именно это. Например, если вопрос про части тела, а вы отвечаете "шубы", то, скорее всего, имелись в виду "губы", и надо засчитывать. Если же между вашим словом и авторским ответом есть сильная ассоциативная связь ("СЕНТО" и "СЕАТО" - два союза), то засчитывать ваш ответ нельзя.
Пока речь шла об ответах в виде одного слова. А что делать, если авторский ответ или ответ, данный игроком, состоит из ряда слов? Как тогда быть?
Здесь тоже можно подходить по-разному. Можно работать с каждым словом по отдельности, а можно со всей фразой целиком. Второе предпочтительнее, так как позволяет учитывать ситуации с разным количеством слов в авторском ответе и в ответе игрока. В любом случае ответ игрока должен быть преобразован в какую-то стандартную форму.

Если ответ игрока отсутствует в словаре, то необходимо найти слово из словаря, максимально похожее на ответ. Если был дан ответ "слан", то наиболее похожим словом из словаря будет "слон".
Отдельной проблемой являются также формы слов. При авторском ответе "мороз" можно дать ответ "мороза", и он должен быть засчитан. При этом речь идёт о правилах склонения и других способах изменения формы сова, которые также должны быть учтены.

Если орфографический подход не позволил принять ответ, на смену ему приходит семантический. Принять в таком случае ответ - куда более нетривиальная задача.
В настоящее время у меня есть идея сделать что-то вроде словаря синонимов, в котором будут указаны тождественные конструкции. Скажем, "РФ" = "Российская Федерация", "А.С. Пушкин" = "Александр Сергеевич Пушкин". Но это довольно-таки поверхностный подход.
По идее, между любыми двумя понятиями можно установить степень их связи (ассоциации между ними) и вид иерархии.

Понятие - это смысловая единица, которая воспринимается как единое целое. Может быть словом, словосочетанием, выражением, даже предложением. Скажем, понятиями будем считать следующие элементы списка: "слон", "колесо обозрения", "ни рыба ни мясо", "А судьи кто?". Авторский ответ представляет собой совокупность понятий, которые удовлетворяют вопросу. Не должно быть понятий, которые подходят в качестве ответа, не входят в авторский ответ или не являются семантически близкими к нему.
Игрок же даёт ответ не в виде понятия, а в виде строки, которая может содержать и несколько понятий. Это уже проблемы игрока; думаю, что его ответ стоит всё же считать одним понятием.
Наш словарь состоит из понятий и связей между ними. Понятное дело, что сразу такой словарь не создать, но он может расширяться с появлением новых вопросов и ответов.
На данный момент мне видятся три вида связей:
  1. Иерархия "целое - часть". Нос - часть человека. Крыло - часть птицы. Это связывает понятия между собой.
  2. Иерархия "общее - частное". Пушкин, Достоевский, Толстой - всё это частные случаи писателей. Здесь лежит ключ к автоматической генерации неправильных ответов. Если авторский ответ "Пушкин", то неправильным является любой другой писатель. С помощью этой иерархии понятия объединяются во множества. "Пушкин" будет принадлежать разным множествам, таким как "поэты", "русские" и пр.
  3. Ассоциация. Степень смысловой связи между понятиями. Чем она выше, тем выше вероятность, что вы ответили верно. Например, степень ассоциации между понятиями "СССР" и "Советский Союз" можно считать равной 1, то есть они тождественны. Это - возможный критерий семантического зачёта ответов.
Продолжение следует
Пока же хотелось послушать ваше мнение на этот счёт.

добавлено через 7 минут
Цитата:
Сообщение от Strel
Так чего там улучшать: сделай ты наконец анализ по наличию подстроки! (Т.е. одной из возможных). Например:

...

Также хорошо бы убрать вопросы с описательными ответами.
Хм, мы это вроже обсуждали уже.
Вот, например, вопрос:
"Сколько колец...?" Набираю ответ: "16 17 18 19 20 21". И засчитано. Каково?
"Этот русский писатель..." Пишу: "Чехов Толстой Достоевский". Тем самым, вероятность ответа увеличивается в несколько раз. А как быть с темой "От 2 до 5"?

С описательными ответами - да, плохо, но в случаях, когда пакет составляется на основе уже готового пакета, вопросы приходится оставлять без изменений.
__________________
"О друг мой, Аркадий Николаич! Об одном прошу тебя: не говори красиво."

Последний раз редактировалось Ur-Quan, 20.12.2006 в 11:16 Причина: Добавлено собщение
Ur-Quan вне форума   Ответить с цитированием
 


Ваши права в разделе
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Часовой пояс GMT +3, время: 06:33.


vBulletin v3.8.12 by vBS, Copyright ©2000-2024, Jelsoft Enterprises Ltd.
Русский перевод: zCarot, Vovan & Co