Anki系列-用Anki準備GRE

Anki系列-用Anki準備GRE

背景

其實我從2010年就開始接觸Anki了夸溶。但那個時候弄跌,由于自身非常懶惰抄课,對Anki的使用也是形式大于內容稿黄。而且那個時候并不會Python喊衫,也不知道正則表達式,所以在制作卡片方面進展緩慢杆怕。久而久之也就不了了之族购。

2014年,出于對機器學習的興趣陵珍,我自學了Python寝杖,為大規(guī)模制作卡片打下了編程基礎。2015年互纯,閑暇時我用IOS上的Pythonista寫了個簡單的背單詞軟件朝墩。那個時候面臨沒有高質量詞庫的尷尬。我印象中伟姐,最有挑戰(zhàn)性的單詞書就是琦叔的《再要你命3000》了收苏。于是從網上找到PDF版本,摸索著如何將PDF里的內容整理為軟件可用的數據格式愤兵。這一過程伴隨著對正則表達式的大量使用鹿霸。但由于網上流傳版本自身內容的缺陷,這一工作也無疾而終秆乳。直到最近懦鼠,我發(fā)現(xiàn)Amazon上開始出售一系列詞匯書的Kindle版本,于是相繼購買了《GRE核心詞匯考法精析》《GRE核心詞匯助記與精煉》《GRE高分必備短語搭配》的Kindle版屹堰,然后用calibre轉換成txt格式肛冶,最后再用python來將txt處理成Anki可用的導入文件。Kindle版的書籍格式是AZW3扯键,每個章節(jié)其實就是一個網頁(HTML)睦袖,處理起來要比PDF容易太多。而且書籍內容也有專業(yè)的校對人員把過關荣刑,所以內容質量上不用擔心馅笙。我設計的詞庫的主體結構來自于《GRE核心詞匯考法精析》,整個制作過程輕松愉快厉亏。后來又加入了《GRE核心詞匯助記與精煉》和“不擇手段背單詞”的內容董习,以及單詞的發(fā)音。

在這里爱只,我想提醒讀者注意版權問題皿淋。我們購買的電子版書籍,嚴格來說只是購買了在指定閱讀平臺上閱讀該書籍的權利。對于書籍電子文件的一切修改行為窝趣,都算侵犯了版權蔗喂,更遑論破解之后放到各大論壇上的共享行為了。所以高帖,在這里,我并不會提供制作好的Anki詞庫畦粮。但我會分享制作詞庫的腳本文件散址。這樣,你只需購買了相關書籍宣赔,便可以參照我寫的程序制作自己的Anki詞庫了预麸。如果你覺得太麻煩,可以去下載這個共享Deck儒将,相信能滿足你的大部分需求吏祸。最后,我希望大家能在力所能及的范圍內去支持書籍作者钩蚊。

另外贡翘,琦叔團隊放出的電子版可以通過關注琦叔的微信公眾號獲得∨槁撸或者直接訪問這個百度網盤鏈接鸣驱。不過,既然免費蝠咆,就不完美踊东。且不說水印,內容上也會有很多錯誤刚操。所以并不適合提取數據闸翅。相信之前提到的共享Deck也是根據這個免費版本制作的。

工具箱

  • Kindle for PC
    必備菊霜。買過的Kindle電子書都會出現(xiàn)在這個軟件中坚冀。下載到本地后,可以到C:\Users\你的用戶名\Documents\My Kindle Content中找到源文件鉴逞,文件名為*******.azw遗菠。這個文件就是所有數據的最終來源。

  • calibre
    轉換工具华蜒。將*******.azw拖入calibre后辙纬,自動完成去版權保護的操作。然后右鍵書籍封面叭喜,選擇convert books贺拣,convert individually,輸出格式output format選txt即可。見下圖譬涡。

    anki-gre-1.png

anki2.png

calibre有非常豐富的轉換選項闪幽,這里請將Formatting從
txt改為markdown。其他不變涡匀。

anki-gre-3.png

轉換完成后盯腌,右鍵書籍封面,選擇open containing folder陨瘩,txt所在的文件夾會被自動打開腕够。以《GRE核心詞匯考法精析》為例,其文件名為GREHe Xin Ci Hui Kao Fa Jing Xi - Chen Qi.txt舌劳。這個文件就是我們要通過程序處理的文件帚湘。給大家看一眼它的內容。

anki-gre-4.png
  • python
    核心工具甚淡。我使用的python開發(fā)環(huán)境是Anaconda大诸。集成了jupyter notebook
  • Anki

Note的結構

學習講求循序漸進贯卦。琦叔的單詞書资柔,一個單詞下面有太多內容,不可能一次性全部識記撵割。最簡單的想法建邓,如果一個單詞有n個釋義,那么就拆成n個Note睁枕。每個Note都有如下字段官边。

  • word_uid
    單詞的唯一標識。由單詞拼寫加上用法序號構成外遇。具體解釋見下注簿。另外,Anki中跳仿,我選擇了“sort by this field in browser”诡渴,即所有的Note也以這個字段的值為自己的唯一標識。

  • word
    單詞的拼寫菲语。比如單詞abandon妄辩,拼寫就是abandon。-_-

  • usage_index
    單詞的用法序號山上。很多人初看起來眼耀,覺得這個設計不合理。這不是加重記憶負擔么佩憾?原本我只需要背有哪些用法即可哮伟,現(xiàn)在還需要被對應的序號干花。我想說,是你打開的方式不對楞黄。仔細想來池凄,當一個卡片的正面問你,abandon的第一個用法是什么時鬼廓,你直接想到的一定是abandon的所有已知用法肿仑,按熟悉程度排序。都回憶起來后碎税,你只需看看背面的答案在不在這個腦中的用法列表即可尤慰。不在,相當于答錯蚣录;在,相當于答對眷篇。而這樣做的好處是萎河,如果你對abandon的“放縱”用法非常不熟悉,總是答錯蕉饼,那么軟件可以在盡量短的時間間隔內只讓該用法再次出現(xiàn)虐杯,以加固你的記憶。而且能強迫你將精力集中到這一種用法昧港。我使用別的記憶軟件擎椰,在用到一詞多義時都會非常困惑和猶疑。如果我回憶起了abandon的四種用法创肥,但忘記了“放縱”的意思达舒,那究竟算答對還是答錯了呢?使用usage_index叹侄,這種困惑迎刃而解巩搏。

  • phonetic_symbol
    單詞音標

  • word Audio
    單詞的發(fā)音文件所在位置

  • part_of_speech
    單詞詞性

  • mynotes
    自己添加的筆記。比如如何記憶單詞的心得

  • explanation_en
    單詞解釋的英文

  • explanation_cn
    單詞解釋的中文

  • explanation_encn
    內容完美再現(xiàn)原書格式

  • explanations_other
    其他釋義趾代,同時包括中英文贯底。Anki不支持多Note間共享Field,而我將多義單詞按釋義拆分撒强,這就會引發(fā)一個問題禽捆。在你第一次碰到某單詞的新釋義的卡片時,你可能已背過該單詞的某些其他釋義飘哨,如“停止做某事”胚想。那么查看答案時,你常常會想確認下其他釋義有沒有背錯芽隆,所以最好把單詞書中的其他釋義都展示出來顿仇。另一個目的在于淘正,多義單詞都有一個基本義,其他釋義基于基本義引申出來臼闻。所以呈現(xiàn)其他釋義鸿吆,可以輔助你對當前出現(xiàn)的釋義的理解。

  • example_en
    例句英文述呐。將例句的英文部分拆分出來惩淳,可以方便卡片設計。比如乓搬,你可以設計中譯英或者英譯中的卡片思犁。

  • example_cn
    例句中文。

  • example_encn
    例句中英文进肯。之所以要有這個字段激蹲,是因為有的單詞可能有多個例句。那么這多個例句的中英文該如何匹配江掩?正常來說学辱,例句的英文后面應該跟著翻譯,然后再開始下一個例句环形。Anki沒辦法在程序層面上支持這種匹配策泣。所以,需要單獨的字段存儲匹配好的內容抬吟。

  • examples_other
    其他例句闲先。自己找的可以添加到這里裳朋。還是那個中英文匹配的問題李皇。這個字段里的內容温学,不區(qū)分中英文。

  • ants_en
    反義詞的英文

  • ants_cn
    反義詞的中文釋義

  • ants_encn
    反義詞的中英文钙畔。這一字段的存在理由同example_encn

  • syns
    同義詞

  • der_zynm3000
    《GRE核心詞匯考法精析》中的派生詞

  • how_to_mem_bzsdbdc
    提取于不擇手段背單詞的txt文檔

  • how_to_mem_zhuji3000
    提取于《GRE核心詞匯助記與精煉》交掏。單詞的詞根詞源分析。

  • etyma_group
    《GRE核心詞匯助記與精煉》中刃鳄,單詞所屬的詞根盅弛。

  • etyma_group_explanation
    《GRE核心詞匯助記與精煉》中,關于單詞所屬詞根的解釋叔锐。

  • etyma_cognates
    《GRE核心詞匯助記與精煉》中挪鹏,該單詞的所有同根詞。

  • position_in_zynm3000
    《GRE核心詞匯考法精析》中愉烙,單詞所在的List和Unit讨盒。

  • tags
    單詞的標簽。比如步责,來自于哪本單詞書返顺,是不是詞組等禀苦。

Anki中NoteType的完整截圖:

anki-gre-5-2.png

Card的設計

我希望第一遍背誦時,只關注簡單的中英文釋義遂鹊,同時由于GRE單詞普遍很難振乏,還應該加入額外內容,輔助理解秉扑。額外內容以及出現(xiàn)順序為慧邮,explanations_other、example_encn舟陆、examples_other误澳、mynotes、how_to_mem_zhuji3000秦躯、etyma_group忆谓、etyma_group_explanation、etyma_cognates踱承、how_to_mem_bzsdbdc倡缠。額外內容不要求識記。綜上所述勾扭,設計模板Usage:正面毡琉,單詞×××的第×個意思铁瞒;背面妙色,中英文釋義加上額外內容。

第二遍背誦時慧耍,應該關注單詞的同反義身辨。所以設計兩個模板,syns和ants芍碧。syns正面問煌珊,單詞×××第×個意思的同義詞,反面呈現(xiàn)同義詞泌豆。模板ants類似定庵。

有些單詞可能發(fā)音也很重要,所以第四個模板命名為pronounce踪危,正面是單詞拼寫蔬浙,背面是單詞音標以及發(fā)音。

Anki的配合使用

設計導入文件

Anki支持導入txt格式的文件贞远,文件中的一行即一個note畴博,字段以TAB符\t分隔。txt文檔中字段從左到右的寫入順序應該與NoteType里Fields由上到下的順序一致蓝仲。見下圖(右側為整理好的txt文檔俱病,箭頭即TAB符)

anki-gre-5.png

下文稱這個生成的導入文件為AnkiImport.txt官疲。有關如何用Python制作該文件,請參見后文亮隙。

導入文件到Anki

必須在Anki桌面版進行途凫。以Windows為例。Anki主界面咱揍,左上角颖榜,單擊File,單擊Import煤裙,切換到AnkiImport.txt所在路徑掩完,選中文件,點擊open硼砰。彈出的對話框如下且蓬。

anki-gre-6.png

左上角,Type即所謂的NoteType题翰,這里我選擇提前設計好的GreWord恶阴,其具體結構參見“Note的結構”一節(jié)。Deck豹障,我選擇提前建好的GRE冯事。Fields seperated by,保持默認即可(默認是Tab)血公。注意昵仅,一定要在Allow HTML in fields那里打勾。如果導入文件的制作過程沒有問題累魔,那么Field mapping那里摔笤,左右數量應該一致,

使用Anki

Anki主界面垦写,中間靠上吕世,選擇Browse,彈出如下界面梯投。

anki-gre-7.png

因為我之前選擇導入到名為GRE的Deck中命辖,所以這里左側會有一個GRE選項。選中以后分蓖,即可瀏覽所有的單詞卡片了尔艇。或者可以直接在上方的地址欄輸入deck:GRE咆疗,效果相同漓帚。之后,該界面的空白區(qū)域大致變成下圖這樣午磁。

anki-gre-8.png

這里尝抖,根據Anki設置的不同毡们,以及是否安裝Anki插件Advanced Browser,你看到的界面可能與上圖展示的不完全一致昧辽。不過大致結構應該相似衙熔。注意到,abandon的第一個釋義搅荞,對應的Sort Field(即word_uid)的值為"abandon1"红氯。Card有3張,對應3個模板咕痛,ants不在其中因為書里沒有給出該釋義的反義詞痢甘。這個表中的每一行都是一張卡片,而非一個Note茉贡。按照之前的設計塞栅,一個單詞的一個釋義,會自動生成4張卡片腔丧,對應表中的4行放椰。那些被黃色標記的行(卡片),標識著這些卡片被Suspend愉粤。這是我手動設定的結果砾医。原因如下。

Anki并不原生支持所謂的循序漸進的學習模式衣厘,它同等對待所有的卡片如蚜。即背單詞時,這4類卡片出現(xiàn)的順序是混合且隨機的头滔。第一遍學習時怖亭,我不希望類別為syns涎显、ants坤检、pronounce的卡片出現(xiàn),所以在Anki中Suspend它們期吓。Suspend的含義是早歇,除非我手動激活(unsuspend)這些卡片,它們不會在我的學習過程中出現(xiàn)讨勤。具體實現(xiàn)方法如下箭跳。

在地址欄中,鍵入deck:GRE card:syns潭千,回車谱姓,Browser會列出模板syns產生的所有卡片。CTRL+A選中所有卡片刨晴,單擊地址欄上方的suspend即可屉来。對ants路翻、pronounce作相同操作。等單詞的所有Usage卡片都進入復習階段后茄靠,如果想激活這些卡片進行進一步學習茂契,再次執(zhí)行一遍上述操作即可。

當然慨绳,還有一種不借助Suspend的方法:filtered deck掉冶。Anki主界面,上方脐雪,單擊Tools厌小,單擊Create Filtered Deck,彈出如下對話框战秋。

anki-gre-9.png

在Search那里鍵入召锈,deck:"GRE" card:"Usage"。另外获询,你還可以在"Limit to"中設置每天學習的卡片的數量上限涨岁,在"cards selected by"設置卡片出現(xiàn)的順序。關于更多Search方面的語法吉嚣,參見Searching梢薪。設置好后,單擊Build即可尝哆。

最后秉撇,附上完整的卡片背面預覽。

anki-gre-10.png

用Python制作導入文件

我只談談大致思路秋泄,技術細節(jié)方面琐馆,我會共享我寫的幾個ipython notebook。懂python的自然可以看得懂我寫的代碼恒序,不懂編程的瘦麸,我也沒能力在一個小節(jié)內解釋清楚所有東西。

以《GRE核心詞匯考法精析》為例歧胁。將GREHe Xin Ci Hui Kao Fa Jing Xi - Chen Qi.txt整體讀入Python后滋饲,得到一個非常長的字符串。每一步處理都是在切塊喊巍。第一步屠缭,先按照List來切大塊,再按Unit切中塊崭参,最后按單詞切小塊呵曹。第二步,所有切割出的單詞塊構成了一個列表。對于列表中的每一個單詞奄喂,按考法切大塊之剧,每個考法按照釋義、例句砍聊、近義詞背稼、反義詞等切小塊,最后再把這些小塊放入到對應的字段中玻蝌。如何識別一個塊的起始和終止位置蟹肘?這就需要觀察文本規(guī)律了。比如俯树,如何識別一個List塊帘腹?通過觀察txt文檔,發(fā)現(xiàn)每個List的起始行字符串都有如下特征许饿,行首是英文單詞List阳欲,之后接一個空格字符再加上一個或兩個數字。至于終止位置陋率,似乎沒有統(tǒng)一的特征球化,但考慮到一個List的結尾即另一個List的開始,所以兩個List起始位置之間的內容即一個List塊瓦糟。也就是說筒愚,只要找到起始位置的規(guī)律即可。其他的塊都以類似的思路切割菩浙。不過巢掺,對于最小的單位,即一個釋義下面的各個條目劲蜻,通常是一個條目即一行陆淀,那么只需辨別這一行字符串是屬于哪個條目即可。原文檔中模式一目了然先嬉。例句條目以中文“例”開頭轧苫,近義詞條目以中文“近”開頭,如此等等坝初。

相關文件共享

最近ipython notebook遷移到了jupyter notebooek浸剩,我直接分享notebook可能會出現(xiàn)版本不對打不開的情形钾军。所以只分享notebook的HTML的文檔鳄袍。代碼和程序運行的結果都在里面,而且也詳細說了寫代碼的思路吏恭。

my_helpers.py
一些輔助函數

sync_to_file_magic_command.py
我自己寫的一個magic command拗小,自動生成腳本用的。

convert_new3000.py
處理GREHe Xin Ci Hui Kao Fa Jing Xi - Chen Qi.txt樱哼,生成new3000_base_d.txt

convert_zhuji.py
處理GREHe Xin Ci Hui Zhu Ji Yu Jing - Cao Tian Cheng.txt哀九,生成zhuji_base_d.txt

convert_duanyu.py
處理GREGao Fen Bi Bei Duan Yu Da Pe - Yan Yu Zhen ,Gao Yu ,Chen Qi.txt剿配,生成duanyu_base_d.txt

bzsdbdc_dic.txt
網上找到的buzeshouduanbeidanci.txt整理過的版本

anki_import.ipynb
讀入
new3000_base_d.txtzhuji_base_d.txt阅束,bzsdbdc_dic.txt呼胚,duanyu_base_d.txt
生成
AnkiImportData_GreWord.txtAnkiImportData_GrePhrase.txt

或者分別運行
CreateAnkiImport_GrePhrase.py息裸,CreateAnkiImport_GreWord.py
也能得到上述文件

example_usage.apkg
詞庫預覽版蝇更,只有abandon一個單詞。用以展示Note結構呼盆、卡片模板年扩。

以上文件分享在Github
以后的bug修復和更新也會發(fā)布在這里

其實我知道,這種文章寫出來就注定小眾访圃,所以閱讀量不會很高厨幻。不過,如果你讀到這里腿时,那至少證明你便是那小眾中的一個况脆。如果這篇文章幫到了你,或者你覺得哪里可以改進批糟,歡飲反饋給我漠另。可以評論跃赚,也可以喜歡這篇文章笆搓。最近每隔幾天,我便發(fā)現(xiàn)有人關注我纬傲,可已有的三篇文章卻不見多一個喜歡或者評論满败,這讓我很困惑。如果我寫的不好叹括,干嘛關注我算墨?如果我寫的好,為何一點反饋都舍不得給汁雷?好吧净嘀,也許是這些朋友比較傲嬌,覺得這種水文偷偷看過就好侠讯,點個喜歡多掉身價啊~其實吧挖藏,我理解他們的。有時我也會出于好奇偷偷看看首頁投稿里里的姑娘文厢漩,然后默默離開~畢竟膜眠,人人都有無聊的時候。雖然技術文不同于雞湯文,還是感謝這些朋友賞臉閱讀宵膨。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末架谎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子辟躏,更是在濱河造成了極大的恐慌谷扣,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捎琐,死亡現(xiàn)場離奇詭異抑钟,居然都是意外死亡,警方通過查閱死者的電腦和手機野哭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門在塔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人拨黔,你說我怎么就攤上這事蛔溃。” “怎么了篱蝇?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵贺待,是天一觀的道長。 經常有香客問我零截,道長麸塞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任涧衙,我火速辦了婚禮哪工,結果婚禮上,老公的妹妹穿的比我還像新娘弧哎。我一直安慰自己雁比,他們只是感情好,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布撤嫩。 她就那樣靜靜地躺著偎捎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪序攘。 梳的紋絲不亂的頭發(fā)上茴她,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機與錄音程奠,去河邊找鬼丈牢。 笑死,一個胖子當著我的面吹牛梦染,可吹牛的內容都是我干的赡麦。 我是一名探鬼主播朴皆,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼帕识,長吁一口氣:“原來是場噩夢啊……” “哼泛粹!你這毒婦竟也來了?” 一聲冷哼從身側響起肮疗,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤晶姊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后伪货,有當地人在樹林里發(fā)現(xiàn)了一具尸體们衙,經...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年碱呼,在試婚紗的時候發(fā)現(xiàn)自己被綠了蒙挑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡愚臀,死狀恐怖忆蚀,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情姑裂,我是刑警寧澤馋袜,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站舶斧,受9級特大地震影響欣鳖,放射性物質發(fā)生泄漏。R本人自食惡果不足惜茴厉,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一泽台、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧矾缓,春花似錦师痕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至泞辐,卻和暖如春笔横,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背咐吼。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工吹缔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人锯茄。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓厢塘,卻偏偏與公主長得像茶没,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子晚碾,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內容

  • 我為何使用Anki 最近在準備GRE考試抓半,試用了市面上大部分的軟件,效果都不甚理想格嘁。個人認為笛求,學習,無論是背單詞還...
    北魏企鵝閱讀 23,894評論 10 85
  • 曾經有一個笑話糕簿,是關于一個學習成績很差的高中學生和他爸的一段對話探入。他爸問他,英語難學嗎懂诗?這孩子說蜂嗽,難學;他爸問殃恒,你...
    Corkine閱讀 33,353評論 17 293
  • 先上效果圖植旧,看完之后,你也可以擁有芋类,anki入門就是這么簡單隆嗅。 準備的幾個工具 anki的電腦端 anki賬號 e...
    Dragon蘭閱讀 4,696評論 0 17
  • -1- 收到一袋子櫻桃胖喳,洗了,拿碗裝著贮竟。在大快朵頤之前丽焊,我忍不住盯著那一粒粒果紅看了一會。櫻桃們擠擠挨挨咕别,熱熱鬧鬧...
    言素閱讀 746評論 0 6
  • 菲妮夢閱讀 195評論 0 0