Есть идея написать программку, которая бы мучила меня английскими словами, например, раз в минуту. Легкая ненавязчивость, стабильная периодичность... ну и все в этом духе.
Помимо, возможно, транскрипции и перевода каждое слово должно содержать дополнительную информацию, например, количество возможных переводов слова, сколько раз меня это слово спрашивали, сколько раз (и какую часть из всех возможных) правильных переводов я дал и т.п.
Вопрос как раз и заключается в том, каким образом наиболее оптимально выбирать следующее слово (естественно, случайно, но с коррекцией на предысторию ответов по всему словарю), какие параметры для каждого слова держать, что учитывать, чтобы все это было наиболее справедливо! Если я что-то лучше знаю, это надо спрашивать реже.
P.S. Задачка не на сложность, а на фантазию, на поиск наиболее справедливого варианта. У меня есть вариант, но боюсь, что он не лучший...
Здравствуйте, Apapa, Вы писали:
A>Вопрос как раз и заключается в том, каким образом наиболее оптимально выбирать следующее слово (естественно, случайно, но с коррекцией на предысторию ответов по всему словарю), какие параметры для каждого слова держать, что учитывать, чтобы все это было наиболее справедливо! Если я что-то лучше знаю, это надо спрашивать реже.
Для каждого слова хранится величина Ki.
В начале для всех слов Ki=1.
С каждым правильным ответом Ki уменьшается вдвое (ну или в x раз)
С каждым неправильным ответом наоборот увеличивается вдвое (в y раз)
При превышении 1 сваливается в 1 (Ki=min(Ki,1))
Очередной вопрос падает на это слово с вероятностью Ki/SUM[Kj]
Плюсы.
Известные слова тонут, но не убиваются совсем.
Слово, на которое несколько раз ответил неправильно, объявляется неизвестным.
Два параметра для настройки.
Привет, Pushkin!
P>Для каждого слова хранится величина Ki. P>В начале для всех слов Ki=1. P>С каждым правильным ответом Ki уменьшается вдвое (ну или в x раз) P>С каждым неправильным ответом наоборот увеличивается вдвое (в y раз) P>При превышении 1 сваливается в 1 (Ki=min(Ki,1)) P>Очередной вопрос падает на это слово с вероятностью Ki/SUM[Kj]
Интересно!
P>Плюсы. P>Известные слова тонут, но не убиваются совсем.
Это очень важно! В моем варианте тоже это учитывается...
P>Слово, на которое несколько раз ответил неправильно, объявляется неизвестным.
А это как: Ki = 0? И зачем?
P>Два параметра для настройки.
Что из Ki, x, y имеется в виду?
P>PS P>Потом дашь поюзать?
Обязательно. Лишь бы работало...
Привет, Pushkin!
P>Для каждого слова хранится величина Ki. P>В начале для всех слов Ki=1. P>С каждым правильным ответом Ki уменьшается вдвое (ну или в x раз) P>С каждым неправильным ответом наоборот увеличивается вдвое (в y раз) P>При превышении 1 сваливается в 1 (Ki=min(Ki,1)) P>Очередной вопрос падает на это слово с вероятностью Ki/SUM[Kj] P>Слово, на которое несколько раз ответил неправильно, объявляется неизвестным.
Однако есть некоторые минусы:
1. Если слово имеет несколько значений, как тогда их распределить? Считать их отдельно. Но тогда при ответе сразу, скажем, трех вариантов слово "уменьшается" в восемь раз.
2. Если мы не ответили на слово 8 раз, а потом ответили почему-то 2 раза (например, только что встретили его где-нибудь еще), то его вес стал 0.25. Если же мы на другое слово ответили 2 раза из восьми, о потом два раза не ответили (в итоге те же 2 раза из десяти), то вес этого слова равен 1. Делать же Ki больше 1 не разумно (одно слово может сильно потопить остальные).
Здравствуйте, Apapa, Вы писали:
P>Слово, на которое несколько раз ответил неправильно, объявляется неизвестным. A>А это как: Ki = 0? И зачем?
Ki=0 — это наоборот, самое известное слово.
Неизвестное — Ki=1 — и получается оно само собой после нескольких неправильных ответов.
P>Два параметра для настройки. A>Что из Ki, x, y имеется в виду?
Прараметры — x и y.
Ki — переменные программы (сбрасываемые на диск при выходе)
A>Однако есть некоторые минусы: A>1. Если слово имеет несколько значений, как тогда их распределить? Считать их отдельно. Но тогда при ответе сразу, скажем, трех вариантов слово "уменьшается" в восемь раз.
Все значения надо относить к одному слову.
И требовать от юзера ввести их все за раз.
За каждое неуказанное значение увеличивать частоту (Ki) вдвое.
За каждое верно указанное — уменьшать.
Слово с оравой значений, которых знаешь половину, останется на том же месте в топе.
Если значения заведомо идиотские — не включай их в список слова.
Можно для значений внутри слова сделать свою систему KKi, и для тех значений,
которые юзер обычно указывает, заполнять поля автоматом, чтоб не напрягать с набивкой.
A>2. Если мы не ответили на слово 8 раз, а потом ответили почему-то 2 раза (например, только что встретили его где-нибудь еще), то его вес стал 0.25. Если же мы на другое слово ответили 2 раза из восьми, о потом два раза не ответили (в итоге те же 2 раза из десяти), то вес этого слова равен 1. Делать же Ki больше 1 не разумно (одно слово может сильно потопить остальные).
Играй параметрами x,y. 2 — это от балды.
Имхо, разумней за знание уменьшать частоту несильно (x=1.5),
а за незнание наказывать жёстче (y=2)
Здравствуйте, Apapa, Вы писали:
A>Однако есть некоторые минусы: A>1. Если слово имеет несколько значений, как тогда их распределить? Считать их отдельно. Но тогда при ответе сразу, скажем, трех вариантов слово "уменьшается" в восемь раз. A>2. Если мы не ответили на слово 8 раз, а потом ответили почему-то 2 раза (например, только что встретили его где-нибудь еще), то его вес стал 0.25. Если же мы на другое слово ответили 2 раза из восьми, о потом два раза не ответили (в итоге те же 2 раза из десяти), то вес этого слова равен 1. Делать же Ki больше 1 не разумно (одно слово может сильно потопить остальные).
думаю лучше было бы спрашивать в виде "тестов", т.е. вопрос + N ответов...
(в которых вибирать один из нескольких или несколько из нескольких вариантов)
в случае успеха коэффициент качества знания слова увеличивается,
в противном случае коэффициенты завпрашиваемого слова и слова соответствующему выбору уменьшаются
т.е. решаем минус №1
а №2 я совсем минусом не считаю, нужно исправлять пробелы...
и даже добывлю плюс, при выборе ответа интуитивно запоминаешь выбранный вариант (при том — визуально, в не зависимости говорится правильный ответ или нет), вслетствие чего в следующий раз можно даже не осознавать значение слова, но помнить его "визуально"... т.е. требуемый результат...
Здравствуйте, Apapa, Вы писали:
A>Однако есть некоторые минусы: A>1. Если слово имеет несколько значений, как тогда их распределить? Считать их отдельно. Но тогда при ответе сразу, скажем, трех вариантов слово "уменьшается" в восемь раз.
Вполне можно и завести отдельные карточки на каждое значение.
И при вопросе все остальные значения показывать.
И ты должен найти, чего не хватает на картинке.
A>2 Делать же Ki больше 1 не разумно (одно слово может сильно потопить остальные).
Ты знаешь, по зрелому размышлению, я думаю, что не надо предела устанавливать.
Тебя спрашивают — ты не отвечаешь, ещё спрашивают — опять не отвечаешь.
Когда-то же начнёшь отвечать. И слово утонет. Полная саморегуляция!
И алгоритм становится совсем простой. Не мог держаться, написал