anki что это за программа
Две истории как ANKI может вам помочь выучить иностранный язык и подготовиться к интервью
Я всегда считал, что ленивый программист это хороший программист. Почему? Потому что попроси трудолюбивого сделать что-то, он пойдет и сделает. А ленивый программист потратит в 2-3 раза больше времени, но напишет скрипт, который будет — это делать за него. Может быть, в первый раз на это будет потрачено неоправданно много времени, но при условии повторяющихся задач этот подход очень быстро окупается. Я считаю себя ленивым программистом. Это была преамбула, а теперь перейдем к делу.
История первая
Несколько лет назад я задумался, как бы мне улучшить свой английский. Ничего лучшего, чем чтение литературы, на ум не пришло. Была приобретена электронная читалка, закачаны книги и я начал читать. В процессе чтения постоянно попадались незнакомые слова. Я их сразу переводил посредством встроенных в читалку словарей, но я заметил одну особенность: слова не хотели запоминаться. Когда я через несколько страниц снова встречал это слово, то с 90% вероятностью я снова нуждался в переводе, и так каждый раз. Напрашивался вывод, что мало просто переводить незнакомые слова в процессе чтения, нужно делать что-то еще. Идеальным бы вариантом было ввести его в обиход и начать пользоваться, но я живу не в англоязычной стране и это маловозможно. Тут мне вспомнилось, что я когда-то читал про Интервальные повторения.
Что это такое и с чем его едят? Если коротко, то есть такая кривая забывания, далее цитата из Википедии:
Уже в течение первого часа забывается до 60 % всей полученной информации, через 10 часов после заучивания в памяти остаётся 35 % от изученного. Далее процесс забывания идёт медленно, и через 6 дней в памяти остаётся около 20 % от общего числа первоначально выученных слогов, столько же остаётся в памяти и через месяц.
Выводы, которые можно сделать на основании данной кривой в том, что для эффективного запоминания необходимо повторение заученного материала.
АNKI это абсолютная бесплатная с открытым исходным кодом программа, которая реализует идею интервального повторения. Проще говоря, компьютеризированные флэш карточки, на одной стороне вопрос, на другой ответ. Так как вы можете делать вопросы/ответы с помощью обычного html/css/javascript, то можно сказать, что она обладает поистине безграничными возможностями. Кроме того, она расширяема специальными плагинами, и один из них нам в дальнейшем очень пригодится.
Вручную создавать карточки это долго, нудно, и с большой вероятностью через некоторое время вы на — это дело забьете и поэтому я в какой то момент задал себе вопрос, а можно ли это дело автоматизировать. Ответ — да, можно. И я это сделал. Скажу сразу, это больше POC (Proof of concept), но которым можно пользоваться. Если будет интерес со стороны пользователей и подтянутся другие разработчики, то его можно довести до готового продукта, которым сможет пользоваться даже технически неграмотные пользователи. Сейчас же использование моей утилиты подразумевает некоторые знания в программировании.
Я читаю книги с помощью программы AIReader. У нее есть возможность подключения внешних словарей, а также при переводе слова она сохраняет слово, на которое вы вызвали перевод, в текстовый файл. Осталось дело за малым, перевести эти слова и создать ANKI карточки.
Сначала я пытался использовать для перевода Google Translate, Lingvo API и т.д. Но с бесплатными сервисами дело не пошло. Бесплатный лимит я исчерпывал еще в процессе разработки, кроме того, по условиям лицензии я не имел права кэшировать слова. В какой то момент я понял, что нужно переводить слова самому. В итоге был написан модуль dsl2html к которому можно подключать DSL словари и который умеет конвертировать их в HTML формат.
Вот так выглядит словарная статья в *.html, мой вариант в сравнении с вариантом GoldenDict
Перед тем как искать слово в подключенных словарях я привожу его к словарной форме (лемме) с помощью библиотеки Stanford CoreNLP. На самом деле из-за этой библиотеки я и начал писать на Java и первоначальный план был написать все на Java, но в процессе я нашел библиотеку node-java с помощью которой можно относительно просто исполнять Java код из nodejs и часть кода написана на JavaScript. Если бы я нашел эту библиотеку раньше, то на Java не было бы написано ни строчки. Еще один побочный проект который родился в процессе это создание репозитория с DSL документацией которая была найдена в сети в формате *.chm, сконвертирована и приведена в божеский вид. Если автор оригинального файла пользователь по ником yozhic видит эту статью то большое ему спасибо за проделанную работу, без его документации у меня бы скорее всего ничего не получилось.
Итак, у меня есть слово на английском, его словарная статья в формате *.html, осталось свести все воедино, создать ANKI статьи из списка слов и внести их в базу данных ANKI. Для этой цели был создан следующий проект data2anki. Он умеет на вход брать список слов, переводить, создавать ANKI *.html статьи и записывать их в базу данных ANKI. В конце статьи есть инструкция как им пользоваться. Пока же история вторая где интервальные повторения могут быть полезны.
История вторая.
Все люди в поиске более/менее квалифицированной специальности в том числе и программисты сталкиваются с необходимостью подготовки к интервью. Многие концепты которые спрашивают на интервью вы не используете в каждодневной практике и они забываются. При очередной подготовке к интервью, пролистывая конспект, книгу, справочник я столкнулся с тем, что очень много времени и внимания берет на то, чтобы отсеять информацию которую вы уже знаете потому, что она не всегда очевидна и приходится вчитываться, чтобы понять, что это нерелевантно. Когда же вы подходите к теме, которую действительно нужно повторить, очень часто бывает, что вы уже устали и качество подготовки страдает. В какой то момент я подумал, а почему бы не использоваться ANKI карточки и для этого? Например при конспектировании какой то темы, сразу создавать конспект в виде вопроса — ответа, а затем при повторении вы сразу будете знать, знаете вы или нет ответ на этот вопрос.
Проблема возникла только в том, что набивать вопросы очень долго и нудно. Чтобы облегчить процесс, в data2anki проект я добавил функциональность конвертировать markdown текст в ANKI карточки. Все, что вам надо, это написать один большой файл, в котором вопросы и ответы будут помечены заранее оговоренной последовательностью символов, по которым парсер будет понимать, где вопрос, а где ответ.
После того, как этот файл будет создан, вы запускаете data2anki и он создает ANKI карточки. Оригинальный файл легко править и делится, нужно лишь стереть соответствующую карточку(и) и снова запустить программу, и новый вариант будет создан.
Установка и пользованию
Установка ANKI + AnkiConnect
Использование для перевода слов:
В файле data2anki/config.json:
в ключе mode прописываете значение dsl2anki
в ключе modules.dsl.anki.deckName и modules.dsl.anki.modelName прописываете, соответственно, Deck Name и Model Name (уже должны быть созданы перед созданием карточек). Сейчас поддерживается только модель типа Basic:
Has Front and Back fields, and will create one card. Text you enter in Front will appear on the front of the card, and text you enter in Back will appear on the back of the card.
где исходное слово это Front field, а перевод будет в Back field.
Нет никакой проблемы добавить поддержку Basic (and reversed card), где на слово и перевод будет создаваться и обратная карточка, где по переводу нужно будет вспомнить оригинальное слово. Нужно только наличие времени и желания.
в ключе modules.dsl.dictionariesPath прописываете массив с подключенными *.dsl словарями. Каждый подключенный словарь это директория в которой находятся файлы словаря в соответствии с форматом: Строение словаря DSL
в ключе modules.dsl.wordToTranslatePath прописываете путь к списку слов которые вы хотите перевести.
Использования для создания карточек из markdown
В файле data2anki/config.json:
в ключе modules.markdown.selectors.startQuestionSelectors и modules.markdown.selectors.startAnswerSelectors прописываете селекторы которыми вы отмечаете начало вопроса и ответа соответственно. Сама строка с селектором не будет отпарсена и в карточку не попадет, парсер начнет работу со следующей строки.
Например вот эта карточка вопрос/ответ:
Будет выглядеть в markdown следующим образом:
Еще есть файл с примерами в папке проекта examples/markdown2anki-example.md
Вот так это выглядит на мобильном телефоне:
Результат
Полученные на desktop версии ANKI карточки без проблем синхронизируются с ANKI облаком (бесплатно до 100mb), а дальше вы можете пользоваться ими уже везде. Есть клиенты под Android и iPhone, также можно пользоваться и в браузере. В результате, если у вас есть время, которое не на что потратить, то вместо того, чтобы бесцельно пролистывать фейсбук или котиков в инстаграм, можно учить что-то новое.
Эпилог
Как я уже упоминал, это скорее рабочий POC, которым можно пользоваться, чем законченный продукт. Где-то процентов 30% стандарта DSL парсера не имплементировано, и поэтому, например не все словарные статьи которые есть в словарях могут быть найдены, также есть идея переписать его на JavaScript, так как хочется «consistency», а кроме того, сейчас он написан не очень оптимально. Сейчас парсер строит дерево, а это помоему лишнее и не нужно усложняет код. В markdown2anki режиме картинки не парсятся. Я буду стараться потихоньку пилить, но, так как пока пишу для себя, то в первую очередь буду решать те грабли, на которые буду сам наступать, но если кто-то захочет помочь, то милости просим. Если есть вопросы, по программе, то буду рад помочь через отрытые issues в соответствующих проектах. Остальную критику и предложения пишите здесь. Надеюсь, кому-то этот проект будет полезен.
Практика подготовки иностранных слов с озвучкой для запоминания в программе Anki
В статье расскажу о личном опыте запоминания английских слов с использованием замечательной программы с неочевидным интерфейсом Anki. Покажу, как не превратить в рутину создание новых карточек с озвучкой для запоминания.
Предполагается, что читатель уже имеет представление о методике интервального повторения и знаком с Anki. Но если не знаком – пора знакомиться.
Лень для айтишника – великая вещь: с одной стороны она заставляет избавляться от рутины посредством автоматизации, с другой – при большом количестве рутины лень побеждает, подавляя интерес к самообучению.
Как же не превратить в рутину процесс самостоятельного создания карточек для запоминания иностранных слов?
Регистрация на AnkiWeb
Регистрация не хитрая, но она дает возможность использования Anki на разных устройствах. Я пользуюсь Android-версией Anki для запоминания и PC-версией для создания новых карточек. Можно и не устанавливать приложение на смартфон, потому что заучивать карточки можно прямо на сайте под своим аккаунтом.
Установка Anki
Качаем и устанавливаем Anki для PC. На момент написания статьи последней версией является 2.1.
Запускаем Anki и добавляем нового пользователя.
Нажимаем Sync в главном окне программы и вводим данные вашего аккаунта:
Теперь прогресс обучения будет синхронизироваться с AnkiWeb.
Установка плагина AwesomeTTS
AwesomeTTS – это просто отличный плагин, позволяющий для конкретного выражения на иностранном языке получить его произношение и прикрепить к карточке.
Добавляем в браузере закладки
Готовим карточки
Выписываем незнакомые слова
Пользуемся методом “корректорского зрения” для быстрого извлечения непонятных слов из иностранного текста с целью их запоминания.
Может быть метод как-то и называется по-другому (в комментариях подскажите), но думаю суть ясна.
Перевод
Здесь все очевидно: копипастим слово в соответствующее поле переводчика и выбираем подходящий для контекста перевод.
В некоторых случаях заглядываю в мультитран, чтобы узнать варианты перевода и использования в разных контекстах.
Перевод заносим в гугл-таблицу. Вот пример наполнения:
Теперь сохраняем таблицу в TSV: Файл → Скачать → TSV
Этот файл нужно импортировать в колоду Anki.
Импорт новых слов в Anki
Запускаем Anki, File → Import. Выбираем файл. Загружаем в колоду Default со следующими настройками:
У меня колода Default всегда содержит новые слова, к которым я еще не добавил озвучку.
Озвучка
Google Cloud Text-to-speech – это специализированный сервис, позволяющий качественно перевести текст в речевой вариант. Чтобы его использовать в Anki, нужно сгенерировать либо свой API ключ, либо тот, который предлагает автор плагина AwesomeTTS в документации (см. раздел API KEY).
В Anki кликаем по Browse, выбираем колоду Default, выделяем все импортированные карточки и выбираем из меню AwesomeTTS → Add audio to selected…
В появившемся окне выбираем сохраненный ранее профиль с сервисом Google Text-to-speech. Проверяем, что источник для озвучки и поле для вставки озвучки равны Front, и нажимаем Generate:
Если карточка содержит элементы, которые озвучивать не нужно, то придется по очереди обработать каждую карточку выделив в ней слова для озвучки:
После озвучки я перемещаю эти карточки в колоду, которую буду заучивать, оставляя колоду Default пустой для новых слов.
Синхронизация
Я использую Anki на PC для создания и группировки карточек по темам, т.к. это наиболее удобно делать именно в этой версии.
Заучиваю карточки в приложении для Android.
Выше я уже показал, как настроить синхронизацию Anki для PC с AnkiWeb.
После установки приложения для Android настройка синхронизации происходит еще проще.
Иногда в программе случаются конфликты синхронизации. Например, вы поменяли одну и ту же карточку на разных устройствах, или из-за сбоев синхронизации. В этом случае приложение выдаст предупреждение, какой источник взять за основу для синхронизации: либо AnkiWeb, либо приложение – здесь главное не ошибиться, а то могут стереться данные о прогрессе обучения и внесенные изменения.
Хотелки
К сожалению не нашел удобного и быстрого способа получения транскрипции для слов. Было бы идеально, если бы для этого существовал плагин с похожим на AwesomeTTS принципом действия. Поэтому транскрипцию я уже не пишу в карточку (лень победила :). Но возможно в природе уже есть нечто похожее и, уважаемый хабражитель напишет об этом в комментариях.
Anki — учим слова по карточкам с помощью интервальных повторений
Anki — это одна из самых популярных программ для заучивания разного рода информации с помощью карточек. С помощью Anki (в переводе с японского — запоминание) учат не только слова, но и формулы, столицы, определения из учебников, стихи, дорожные знаки — все, что можно запомнить с помощью карточек, но чаще всего Anki используют именно для заучивания слов. В отличие от Quizlet, в этой программе используется метод интервальных повторений.
На тему заучивания слов читайте также:
Содержание:
Скачиваем (создаем) колоды карточек для Anki
Программа Anki доступна для ПК и мобильных устройств. Версию для ПК можно скачать на официальном сайте. Сначала у вас будет только одна пустая демо-колода с названием «По умолчанию». Чтобы начать учить слова, нужно создать колоду карточек, для этого есть 3 способа (им соответствуют 3 кнопки в нижней части окна программы).
Начинаем работу с создания или закачки колод
Способ 1: Скачать общедоступную колоду
Пройдите тест на уровень английского:
Самый простой, но и самый неэффективный вариант. Нажмите на «Скачать» и вы перейдете на раздел сайта Anki с общедоступными колодами. Выберите нужную категорию, подыщите подходящий набор карточек, скачайте и занимайтесь.
С помощью Anki учат не только языки
Проблема в том, что эти колоды кто-то создавал согласно одному ему ведомой философии и далеко не факт, что вам они подойдут. Сами создатели Anki в инструкции настоятельно рекомендуют создавать карточки самостоятельно, подгоняя их под свои нужды:
«Creating your own deck is the most effective way to learn a complex subject. Subjects like languages and the sciences can’t be understood simply by memorizing facts — they require explanation and context to learn effectively. Furthermore, inputting the information yourself forces you to decide what the key points are, leading to a better understanding.»
«Создание своих наборов карточек — наиболее эффективный способ заучивания сложного материала. Такие предметы как языки и естественные науки, невозможно понять, просто заучив факты — для эффективного изучения требуются объяснения и контекст. Более того, когда вы вводите информацию самостоятельно, вам приходится выбирать самое главное, что способствует лучшему пониманию материала.»
Способ 2: Создать колоду прямо в программе
Нажмите на кнопку «Создать колоду» и добавляйте карточки одну за одной. В этом режиме очень много возможностей для тонкой настройки карточек. К примеру, можно добавить поле (или несколько полей), сделав карточку не двухсторонней, а как бы трехсторонней. Например: слово — перевод — фраза с этим словом. К карточкам можно прикреплять картинки и аудиозапись.
У Anki множество тонких настроек. С одной стороны это расширяет ее возможности, с другой — затрудняет освоение программы.
Способ 3: Импортировать колоду из файла
Список слов в таблице xls (Эксель), например мой Словарь 3000, тоже можно импортировать. Скопируйте две колонки со словами в txt-файл, сохраните его в кодировке UTF-8 и добавьте в Anki.
Метод интервальных повторений в программе Anki — учим слова и не забываем
Для заучивания слов в Anki применяется метод интервальных повторений. Интервальные повторения — это метод эффективного запоминания, его суть в том, чтобы повторять заученную информацию через определенные промежутки времени (без повторений она быстро забудется). Длина этих промежутков зависит от того, насколько хорошо выучен материал.
Объясню на примере. Взяли вы, скажем, 30 карточек со словами, выучили их. Слова запомнятся не намертво, очень скоро они начнут забываться. Одни слова запомнятся лучше, другие хуже. Слова, выученные на «отлично» можно повторить недели через две, выученные на «удовлетворительно» лучше повторить дней через пять, а те, что запомнились на двоечку, нужно освежить в памяти на следующий день.
Вот теперь представьте, что выученные 30 слов нужно рассортировать по тому насколько хорошо они на ваш взгляд запомнились и повторить через определенные промежутки времени. Вы просто запутаетесь. Тем более, что в реальности будет не 30 слов, а намного больше.
Anki сама сортирует слова нужным способом и выдает их для повторения в строгом соответствии с научно выверенным графиком. Это очень удобно, вы берете колоду карточек со словами, учите энное число карточек за один присест (по умолчанию стоит 20 карточек в день) и не беспокоитесь о повторении — программа сама предложит повторить слова в нужное время.
Сам процесс заучивания выглядит так:
1. Программа показывает одну сторону карточки, вам нужно вспомнить ответ и нажать на «Показать ответ».
Карточки можно смотреть с языка А на язык Б. Чтобы учить слова с языка Б на язык А, нужно сделать перевернутый вариант колоды.
2. Нажав на «Показать ответ», вы увидите правильный ответ, нужно отметить насколько легко вы его угадали — «Не помню», «В самый раз», «Очень легко». На основании статистики ваших ответов, программа сделает вывод, какую карточку и когда нужно показать для повторения.
«Очень легкие» карточки нужно будет повторить через 4 дня. В настройках можно изменить интервал, но это уже для продвинутых пользователей.
Добавлю также, что в Anki, в отличие от некоторых других подобных программ (например, Quizlet), только один режим заучивания. Ничего лишнего.
Можно ли выучить язык с помощью Anki?
Короткий ответ: нет.
Длинный ответ: с помощью Anki можно запомнить много иностранных слов, что очень важно в изучении языка, однако само по себе это не позволит вам владеть языком (читать, писать, общаться).
Вот, что пишут создатели Anki:
«If you are a language learner, you may be tempted to download a long list of words and their translations, but this won’t teach you a language any more than memorizing scientific equations will teach you astrophysics. To learn properly, you need textbooks, teachers, or exposure to real-world sentences. […] if you attempt to study complex subjects without external material, you will probably meet with disappointing results»
«Если вы изучаете язык, у вас может возникнуть соблазн скачать длинный список слов с переводом, но это научит вас языку не более, чем заучивание научных уравнений может научить астрофизике. Чтобы заниматься как следует, вам нужны учебники, учителя или восприятие реального языка. […] Пытаясь изучить сложный предмет без дополнительных материалов, вы, вероятно, разочаруетесь в результате.»
Словарный запас — это важная, трудоемкая, но не единственная сторона изучения языка, невозможно полноценно освоить язык, не посвятив какое-то время и усилия грамматике и практике в чтении, письме, аудировании, устной речи. Более того, я считаю, что заучивание списков слов по карточкам целесообразно, когда вы только закладываете основы словарного запаса, делаете первые шаги в изучении языка, ну или хотите подтянуть какую-то специфическую словарную тему.
Если же вы более-менее уверенно понимаете язык, то словарный запас можно пополнять из активного чтения и слушания. Подробнее об изучении слов, грамматики, практики в речи, аудировании, чтении, письме, об изучении английского языка вообще, вы можете узнать из моей книги «Как выучить английский язык».
Другие программы для заучивания слов
На самом деле программ, мобильных приложений для запоминания слов очень много. Многие из них мало чем отличаются друг от друга. Я выделю еще два наиболее, на мой взгляд, примечательных сервиса:
1. LinguaLeo.
Лингвалео — это большой и многофункциональный сервис для изучения английского языка. Там есть видео с субтитрами, тексты, упражнения, тесты, и много возможностей в плане запоминания слов:
- Раздел «Тренировки» (словарные упражнения) с 12 режимами запоминания слов, включая карточки, набор слов на слух, кроссворд и др. Плагин для браузера «ЛеоПереводчик», позволяющий сохранять слова в личный словарик при чтении любых англоязычных сайтов, чтобы потом учить их в «Тренировках». Читая, слушая тексты, просматривая видео, можно также сохранять слова из субтитров (просто нажав на слово) в словарик. Сотни готовых наборов слов по темам.
Подробнее читайте в обзоре: «LinguaLeo — онлайн-сервис для изучения английского языка».
2. Quizlet
Quizlet — это образовательный сервис для заучивания слов по карточкам. В отличие от Anki, здесь не делается акцент на интервальных повторениях, но, на мой взгляд, в Quizlet намного удобнее создавать наборы и учить слова. Вот основные особенности сервиса:
- 6 режимов изучения слов, включая два игровых режима и тест. Возможность сгенерировать PDF-файл с карточками или тестом для распечатки. Удобный интерфейс создания наборов слов. Все слова по умолчанию озвучиваются. Возможность добавлять картинки к словам.
Режим с интервальными повторениями в Quizlet тоже есть, но в платной версии. Подробнее читайте в обзоре.
Заключение
Если по какой-то причине вы хотите заучивать довольно большие наборы слов, Anki — эффективное решение. Anki удобна, если хочется загрузить в программу слова — и пускай она обучает. В программе используется метод интервальных повторений, она сама будет «подкидывать» вам нужные карточки в нужное время, чтобы надежно закрепить информацию в памяти. Удобно также, что, зарегистрировавшись в системе, вы получите доступ к своим карточкам как на программе для ПК, так и на мобильной версии, отлично подходящий для занятий между делом (в пробке, в очереди и т. д.)
С другой стороны, умный алгоритм Anki не всегда действительно нужен, да и не всем может понравиться. В Anki затруднительно создать набор слов и учить его просто как вздумается, не по науке. К тому же в Anki нельзя свободно вертеть карточки сначала с языка А на язык Б, затем наоборот. Для этого придется создавать перевернутые дубликаты.