Прежде чем взяться за разработку мобильного приложения для заучивания лексики, мы в школе Skyeng потратили массу времени на изучение алгоритмов работы памяти и запоминания слов. В результате разработка Aword заняла чуть больше времени, но мы более уверены в результате — использование определенных алгоритмов в показе слов помогает эффективнее пополнять словарный запас.


На рынке представлено большое количество приложений для заучивания иностранных слов. Всех их объединяет общая черта — использование зубрежки (дриллинга) в качестве основного инструмента обучения. Чем больше времени ученик проводит за повторением слов, тем выше шанс, что он их запомнит. Например, вполне реально за час выучить сто слов. Однако без повторения уже через 6 часов половина из них будет забыта. Еще через шесть часов в памяти останется не больше 15 слов. Чтобы этого не произошло, необходимо регулярно повторять весь набор (зубрить).

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

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

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

Зубрежка vs запоминание


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

Долгосрочная память – это то, что позволяет нам легко вспомнить полученные сведения и через год, и через пять лет. Но для того, чтобы она заработала, необходимы регулярные тренировки, причем наиболее эффективный формат этих тренировок – не перечитывание учебника, а проверка по контрольным вопросам или постоянное применение полученных знаний на практике.

Например, студент, изучающий новый язык программирования, получает эту тренировку в виде ежедневных сессий кодинга. Постигнув тему объектов в C++, он сможет навсегда ее запомнить, если будет регулярно использовать. Поэтому преподаватели требуют объектного программирования даже тривиальных задач, где разумно было бы без него обойтись.

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

Но есть сферы, где долгосрочная память необходима. Наиболее очевидные – медицина и лингвистика. Врач должен помнить симптомы любых, даже редких, болезней. Человек, претендующий на свободное владение английским языком, должен знать слово serendipity, даже если он никогда в жизни с ним не столкнется. Разумеется, наиболее эффективный способ развить такую долгосрочную память – практика. Выпускник медицинского вуза на несколько лет отправляется в ординатуру или интернатуру. Профессиональный переводчик обязательно едет на стажировку в среду носителей языка.

Но что делать, если такой возможности нет? И как быть, если врач за время ординатуры так и не столкнулся со случаем синдрома Кавасаки?

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

Польский студент и немецкий психолог


Петр Возняк, автор самого известного алгоритма запоминания SuperMemo, задумался об оптимизации этого процесса в 80-е годы, будучи студентом Познаньского Политеха. Одной из задач, которые он ставил перед собой, было полноценное владение английским языком – его не устраивал тот поверхностно-профессиональный уровень, которым вполне довольствовались его сокурсники.

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

С помощью несложных вычислений, основанных на полученных данных, Возняк установил, что для запоминания небольшого словаря в 15 тысяч английских слов ему потребуется тратить на тренировки ежедневно по два часа. Потраченное время растет пропорционально количеству слов: для запоминания 30 тысяч потребуется четыре часа повторений ежедневно. Не очень удобно.

К счастью, за сто лет до Петра Возняка аналогичной проблемой озаботился немецкий психолог Герман Эббингауз, тоже весьма упертый человек. Эббингауз провел два годичных эксперимента, в ходе которых запоминал бессмысленные наборы слогов. В результате было сделано несколько открытий, самым важным из которых является Кривая забывания.

Эббингауз экспериментальным путем установил, что скорость забывания информации падает после каждого повторения. После первого запоминания данных забывание идет очень быстро: уже через час из головы вылетает примерно половина материала, через десять часов – 65%; впрочем, около 20% остается и через месяц после изучения. Однако, если в течение первого часа повторить весь материал, процесс его забывания значительно замедлится, и новое повторение можно делать уже через сутки. Воспользовавшись Кривой забывания, можно расставить повторения таким образом, чтобы произошло максимальное долговременное усвоение материала за минимальное количество тренировок.

Этот метод называется «интервальные повторения» (Spaced Repitition). В 30-е годы был проведен эксперимент, показавший, что такая техника действительно благотворно влияет на процесс обучения. Однако популярности она в то время не обрела из-за своей чрезмерной сложности: необходимо было готовить тысячи карточек с вопросами-ответами, правильно их тасовать, вовремя повторять… Но потом появились компьютеры.



Вернемся к польскому студенту Петру Возняку, мечтавшему выучить английский, но не горевшему желанием тратить на тренировки по четыре часа в день. Он решил алгоритмизировать технику интервальных повторений, что в конце концов вылилось в программу SuperMemo. Разумеется, все оказалось далеко не так просто, и разработка SuperMemo стала, по сути, делом его жизни.

Алгоритмизация метода интервальных повторений – задача достаточно очевидная. Главная проблема этого метода – необходимость точно рассчитать время, когда повторение будет максимально эффективным – т.е. тот самый момент, когда информация забывается. Если написать программу, которая будет не только проводить тренировки, но и своевременно напоминать пользователю об их необходимости, это теоретически позволит добиться более эффективного обучения.

Здесь есть свои особенности. Сама по себе кривая забывания – явление универсальное, однако у разных людей на нее накладываются разные экспоненты. Кому-то третье повторение требуется через 20 минут, кому-то – через час; аналогичным образом изменяется расстояние и между последующими повторами. Поэтому тренировки должны быть гибкими – в их ходе алгоритм старается понять скорость забывания конкретного ученика и подстроиться под нее.

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

Лицензия на слова


В основе нашего мобильного приложения Aword лежит концепция «лицензий на слова» — по аналогии с ограниченными по времени лицензиями ПО. После первого запоминания «лицензия» действует примерно час; если не повторить слово, оно будет забыто. Если повторить слова в конце этого часа, появится новая «лицензия», уже на шесть часов. Следующая «лицензия» будет на сутки, потом на три дня, на неделю, месяц, полгода, два года. Самый эффективный момент для повтора — пограничный, когда предыдущая «лицензия» истекает, и для того, чтобы вспомнить слово, надо приложить определенные усилия. Все «лицензии» для каждого слова хранятся на нашем сервере в учетной записи ученика, и задача мобильного приложения — вовремя напомнить, что настала пора их обновить.

Базовый алгоритм, лежащий в основе Aword, можно описать таким псевдокодом:

function makeRepetition( user, word, license ){
var timePassed = (new Date()) - license.startTime;
var answer = showWordCard( word );
 
user.tuneParameters( license, timePassed, answer.quality );
word.tuneComplexity( license, timePassed, answer.quality );
 
if(answer.quality > 0) {
 license.next( timePassed );
} else {
 license.rollback( timePassed );
}
}

Основной код этого алгоритма определяет, можно ли дать увеличенную «лицензию» на слово, или же его надо учить снова. tuneParameters и tuneComplexity — условные ссылки на настроечные алгоритмы; качество ответа (answer.quality) представляет собой число от 0 до 1. Это число равно единице, если ученик быстро, с первого раза узнал слово; у него хорошо работает память, задача оказалась для него слишком легкой. В этом случае алгоритм увеличит интервалы повторений. Если качество ответа близко меньше 0,5 — ответ был дан с трудом, после подсказок; стандартный интервал повторов для этого ученика слишком велик, необходимо проводить тренировки чаще.

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

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

— первый повтор – сразу после прочтения (проверка по контрольным вопросам);
— второй повтор – через 20 минут;
— третий – через сутки;
— четвертый – через 48 часов после третьего;
— пятый – через 72 часа после четвертого.

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

При изучении же иностранного языка мы имеем дело не с хаотичными наборами букв, а с осмысленными словами. Степень осмысленности и понятности слова ученику напрямую влияет на скорость запоминания. Так, инженер значительно быстрее запомнит слово «шестеренка», чем философ. Привычные, легко представляемые слова («дуб») запоминаются легче, чем экзотические («пихта»). Как следствие, необходимо аккуратно подбирать группы с примерно одинаковой скоростью запоминания. Алгоритм SuperMemo использует для такого подбора субъективную оценку пользователя – насколько ему сложно дается слово; это не очень точный показатель. Еще один фактор – уже имеющаяся у ученика словарная база, которую необходимо оценить для составления программы. Все это тоже должно быть алгоритмизировано. Впрочем, это темы для отдельных статей.

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

А если вы сами хотите поучаствовать в разработке подобных штук — у нас масса интересных вакансий!
Поделиться с друзьями
-->

Комментарии (32)


  1. Finesse
    10.10.2016 11:25
    +5

    Пользуюсь Anki. В нём срок «лицензий» определяет пользователь, когда отвечает на вопросы, ставя оценку (насколько хорошо он помнит карточку). За год выучил 1500 не знакомых ранее английских слов плюс их обратный перевод, тратя по 10 минут в день.


    1. GeForester
      10.10.2016 11:38

      А какие словари используете кроме 4000 Essentials English words by Paul Nation?


      1. Finesse
        10.10.2016 11:45
        +2

        Не использую готовые словари. Самые распространённые слова я знаю, потому что в детстве долго занимался английским. Но словарный запас всё равно оказался недостаточным, чтобы комфортно читать книги, статьи и документацию. Поэтому я просто записываю незнакомые слова, которые встречаю.


        Спустя год стало действительно комфортнее читать литературу, к словарю практически не обращаюсь.


        1. Ontaelio
          10.10.2016 11:58

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


          1. Finesse
            10.10.2016 11:59

            Как она узнает, какие из слов мне не знакомы? Буду поглядывать вашу ленту.


            1. Ontaelio
              10.10.2016 12:04

              Она, конечно, не знает — может только предполагать. Но она заранее подготовит предположительный набор, из которого вы сможете выкинуть то, что знаете. Для Анки, думаю, это будет полезно.


            1. midday
              10.10.2016 14:56

              Я на линглвалео установил в браузер плагин. Встречаю незнакомое слово — он перевод подскажет и запшет в словарь на зубрежку.


      1. tvictor
        13.10.2016 10:52

        Подскажите, пожалуйста, а где взять эту коллекцию, чтобы добавить в Anki?


        1. GeForester
          13.10.2016 11:15

          На рутрекере. Преимущество этого словаря – там нет русской транскрипции и есть нативная озвучка фраз. Слова учатся семантически, в контексте языка.


    1. kolchan11
      10.10.2016 12:40

      Можете подсказать, какие вы используете настройки своей колоды (сколько слов учите в день, учите ли вы их раз в день или разбиваете эти 10 минут)? Может быть есть еще какие-то нестандартные вещи, к которым вы пришли? Просто я тоже сам составляю колоду, но сейчас столкнулся с такой ситуацией, что я не могу учить новые слова, так как повторение 1200 слов (х2 карточки на каждое) уже занимает приличное время и не особо стремится уменьшаться.


      1. Finesse
        10.10.2016 12:45
        +1

        Настройки все стандартные, ничего не менял (то есть до 100 известных слов в день и до 20 новых). Учу слова раз в день в 1 подход. Иногда могу разбить на 2, если слишком много. Единственное нестандартное, что я делаю — стараюсь добавлять новые слова по-немногу, а не все сразу. В итоге у меня получается в среднем 30 карточек в день.


        Если для Вас слишком много карточек в один день, то поставьте ограничение (например, 40 известных слов и 2 новых), потом постепенно его можно будет смягчать.


        1. Finesse
          10.10.2016 12:51

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


  1. chemistmail
    10.10.2016 11:30
    +1

    Оно конечно не плохо, но бот для телеграмм, был бы в разы лучше и приятней. )


    1. Perfilkina
      10.10.2016 13:28

      Про бот задумывайся ежедневно) И не только задумываемся! )


    1. gaivan
      10.10.2016 13:31

      @Skyengbot


  1. marenkov
    10.10.2016 12:31

    Ждем свежую статью о выходе на Google Play.


  1. zzmaster
    10.10.2016 15:56
    +1

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


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


    1. saboteur_kiev
      10.10.2016 17:23

      «Я однажды задумался — а почему столько сложностей со вспоминанием слов?»

      Потому что человеческая память никак не похода на DDR4 или HDD, о чем множество статей на гиктаймсе.

      И чтобы слово запомнилось, оно должно быть должным образом проассоциировано и повторено.
      То есть либо вы регулярно его используете в повседневной жизни, либо повторяете искусственно (зубрите).

      Вы же смотрели фильмы недавно. В вашей памяти они все есть. Но воспроизвети все по кадрам вы не сможете. Поэтому нет, дело не в том, что нет навыка извлечения, а в том, что недостаточно хорошо запомнили.


      1. zzmaster
        10.10.2016 19:24

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


        Да и мы, обычные люди, бывает, вспоминаем какие-либо факты после однократного предъявления, и намного больше вспоминаем под гипнозом, а ведь структура нашего мозга не меняется гипнозом.


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


        1. saboteur_kiev
          11.10.2016 00:15

          Прошу прощения, но пожалуйста покажите мне такого человека. Хотя бы одного.

          Вы просто ведетесь на популизм и фокусы. Есть люди, которые тренируют свою память и используют мнемонические техники для запоминания длинных чисел. Можно даже заучить текст, что мы успешно делали в школе. Запомнить длинное число, при некоторой тренировке и составления мнемонического ряда подсказки — выполнимая задача. Но это тренировка и мнемоника, и специальные усилия. У них достаточно ограниченные возможности.

          Но абсолютной памяти, которая «просто просмотрел книгу и помнишь каждую страницу» или «просто просмотрел фильм, помнишь каждый кадр» — не существует.


          1. zzmaster
            11.10.2016 09:43

            Почитайте про гипертимезию https://ru.wikipedia.org/wiki/Гипертимезия
            Вот, кстати, оттуда


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

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


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


            1. saboteur_kiev
              11.10.2016 11:34

              «Абсолютная память» и «способность запоминать предельно высокое количество информации» — отличаются вполне достаточно, чтобы во втором случае уложиться в физические и биологические возможности человека.

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

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

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


        1. 3aicheg
          11.10.2016 05:21

          Начнём с того, что «все детали любого фильма» никак вообще не попадут в мозг уже из-за одних только физических ограничений человеческого зрения — глаз, на самом деле, очень мало чего успевает воспринять вообще, а в хорошем разрешении и ещё того меньше, картинка в голове процентов на 80 дорисовывается мозгом.


          1. zzmaster
            11.10.2016 09:38

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


  1. dirtmaxim
    10.10.2016 16:01

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


  1. progchip666
    10.10.2016 21:07
    +2

    А озвучка произношения в вашем приложении существует?


    1. Perfilkina
      10.10.2016 23:44

      Существует! К сожалению, был небольшой баг с некоторыми словами в мобильном приложении. Поэтому озвучка немного страдала. Только что в Store появилось обновление. Все слова озвучены прекрасным мужским британским голосом. Единственное, чтобы его услышать, нужно чтобы на телефоне был включен звук)


      1. progchip666
        11.10.2016 11:13

        Это здорово, а то у меня были большие проблемы с Лингволео, у которых озвучка на наждое слово почему то с некоторых пор начала подзагружаться Онлайн. Из-за этого их приложение ужасно тормозит, жрёт трафик как слон и сажает аккумулятор телефона за пару часов. В конце концов пришлось от него отказаться.


  1. 3aicheg
    11.10.2016 05:28

    Не то чтобы я гуру языкознания, конечно, но на основании собственного опыта пришёл к выводу о полной бессмысленности «заучивания иностранных слов» как такового. Лучше всего просто читать текст со словарём — тут вам и повторения, и смысл, и контекст, и нюансы использования, всё воедино.


    1. zzmaster
      11.10.2016 10:38

      Я тоже пришел к выводу о бессмысленности только повторения. Лучше читать текст со словарем, пересказывать, а на досуге, где-нибудь в маршрутке — повторять слова.


      Предлагаю концепцию идеального, с моей точки зрения, приложения. Это — читалка текстов, куда можно загружать страницы из интернета (новости и пр.). В процессе чтения по тапу должен открываться перевод слава с опцией добавления его в список. Конечно, добавляется как прямой перевод, так и обратный. Поскольку значений много, то необходим диалог выбора варианта перевода. Словарик создается отдельно для каждого текста. Возможность повторять слова как одного словарика, так и нескольких вплоть да всех (в пределах языка). При повторении я хочу сам управлять словами — переносить в группы "Запомнено", "Повторить", "Сложные". Опция "Отложить слово на N дней".
      Также, для больших текстов (книг) должен составляться календарь, чтобы я мог перечитать текст, который читал например в период 10-15 дней назад, или только повторить слова из этого текста.


      Буду жутко рад, если кто-нибудь это реализует.


      1. 3aicheg
        11.10.2016 11:25

        И грабить корованы.

        Я когда-то мастерил себе тулзу для изучения японского — туда копипастился небольшой текст, она вытаскивала из него все слова и иероглифы, которые обраруживались в англо-японском словаре, отсеивала то, что мной было ранее занесено в «белый список» и сохраняла результат в виде файла, который можно было открыть перед тем, как читать сам исходный текст, и минут десять подолбить: тебе показывает значение, надо нарисовать слово иероглифами, или наоборот. Если что-то хорошо помнишь — можно сразу в белый список, если что-то всё время забываешь — в чёрный. Белый и чёрный списки были общие для всех текстов, а «словарики» отдельные для каждого, да.


        1. Ontaelio
          11.10.2016 12:18

          На самом деле, Aword тоже не предлагает заучивание ради заучивания, «от A до Z» (если, конечно, пользователь сам этого не захочет). У учеников школы словарик пополняется после каждого урока (домашнее задание), а внешние пользователи могут выбрать из 545 тематических наборов: это и жизненные ситуации, и профессиональная лексика, и книги-фильмы-игрушки, и экзамены типа TOEFL. На днях опубликуем статью про наш внутренний инструмент для создания таких наборов, ссылка будет.