Как запомнить что-нибудь навсегда?
- четверг, 17 августа 2023 г. в 00:00:19
Привет, это история о разработке самого удобного приложения для зубрежки английских слов инди-разработчиком. Еще одно?!
– Да, но с GenAI особенностями и алгоритмами!
я мобильный разработчик с 2012, в базе Android, Lead
В ноябре прошлого года я пробую жить в Дубае и решаю подтянуть свой словарный запас. Тогда я начинаю перебирать приложения для изучения английских слов и остановился на Анки – это легендарный комбайн для зубрежки всего: слов, иероглифов, названий мышц и костей – всего того, где есть зубрежка. Ссылка на Вики.
Это приложение с карточками, где вам показывается слово, а вы, в свою очередь, пытаетесь вспомнить его перевод или определение. Если вспомнить не получается – нажимаете на кнопку, и перевод появляется.
Анки работает на интервальных повторениях и придуманной еще в XIX веке кривой забывания Эббингауза. Их суть повторять слово, которое вы пытаетесь запомнить, чуть ранее момента его забывания, при этом постепенно увеличивая интервалы между повторениями. Так слово закрепляется в долговременной памяти.
Первые программы с таким принципом
стали появляться в конце 80-х годов
Другими словами, вам показывается изучаемое слово, а вы пробуете вспомнить его перевод. Если вспомнить удается, то слово будет вновь показано для проверки уже через три дня, потом через восемь, двадцать два и так далее. Но если вы забыли – цепочка сбрасывается и начинает строиться заново с первого дня.
Слово проходит такую цепочку, постепенно увеличивая интервал для следующего повторения. При таких повторениях вы запоминаете слово на 100%. Правда, со временем удержать его в памяти становится сложнее. Но если вовремя напоминать слово, то постепенно оно запомнится навсегда. Если же повторение пропустить - слово снова забывается.
Алгоритм, заложенный в Анки, называется SuperMemo2. Интересно, что сейчас существует уже 18-ая версия этого алгоритма. В настоящее время идут споры Anki vs. SuperМemo об эффективности подходов в зубрежке. Я на стороне практического применения. Люди оказались не готовы тренировать слова чаще раза в день. Поэтому Анки и многие другие приложения продолжают использовать именно вторую, более старую, версию.
В любом случае постоянство важнее алгоритма.
Как учить понятно,
но что учить?
Слова, но какие?
Я решил поискать и пройти тесты на знание количества слов. Мой уровень на старте показывал 4500 слов. Далее, раз в месяц, я заново проходил эти тесты. Моя личная практика показала, что подобные тесты работают с погрешностью ±500-1000 слов.
Слова важнее грамматики, ими можно говорить как тегами, и все-равно будет понятно: "Я ходить гулять девушка завтра", "Я документ терять" – звучит неправильно, но понятно, о чем речь.
Я нашел список слов распределенных по частоте использования англичанами в речи.
Начинать учить следует с ежедневных «he» и «she».
Далее перейти к словам посложнее «respect» и «ticket».
А потом еще более редким «refusal» и «pave» для эффективности.
Так на меньшее количество изученных слов будет больше понимания.
Я начал пролистывать этот список и зафиксировал в нем то место, после которого у меня было уже много пробелов в знании английских слов. Именно с этого места я и стал учить слова в сторону более редких. Назовем это место начальной точкой.
Так вышло, что я не знал слово «vast», а в упомянутом выше списке оно было в первой 1000 слов.
И было достаточно много неизвестных мне, но частых слов до начальной точки. Я пробежался и тоже добавил их в обучение.
Обожаю экономить время: )
Позже я руками пролистал все 16.000 слов и исключил из изучения все уже известные мне слова, чтобы не учить их и не тратить на них время. Делал я это со скоростью 1000 слов в час.
Я нашел исследование на сайтах по тестам словарного запаса, в котором говорится, что вполне возможно найти такую начальную точку. На самом деле, довольно редко бывает, когда человек не знает популярные слова, но знает много редких.
У всех изучающих разные начальные точки: кто-то останавливается на «he», кто-то на «disturb». После этой точки изучающий знает уже мало слов. Они ему встречались редко, и он их не смог запомнить.
Процент изучающих английский язык и количество известных им слов по уровням A1-C2 примерно варьируется так:
Уровень A1, Начальный: ±10-20% и знает 300-500 слов
Уровень A2, Базовый: около ±20-30%, 600-1000 слов
Уровень B1, Средний: около ±30-40%, 1000-2750 слов
Уровень B2, Выше среднего: около ±15-25%, 2750-4500 слов
(на этом уровне, кстати, изучающие часто начинают довольно свободно говорить на английском, смотреть фильмы без перевода и зачастую бросают изучение. И на С1+ переходит небольшой процент людей)
Уровень C1, Продвинутый: около ±5-10%, 5000-7000 слов
Уровень C2, Свободное владение: около ±1-5%, 8000+ слов
Интересно,
что люди прибавляют
около 2500 слов в год
в родном языке
Или +5500 новых слов. Столько стали показывать у меня тесты после 6 месяцев изучения. Я учил 30 новых слов в день, или +900 в месяц, по 30-60 минут в день после завтрака.
Я ощутил, что после 60 минут занятия слова поддаются изучению уже тяжело. Спустя 40 мин я мог чувствовать по своему недовольству, что уже «пересидел».
Это оказался очень эффективный способ, даже более эффективный, чем погружение и жизнь в англо-говорящей стране.
Анки – это фантастический комбайн с миллионом функций. Её плюс – её проблема. Чтобы начать учить слова, нужно многое сделать и во многом разобраться: пройти тесты, найти и установить базу, отыскать эту начальную точку, включать и выключать слова. Плюс ко всему этому в Анки не понятный дизайн и странная статистика.
Да, существуют и другие приложения - я их отсмотрел и попользовался. Но все они казались сложными и тоже мало понятными, или были не лучше Анки. Quizlet - хорошее приложение, но проблему, как у меня, не решало.
Marvel — чудо
Пока я учил слова, то делился своей статистикой и разными интересными встретившимися мне словами в запрещенном Инстаграм. И подписчики спрашивали, что это за приложение. Я рассказывал и давал ссылки.
Я скидывал людям ссылку, делился моей первоначальной частотной базой слов с озвучкой. Спрашивали действительно много. Но мне кажется, на этом многие и останавливались.
Я даже расстроился, когда понял, что нет простого приложения для зубрежки слов. Мне представлялось, что рынок в этой сфере мертв, что люди хотят DuoLinguo, Лингва-Лео, но они больше про грамматику. Есть похожие и тоже хорошие reWord, но просто мне ничего не зашло, только сложный и старый Анки. Как-то так и родилась идея приложения, простого, с простым входом, для зубрежки слов.
И я подумал, нужно делать свое новое приложение, с вот этим всем. И сел, технологию взял обкатанный Flutter. Знаю, пишу, пробовал Kotlin Multiplatform. Но там пока много всего в будущем.
На работе мы перешли на Flutter – он хорошо показал себя. Я год сидел на нем, отлично его знаю и быстро пишу. И как говорят фотографы: самый лучший фотоаппарат, тот который у вас есть. Плюс Flutter позволил выпускать сразу на iOS и Android.
За два месяца и 30.000 строк кода мне удалось написать первую версию. Я сразу стал обкатывать ее на пользователях и себе.
Сначала я распотрошил проверенный и неплохой список слов с Анки и попробовал с ним. Но частоты оказались не совсем правильными.
Тогда я стал искать Гугловые частоты употребления слов в книгах NGram и просто кем-то собранные индексные базы для машинного обучения на 300k слов улучшил базу частотности слов. Плюс посмотрел частоты от Corpus of Contemporary American English (COCA). COCA, кстати, пишет, берите наши частоты и указывайте нас и пугают судом своим «пауком» который по ночам сканит интернет на свои списки.
Я миллион раз пересортировал базу слов, прокачал навыки Excel вместе с chatGPT и словил первые миграции БД для пользователей. Все пока хранится локально. Я просто не мог сказать пока еще не многочисленным пользователям: «Cорян, нужно заново все начать». У них уже шло обучение, и мне было бы жаль потерять их прогресс.
Это изменения по коду на гите, почти книга. Но 200k строк можно выкинуть, это 12 полных перезаливов базы данных из 14.000 строк.
В процессе пришла идея «нагенерить» картинок нейросетью. Я попробовал запустить Stable Diffusion на Mac. Для меня стало открытием, что кто угодно может запустить ее у себя.
Заработало, но на моем M1 один запрос генерировался по 2-4 минуты, не хватало оперативки и архитектуры.
А нужно было минимум 4000 слов и запросов – это достаточное языковое ядро для комфортных разговоров с другими людьми.
Я даже думал купить или арендовать игровой ПК на Винде с мощной видео-картой за 6000₽ в месяц.
Но помогли парни, бывшие коллеги, они подняли свою Stable Diffusion и уже дообучили её. Дали мне пару раз бесплатно API-доступ на пару дней к своему серверу. И я скриптами за пару ночей я сгенерил 4500 картинок.
Сначала я пробовал генерировать по слову, но есть проблема с абстрактными словами, типа «расстроенный» или «мудрость». Нейронка не цепляется за то, что нельзя изобразить. Поэтому я перешел на примеры и на само слово в запросе.
Художественные стили и раскраска брались случайно из сета и подставлялись в запрос. Но позже все равно пришлось отбирать их руками со скоростью 1000 картинок в день.
Примеры генераций. Было 2 стадии и первую сразу видно :)
Иногда эти картинки получались очень странные. Сначала я думал, что для слова конь обязательно нужен конь. Но попробовав, я даже кайфанул с того что они такие.
Для запоминания нужна необычность,
так мозгу проще связывать
новые абстрактные слова.
Плюс в таком подходе задействовано больше каналов восприятия и визуальный и аудиальный.
Параллельно с разработкой я продолжал тестировать и рассказывал в запрещенном Инстаграм о продвижении разработки. Сейчас есть около десяти активных пользователей. Эти люди – моё золото и мои консультанты! Десять это не ноль и это означает, что идея рабочая. Они подсказывали, что неудобно и что не работает, а что выходит классно.
Например, было ошибкой сделать классическое обучение. Никто не хотел его читать, а просто пролистывал и, естественно, не понимал. Поэтому на коленке я собрал обучающий видос. Вместо того, чтобы начитать самому, я нашел голос и решил тоже озвучить его нейросетью. Он получился немного странным, но мне даже нравится.
Я залил его в Рилс, чтобы проверить досматриваемость и интересность. По статистике на вообще не "прогретых" людей он получился хорошим. Необходимо было сократить его до 45 секунд и перенести самое важное в первые 15 секунд.
Считается, что первые стартапы лучше делать не в «голубом» инновационном и бесконкурентном рынке: людям сложно объяснять новые идеи. Советуют идти в понятные «алые» и высококонкурентные рынки, типа психологии, эзотерики, похудения и английского. В этих сферах всегда есть спрос. И вы можете откусить свою долю от пирога. К тому же явных лидеров именно в изучении слов нет.
Я отсматривал почти все приложения в этой сфере и собирал с них интересные и рабочие идеи. Я вижу много приложений со сложным входом, где нужно разбираться. В такие моменты возникает микро-злость. Поэтому в своем я пробую выкинуть все тяжелое, не нужное и не работающее.
Например, я выкинул первоначальный тест. Он оказался не рабочим: люди не знали слов «chair» и «blue», а тест выдавал уровень B2. Они думали, что знают и самообманывались. Тест врал на начальной точке, но тем не менее неплохо показывал количество известных слов.
Сейчас в планах собрать 1000 активных бесплатных пользователей и обратную связь от них. И уже далее приходить к экспериментам с платными подписками. Хотя функционал готов.
Нужно заказать редизайн UI. Мой если показываешь про-дизайнерам раз***ывают. Но вкусовщина, сейчас UX главнее: )
И хочется сделать активности с друзьями. Обсуждения слов, соревнования и челенджи, как круги в часах Apple. Моя жена когда-то так увлеклась этим, что мы с ней в 23:30 ходили и закрывали активности, чтобы она смогла обыграть своих друзей. Это будет интересно, делится и смотреть статистику друзей.
Хочется сделать необычные примеры, генерировать их chatGPT. И перерисовать их.
Хочется понять статистику изучения сложных слов и давать лучшие способы запоминания на анализе этой статистики.
Месяц назад получил предложение об инвестициях из Дубая на 10М₽ за 20% компании. Ребята классные. Но им нужен ретеншн и больше пользователей.
В июне я подался на грант на 4М₽, жду решения.
И сейчас готовлю кампанию на Бумстартере на 2М₽.
Я пробовал несколько раз запускаться с другими проектами. И это мой первый проект в который я абсолютно верю и вижу, что может взлететь. Я сам пользуюсь и классно видеть как пользуются.
Да, могут закончиться деньги, но довести до ума и успеха хочется.
Есть сложности с РФ рекламой и отключенными платежами в наших сторах. Кстати последнее решилось, спасибо коллеге из Черногории.
Есть сложности с оплатами в РФ, возвратами пользователей в приложение, багами, переводами. Но все выглядит решаемым.
Главное что есть необычная идея и мне стало понятно как выглядит уникальность. Есть уверенность делаю нужное, есть первые пользователи. И понятно как в будущем искать такие идеи.
К первым негативным оценкам привыкаешь, это золото, потому что понятно что улучшать. Хоть внутри и злишься по началу.
Работа над стартапом это правда не легко. Но пока это самое интересное, что я делал.
Изучи английские слова по нейро-картинкам
Скачивайте, учите, пробуйте
Бесплатно!
▼
Попробовать приложение:
в iOS TestFlight (2 кнопки: скачать Тестфлайт и тестировать)
Приложение реализует все принципы эффективности из предыстории:
Работающие алгоритмы
Необычные GenAI-картинки
Эффективный частотный список словс третьими формами и фразовыми глаголами
Супер-простой Тиндер-подобный интерфейс
Определение уровня на входе, начальной точкии моментальные исключения известных слов
Уведомления, темы, звуки и озвучка
Мотивирующая статистика
Менеджер слов, поиск, фильтрация
и перерывы на цитаты Джобса и Рокки 4
Полная история в виде подборки из сторис в Google Фото.
Есть вопросы? Про разработку, сторы, инвестиции или еще какие-нибудь пишите в запрещенный Инстаграм, подписывайтесь или Телегу.
Есть предложения о работе и сотрудничестве, можем обсудить: )
Спасибо за внимание
Лайк если понравилось :)
UPDATE: были сложности с установкой, поправлено :) iOS сейчас зайдет тоже