А произойдет вот что.
- Возьмем текст который хотим прочитать без словаря
- Сохраним его в файл
- Приведем его к виду, когда в каждой строчке будет по одному слову, и удалим все знаки препинания и цыфры
- сохраним его дважды, и в одном файле удалим все слова которые незнаем, оставив лишь те которые знаем и предлоги. типа "a" "to" и прочие ништяки
- скачаем волшебный скрипт, который сделает нам из этих 2х файлов (слова из текста и слова которые мы знаем) деку, с произношением переводом и картинками
- Симпортируем результат в Anki.
- Ну а тут уже все зависит от вас, как долго вы эту деку будете мусолить в anki =)
Внизу данной статьй есть видео, как это все в конечном итоге будет выглядеть.
Ну чтож. начнем.
- Установим необходимые пакеты (curl, imagemagick)
$ sudo apt-get install curl imagemagick
- создадим папку в которой будем работать и проследуем в нее
$ mkdir ankideck&&cd ankideck
- выкачаем скрипты (один который работает с поисковиком гугл по картинкам и 2й основной который и создаст деку)
и дадим им права на выполнение$ wget https://sites.google.com/site/nicloaynidvoray/filelist/google_collector && wget https://sites.google.com/site/nicloaynidvoray/filelist/deckgen
$ chmod a+x deckgen&& chmod a+x google_collector
- Выберем текст, я же возьму слова из предыдущей статьи про phrasal verbs c данного сайта
- Обычным копипастом (чтоб не мучатся с тегами ) копируем это в новый файл и сохраняем в папку которую создали например с именем src
- получилось что то типа этого (показывает несколько первых строчек)
$ head src Phrasal Verbs - Ordered List by Verbs Phrasal Verb Meaning Examples
- ничего страшного что есть куча пустых строчек и т.п., это все уберется далее
- Обычным копипастом (чтоб не мучатся с тегами ) копируем это в новый файл и сохраняем в папку которую создали например с именем src
- Если хотите составить список слов которые вы знаете вручную, то формат прост (новая строка отдельное слово), я же покажу как взять текущие слова вывести список уникальных и убрать все лишнее
- выводим список слов в файл known.words
$ cat src|tr '1234567890!@#$%^&*()-=+_?/}{[]—£"' ' '|sed 's| *| |g;s| |\n|g'|sed "s|^'||g;s|'$||g; s|^.$||g"|tr "[:upper:]" "[:lower:]"|sort|uniq >known.words
- посмотрим сколько тут слов
мда... не утешительно.. всю ноч придется учить.. как бы не полярную :)$ cat known.words|wc -l 2271
ну да ладно..
- открываем файл known.words в любом редакторе и удаляем от туда все незнакомые слова
у меня получилось около 10 слов.
- выводим список слов в файл known.words
- Вобщем то все. Вот что у нас лежит в папке: 2 скрипта и 2 файла
все что нужно, запускаемls deckgen google_collector known.words src
и идем пить, чай, потом смотрим что все это будет не быстро :) и идем спать. :)$ ./deckgen -i src -k known.words
- После импорта гегенируется файл anki_deck в папке result вот его то и нужно указать когда нажмете на import в anki. и Все бы хорошо.. но линки на медиаресурсы не совсем правильные инужно нажать на
tools->advanced->Check Media Database и жимкнуть на Tag Cards
К сожалению деку всю выложить не получится, получилась около 500 метров, пока нет идей как ее можно пошарить.
А выглядит это все вот так:
4 комментария:
Спасибо за интересный скрипт!
Нельзя ли что-то сделать с переводом. Кажется он теперь не работает. У меня в файлах (папка translate) что-то вроде:
table border="0" style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;" cellspacing="2" cellpadding="0"
То есть нет перевода.
Еще проблема, в том, что с фликра картинки не скачиваются, а только текст лицензии :(. Их очень много, к сожалению.
Кроме того, интересно насчет других языков. Ваш скрипт в-принципе, практически универсален для создания словарей для любых других языков. Не могли ли вы подсказать, что нужно поменять в скрипте, для того чтобы получать перевод и звук для испанского, например?
Спасибо!
Еще вопрос: Нельзя ли как-то искать картинки + звук по предложениям, не по-словам. Т.е., например, набор предложений перечисленных через точку с запятой или каждое с новой строки.
Гуглы - фанаты по поводу поменять чтонибудь в протоколе, плюс всегда надо работать с таймаутами. По поводу картинок, гугл кеширует их у себя, поэтому можно выкачивать с кеша (хз как, но developer tools в хромиум поможет понять, плюс можно нагуглить).
про языки, там в функции generateText видно обращение к hl=en sl=en tl=ru думаю нужно менять там. Про звук - все зависит от сайта, в скрипте выкачивае с сайта www.answers.com - не знаю работает или нет сейчас.
Вобщем все это надо переписывать, но мне это на текущий момент вовсе не интересно.
Ясно, благодарю за объяснение :).
Звук есть, то есть он скачивается без проблем. Мешают только картинки (точнее их отсутствие) с фликра и подобных. Я попытаюсь это исправить, но думаю что не справлюсь. К сожалению я не умею писать скрипты, поэтому буду радоваться тому, что работает :).
Спасибо за скрипт!
Отправить комментарий