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

Продолжаем, если это кому-нибудь интересно Может, подскажете чего-нибудь ещё

Выяснилось, что с числами такой метод зачёта не работает. Ведь, скажем, 1839 год сильно похож на 1899, и программа засчитает такой ответ, хоть и не должна. Если назначить цифрам слишком большие веса, то также получится не очень хорошо - "15 сентября" будет засчитываться при ответе "15 декабря". Тут нужно придумать что-то другое.
Например, возможен такой подход: цифры проверяются отдельно старым способом (на точное совпадение), а вся остальная фраза - на частичное совпадение. При этом ответ засчитывается, если при обоих сравнениях получен утвердительный ответ.

Также нехорошо оказалось то, что правильный ответ может быть найден и в беспорядочном наборе букв. Например, правильный ответ "Крутой", а даётся ответ "Вокруг света". Ясно что буква "т" в ответе никакого отношения к правильному ответу не имеет, и её учитывать не стоит. Поэтому должен существовать некий механизм отбрасывания лишних совпадений. Можно опираться на три подхода:
  1. Отбрасывать короткие совпадения.
  2. Отбрасывать совпадения, расположенные слишком далеко от остальных.
  3. Комбинированный подход: отбрасывать совпадения, расстояние от которых до остальных в определённое число раз превосходит их длину.
В качестве эксперимента можно попробовать следующий метод: отбрасывать одиночные совпадения, рядом с которыми на расстоянии 2-х символов нет больше ни одного совпадения (такие символы, скорее всего, совпали случайно).
__________________
"О друг мой, Аркадий Николаич! Об одном прошу тебя: не говори красиво."

Последний раз редактировалось Ur-Quan, 01.02.2007 в 19:52
Ur-Quan вне форума   Ответить с цитированием