❢ Мы запустили Flashcards 2.0! Это новое слово в методе интервальных повторений.

Что новаторского в нашем подходе

Самая главная (и самая сложная) задача в реализации метода интервальных повторений — это расчёт интервала для следующего повторения слова, который опирается на предыдущие ответы пользователя — его «помню» / «не помню». Для этого используются весьма изощренные алгоритмы, учитывающие множество параметров, но все они в конечном итоге жестко детерминированы и работают в одном единственном потоке: вот тебе хитрорасчитанный день для следующего повторения — и иди себе с богом, жди назначенного срока.

Мы пошли дальше. Мы создали схему, допускающую многопоточную (то есть распараллеленную) работу с произвольными и (sic!) пересекающимися выборками слов.

Одно и то же слово может попадать в разные наборы карточек, которые вы можете гибко для себя составлять, и оценки, полученные при независимых самопроверках в разных потоках, будут взаимно учитываться — и что важно, будет корректироваться дата повторения слова!

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

Что это дает

Самый очевидный способ применения для такого подхода — это после проверки сформировать набор из слов, которые хуже всего запомнились (то есть которые получили низкие оценки при проверке), и подрилить дополнительно уже только их и затем, если пользоваться школьной терминологией, «закрыть двойки в журнале». И что немаловажно — при лучших оценках сделать будущие повторения не такими частыми.

Это же, в свою очередь, решает другую проблему флэшкарт — снежный ком из слов, которые со временем наваливаются на ученика из-за шквала повторений, наслаивающихся на новые слова. Возможность «отстреливать» двоечников-троечников в зародыше (а точнее, делать из них пятерочников) ведет банально к уменьшению числа таких повторов и разгружает весь процесс работы с карточками. А как итог — запоминать больше слов при тех же (или меньших) усилиях и за более короткое время. Согласитесь, было ради чего стараться!

Мои слова с отфильтрованными «малозвездными» словами.

Приложение Мои слова

Что еще нового

Метод расчета оценок и интервалов для повторения.

Мы полностью пересмотрели алгоритм оценивания ответов при самопроверке (режим ПРОВЕРЯЕМ), исходя из которых рассчитывается время до следующего повторения. Как и прежде, в основе лежит шестибальная шкала. Но то, сколько звезд дать тому или иному конкретному ответу при проверке — этот алгоритм был полностью пересмотрен.

Вот эта шкала оценок.

  • Пять звезд — ученик дал правильный ответ — уверенно и быстро.
  • Четыре звезды — ответ правильный, но после некоторых колебаний.
  • Три звезды — ответ правильный, но после долгих припоминаний.
  • Две звезды — ответ не угадал, но правильное слово легко вспоминается.
  • Одна звезда — ответ неправильный; правильное слово знакомо.
  • Ноль звезд — полный блэкаут.

Как видите, эти оценки было бы неправильно соотносить со школьными отметками — это баллы, на основе которых — а также на основе истории прежних ответов — рассчитывается интервал для следующего повторения.

Мы проанализировали данные 150,000 ответов в карточках и провели полевые исследования.

Анализ времени на ответ

На основе этих данных мы и построили алгоритм, который оценивает ответ ученика по этой шестибальной шкале.

Итак, в новой редакции карточек оценки от пяти до трех звезд вычисляются в зависимости от времени раздумий над переводом. Очень условно можно сказать, что ответ за пять секунд — это пять звезд; ответ за 10 секунд — четыре звезды; ответ за 20 секунд — три звезды. Условно — потому что в реальности оценка — это не целое число, а число с плавающей запятой, которое к тому же рассчитывается по нелинейной шкале.

Одну и две звезды получают ответы, для которых использовалась подсказка — в зависимости от того, какая доля букв была открыта (именно доля, а не их абсолютное число).

Ноль звезд — это ответ «не помню».


Если время над ответом превысило 20 секунд, но вы все равно отвечаете «Помню», такой когнитивный диссонанс у алгоритма мы разрешаем путем ручного вмешательства: вам придется самим дать себе оценку.

Мы оставили такую возможность, потому что во время проверки могло что-то отвлечь, и полагаться только на время на ответ было бы неправильно.

Если время на раздумье превышает 20 секунд

А еще…

Мы упростили переход из режима УЧИМ в режим ПРОВЕРЯЕМ. Для того, чтобы кнопка перехода была активна, необходимо, чтобы вы хотя бы раз прослушали слова. Но если перейти все-таки нужно здесь и сейчас (например, вы слушали эти слова прошлый раз), мы предусмотрели возможность это сделать без глупой промотки слов.

Быстрый переход из режима УЧИМ в режим ПРОВЕРЯЕМ

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

Прогресс-бар

Поскольку карточки и Мои слова теперь очень тесно связаны, имеет смысл после самопроверки открывать слова урока в Моих словах, отфильтровывать там слова с низкими оценками, дрилить их и снова проверяться, дабы «закрыть двойку». Чтобы облегчить этот переход, мы добавили ссылку, по которой можно сразу открывать Мои слова со словами с этого урока.

Открыть слова этого урока в Моих словах

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

Напоминание, почему слова пока нельзя открыть в Моих словах

И еще одна очень значительная фича — возможность переключаться между переводами слов, которые попадали в карточки многократно на разных уроках. Таких слов немало.

Вариант перевода

Попадали они нередко в каком-нибудь узком значении. От урока к уроку эти значения могли различаться в нюансах. Поскольку новая встреча с таким словом не создает цепочку повторений, мы решили, что целесообразно для таких слов хранить два варианта переводов: один в том виде, в каком слово попало в конспект и в карточки, а второй — обобщенный, который объединяет в себе все значения, которые появлялись у слова на разных уроках.

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

Вариант перевода

Важно при этом помнить, что если слово имеет несколько принципиально разных значения (например, l’addition — это сложение, а une addition — счет в кафе), оба его вхождения трактуются, будто бы это два разных слова.

Еще добавили возможность отключать озвучку перевода по-русски — была такая заявка.


И еще. Я не делал отдельного анонса, но не могу это не упомянуть.

Теперь словарики к урокам — то, на чем базируются карточки, — покрывают 294 урока, то есть почти весь курс. Это ВАУ! Это 6,700+ слов!

Я хочу сказать огромное спасибо этим ребятам, которые трудились над их наполнением.

Илья Попов
Виктория Батус
Надежда Кузнецова
Рысжан Саясат
Ани Баласанян
Виктория Жукова

Спасибо вам огромное!!!

Поклон Вам за колоссальный труд!
Учимся с хорошим настроением и с большим удовольствием!

Алексей

Есть один момент. Запустил карточки. Звука вообще нет. Я галочку включал - выключал, ничего не слышно.
Очень хочется слышать французское произношение

Алексей

Прекрасная новость, всегда радостно видеть очередной шаг в развитии проекта! Большое спасибо!

ILYA DUMOV: Одну и две звезды получают ответы, для которых использовалась подсказка — в зависимости от того, какая доля букв была открыта (именно доля, а не их абсолютное число).

Ноль звезд — это ответ «не помню».

Тут мне придется немного попривыкнуть, обычно я везде, где не угадал слово, жал Не помню. Хотя таких, чтобы ничего не всплыло в голове, даже видя ответ, я вроде не встречал.

Алексей Греков: Есть один момент. Запустил карточки. Звука вообще нет. Я галочку включал - выключал, ничего не слышно.
Очень хочется слышать французское произношение

А в каком режиме вы проверяете? У меня все ок и при заучивании слов, и при проверке, и в Моих словах. Ставлю галочку - пропадает озвучка на русском, на французском остается. Убираю - возвращается. В общем, не воспроизводится проблема.

Алексей Греков: Есть один момент. Запустил карточки. Звука вообще нет. Я галочку включал - выключал, ничего не слышно.

Очень хочется слышать французское произношение

А в каком режиме вы проверяете? У меня все ок и при заучивании слов, и при проверке, и в Моих словах. Ставлю галочку - пропадает озвучка на русском, на французском остается. Убираю - возвращается. В общем, не воспроизводится проблема.

Режим накопившихся карточек. Когда в уведомлениях (где колокольчик) появилось сообщение:

“У вас появилось столько-то слов для повторения.
Перейдите по ссылке для их просмотра.”

Алексей

Алексей Греков: Режим накопившихся карточек. Когда в уведомлениях (где колокольчик) появилось сообщение:

Странно, я сегодня уже повторял, что накопилось, никаких проблем не было. Можно попробовать другой браузер, если не поможет, придется ждать ответа Ильи и разбираться глубже.

Алексей Греков: Режим накопившихся карточек. Когда в уведомлениях (где колокольчик) появилось сообщение:

popov-ilya: Странно, я сегодня уже повторял, что накопилось, никаких проблем не было.

Под Windows 10 на Chrome всё работает. Нам удалось воспроизвести ошибку только во втором уроке и только на iOS (не воспроизводился русский перевод, французские слова озвучивались как обычно). Разбираемся в дебаггере, в чем может быть дело.

Важно помнить, что озвучка слов грузится в фоне. Если слов много, этот процесс занимает время и идет параллельно воспроизведению. При медленной связи могут возникать проблемы с воспроизведением. Мы сегодня весь вечер пытаемся с этим разбираться. Я напишу, как только что-то накопаем.

popov-ilya: Тут мне придется немного попривыкнуть, обычно я везде, где не угадал слово, жал Не помню. Хотя таких, чтобы ничего не всплыло в голове, даже видя ответ, я вроде не встречал.

Если не вспомнить слово, прежде, чем жать на «не помню», стоит попробовать пооткрывать буквы.

В любом случае если слово не вспоминается, это значит, что с ним надо работать. Ноль, один или два — это всегда сброс счетчика повторений. И всегда слово придет назавтра. Сохранится только общая оценка слова. И это правильно. Это же и значит, что слово не запомнилось. А значит, что его надо дополнительно учить. Фишка второй версии карточек в том, что теперь такие слова можно собирать в отдельный пакет, дрилить их и исправлять двойки, единицы и нули.

Алексей Греков: Режим накопившихся карточек. Когда в уведомлениях (где колокольчик) появилось сообщение:

popov-ilya: Странно, я сегодня уже повторял, что накопилось, никаких проблем не было.

Под Windows 10 на Chrome всё работает. Нам удалось воспроизвести ошибку только во втором уроке и только на iOS (не воспроизводился русский перевод, французские слова озвучивались как обычно). Разбираемся в дебаггере, в чем может быть дело.

Важно помнить, что озвучка слов грузится в фоне. Если слов много, этот процесс занимает время и идет параллельно воспроизведению. При медленной связи могут возникать проблемы с воспроизведением. Мы сегодня весь вечер пытаемся с этим разбираться. Я напишу, как только что-то накопаем.

Я работаю через Хром на смартфоне. У меня было 200 с лишним слов для повторения. Иногда отдельные звуки проскакивали. Но в основном тишина. В прежней версии такого не было. Интернет достаточно быстрый не менее 50 Мбит/сек

Алексей

Алексей Греков: Иногда отдельные звуки проскакивали.

Да, вот у меня похоже было. С компа (детали в письме). В данный момент слов повторяю меньше 100, в целом звук воспроизводится приемлемо, но слегка “кряхтит”, как будто кассету зажевывает.

Пользуясь случаем, хочу еще раз сказать, что карточки просто уберр! Кажется, раньше тоже было ранжирование слов оценками (не совсем понимала принцип)… Но сейчас все стало гораздо более “автоматично”.
Большие охапки слов оцениваются, перемалываются внутри программы, на выходе остается лишь “сухой остаток” - и он заметно меньше, гораздо легче для повторения. Мотивация очень растет за счет того, что повторение занимает так мало времени: вот слова, готовы на блюдечке, остается лишь быстро пробежаться по ним, освежить в памяти.

Возник небольшой вопрос: чтобы слова попали внутрь “мельницы” алгоритма - достаточно ли раз пройтись по выборке в режиме “УЧИТЬ” (слова в “Моих словах” при этом остаются в статусе “непройденные”)? Или нужно обязательно “ПОВТОРИТЬ”?

Les cornichons!

Алексей Греков: Иногда отдельные звуки проскакивали.

Да, вот у меня похоже было. С компа (детали в письме). В данный момент слов повторяю меньше 100, в целом звук воспроизводится, но регулярно “кряхтит”, как будто кассету зажевывает.

Сейчас повторял слова. Накопилось 50 слов. Всё отлично слышно!
Видимо проблема в количестве. С большим объёмом пока не справляется.

Алексей

Electra: Возник небольшой вопрос: чтобы слова попали внутрь “мельницы” алгоритма - достаточно ли раз пройтись по выборке в режиме “УЧИТЬ” (слова в “Моих словах” при этом остаются в статусе “непройденные”)? Или нужно обязательно “ПОВТОРИТЬ”?

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

popov-ilya: пока вы не проверите выученные слова, оценку они не получат

Логично! Да, это логично, с т. зр. алгоритма оценивания… А с т. зр. пользователя, наверное, это будет не всегда очевидно…

Les cornichons!

popov-ilya: пока вы не проверите выученные слова, оценку они не получат. Соответственно, и в дальнейших повторениях участвовать не будут.

Electra: Логично! Да, это логично, с т. зр. алгоритма оценивания… А с т. зр. пользователя, наверное, это будет не всегда очевидно…

Пока слово не получило оценку, ему просто нет смысла куда-то попадать, потому что невозможно определиить, когда его надо повторять. А дрилить слова (особенно в первый раз) нужно довольно долго. Возможно, что и не один день (я модальные глаголы слушал днями, даже в душе включал, помнится — очень трудно заходили).

Теоретически мы можем сделать попадание слов после первой прокрутки в прослушке (когда загорается кнопка, позволяющая перейти в Проверку). Потому что сейчас, чтобы слова попали «в мельницу», достаточно проверить хотя бы одно слово — и весь пакет там. И нам не больно их хранить в базе фактически всего лишь на один клик раньше. И переделать это несложно. Если в этом есть сермяжный смысл, мы можем. Убедите меня, что это надо! ;))

Electra: Да, вот у меня похоже было. С компа (детали в письме). В данный момент слов повторяю меньше 100, в целом звук воспроизводится приемлемо, но слегка “кряхтит”, как будто кассету зажевывает.

Я прошу прощения, что не ответил в личку, хотя вопрос этот мы провентилировали с Антоном, и не раз.

История такая, что подгрузка слов идет в фоне. Сперва приложение грузит какой-то буфер из первых слов, чтобы побыстрее позволить пользователю приступить к работе, а дальше загрузка идет в фоне. Под загрузкой я имею в виду аудио-файлики mp3 с произношением слов. Загрузка запускается параллельно, в N потоков по числу слов, но реально, если посмотреть в инспекторе, грузятся файлики последовательно или небольшими пачками — остальные висят в ожидании.

Предположить, что стоит подождать — и все должно разрешиться, — трудно. То есть это первое, что приходит в голову, но по-видимому, это не решение. Пока не понятно, почему так происходит.

Кряхтение может быть связано, например, с переполнением буфера аудио-драйвера (это я для примера, не обязательно так) или с нагрузкой на процессор по каким-то причинам. Нам в лабораторных условиях трудно это все воспроизвести.

Но надо понимать, что очень много слов — это, конечно, запуск адского числа потоков на загрузку и это с точки зрения ресурсов компа или телефона процедура небесплатная. Но по моим ощущениям, 100 слов — это разумный по объему пакет слов. Я на компе запускал и бóльшие объемы, и всё было без проблем.

Что же касается OS X, там всё сложнее. То, что нужно отказаться от Safari, это уже не вызывает сомнений — слишком он далек от реализации всех стандартов и слишком много избыточных ограничений (из-за которых мы до сих пор не можем зарелизить карточки с глаголами). С Chrome другие проблемы — он прожорлив насчет памяти; большое число открытых вкладок может (простите за каламбур) вносить свой вклад в проблемы — и это касается не только Маков.

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

Алексей Греков: Я работаю через Хром на смартфоне. У меня было 200 с лишним слов для повторения. Иногда отдельные звуки проскакивали. Но в основном тишина. В прежней версии такого не было. Интернет достаточно быстрый не менее 50 Мбит/сек

Мы не трогали эту часть функционала в этой версии. Но мы продолжим изучать этот вопрос.

Вопрос возник. Прошу прощения, если где-то его уже задавали. Происходит ли так, что слова в конце концов выучиваются окончательно и перестают попадать в выборку? :) А если нет, то как удалить часть слов из большой кумулятивной выборки? (Сложно вручную загружать все уроки, тем более, я даже и не знаю, из каких уроков я загружала ранее слова, а из каких нет…) Спасибо заранее за внимание:)

Les cornichons!

Electra: Происходит ли так, что слова в конце концов выучиваются окончательно и перестают попадать в выборку? :)

Да, всё работает по классической схеме: на слово дается пять повторений. Первое ВСЕГДА произойдет назавтра. Дальше всё будет зависеть от полученных оценок. Если оценка ниже тройки (то есть если ответ был «не помню» или использовалась подсказка), счетчик сбрасывается. Но оценка при этом сохраняется, то есть начинается всё не с нулевой суммой и дальнейшие интервалы будут рассчитываться с учетом истории оценок. Одним словом, если хоть раз случилось, что слово не вспомнилось быстро, начинай сначала. Это справедливо!

Electra: как удалить часть слов из большой кумулятивной выборки? (Сложно вручную загружать все уроки, тем более, я даже и не знаю, из каких уроков я загружала ранее слова, а из каких нет…)

Это отличный вопрос! И это действительно то, чего не хватает — возможность управлять своим списком слов на повторение.

Первая моя идея была в том, чтобы когда приходишь на повторение слов из уведомлений, чтобы при этом они загружались и в набор слов для режима УЧИТЬ, то есть чтобы перед проверкой их можно было бы подрилить. Мы с Антоном заспорили на эту тему. Его доводы: слова попадут в оперативную память и, как следствие, оценки будут искажены — даже те слова, которые помнились плохо, получат завышенные оценки и неоправданно длинный интервал перед следующим повторением. И с таким доводом трудно не согласиться. При этом Антон считает, что сама проверка уже является повторением, потому что тебя не выпустят, пока ты слово не запомнишь (отвечая «не помню», ты пускаешь это слово на новый круг). В этом есть резон, поэтому я настаивать не стал.

Надо понимать, что слова на повторение — это не какой-то фиксированный список. Раз в час сервер проходится по всем пользователям, для которых в их часовом поясе сейчас полночь, и формирует каждому его слова на повторение — добавляет к текущему списку новые слова, назначенные на наступивший в этом часовом поясе день. Часовой пояс берется в момент последнего визита пользователя (сервер может запросить браузер о текущем часовом поясе) — это значение заносится в профиль пользователя.

Тем не менее технически это такой динамический пакет — подобный пакетам слов к урокам. И поскольку мы сделали возможность открывать в Моих словах карточки к заданному уроку по параметру в адресной строке, теоретически в список доступных пакетов в Моих словах можно добавить и слова на повторение. И открывать их по URL’у или просто выбором из списка.

У этого есть обратная сторона: а если у пользователя там сидят сотни слов? И он захочет их загрузить? У нас же тысячи слов в карточках. Другое дело, что то же самое можно сделать и просто, выбрав большой список уроков — сервер тоже честно отдаст на загрузку адовый объем слов. И ничего, сервер из-за этого ни разу не упал.

Так что я думаю, мы сможем это сделать. Дальше вопрос в том, можно ли это сделать быстро. Если да — сделаем. Если это надолго, то отложим.

Дело в том, что в мае грядет ввод в действие трех новых метрик для сайтов от Гугла — Web Vitals. Они могут оказать заметное влияние на ранжирование в поисковой выдачи. И провал по этим показателям для нас подобен смерти, поэтому нам сейчас приходится заниматься здоровьем сайта — ускорением его загрузки и быстротой отклика. Это бонус для всех пользователей, но это одновременно и большая и очень важная для нас работа, поэтому если мы сейчас и можем в технической части отвлекаться от нее, то очень ненадолго.

Но feature request очень клёвый и нужный, спасибо! Я сам страдаю. Я во время тестирования и полевых испытаний понагнал себе в повторение всякие слова типа moi, toi, beaucoup и прочая, что мой список замусорен хорошо знакомыми словами, так что сам я полноценно не могу пользоваться карточками, а хотел бы! Так что это очень нужная вещь!

ILYA DUMOV: Да, всё работает по классической схеме: на слово дается пять повторений. Первое ВСЕГДА произойдет назавтра.

О, спасибо, это интересные детали, а то не понимала схему. Уже хорошо, что возможно “добить” слова за 5 повторений, если они очень знакомые. Попробую.

ILYA DUMOV: Первая моя идея была в том… чтобы… они загружались и в набор слов для режима УЧИТЬ

Не сразу поняла, а потом дошло, что в режиме УЧИТЬ есть возможность удалить некоторые слова из выборки. То есть становится возможным прошерстить текущий список, отсеять лишнее, перед повторением. Интересная идея! Правда, пользователю, получается, придется дважды проходиться по списку? Повторение тогда становится заметно более объемной задачей… если я все правильно поняла. Может, если вашу идею чуть развить, то кнопку “крестик Х” добавить в режим повторения? Ну так, навскидку идея. Там это было бы удобно, под рукой. Если это не повредит логике программы.

ILYA DUMOV: Тем не менее технически это такой динамический пакет — подобный пакетам слов к урокам.

Это очень круто, как оно сейчас работает (может, лучше и не трогать его пока)! Совсем зрелым продуктом выглядит! “Колокольчик” с эмблемой котейки каждый раз вызывает прилив радости - о, слова поспели, сами!, осталось только открыть и повторить - что вообще не вызывает никаких сложностей. Слова как будто подаются на блюдечке с каемочкой голубой) Вся головная боль, что, когда повторять, как быть с этими списками слов - все это ушло и превратилось в фигурку хитрого котейки)

ILYA DUMOV: Но feature request очень клёвый и нужный, спасибо!

Спасибо вам!!!

Les cornichons!

Electra: То есть становится возможным прошерстить текущий список, отсеять лишнее, перед повторением. Интересная идея! Правда, пользователю, получается, придется дважды проходиться по списку? Повторение тогда становится заметно более объемной задачей… если я все правильно поняла.

Это была просто идея — иметь дополнительную возможность подрилить слова, которые прилетели на повторение. Но крестиком в них удалять действительно неудобно. Это аналогично работе с магнитной лентой — системой с последовательным доступом: прежде чем ты ты доберешься до нужного места, надо просмотреть всё предыдущее. А нужно чтобы как в жестком диске или оперативной памяти — это примеры системы с произвольным доступом. Поэтому мы взялись реализовать идею дополнительного пакета — такого же пакета слов, как и на уроках, только динамического, в котором сидят слова для повторения. И такой пакет можно будет открыть в Моих словах: выделить те слова, которые уже повторять бессмысленно (сразу можно сказать, что туда попадут слова, знакомые из русского или другого знакомого языка — типа question или plage — ну чего их учить-то!) — и вычеркнуть их.

А если появится желание их погонять — voilà, выбрал слова и запустил в карточках. И так мы убиваем сразу двух зайцев — и возможность управлять этими словами, и возможность дрилить их дополнительно.

Надо только понимать, что как только они будут повторены (то есть пройдут через процедуру «помню»/«не помню»), они из этого списка исчезнут и список станет пустым — до тех пор, пока не прилетят новые слова на повторение.

 
Зарегистрируйтесь или войдите чтобы оставить сообщение.