還記得以前在工三讀書時,常常看到 Chun Norris 坐在我前面,然後畫面上是一張一張的卡片在不停地翻動,每張卡片上面都標記者一個日文單字, 看他快速地翻閱這些卡片,感覺就是在背頌單字,那時候也就沒有去想太多了。
沒想到過了幾年後,Chun Norris 竟然出書了!!! 英、日語同步Anki自學法:我是靠此神器,最短時間通過日檢N1、多益975分
看到這個消息後,就馬上預購了一本這個書,不但捧朋友的場,同時也順便瞭解看看到底 Anki 是什麼樣的東西。
對於想瞭解 Anki 基本操作的,可以參考這邊 經過了一陣摸索後,也開始使用了 Anki 來幫助我背單字,不過由於內建的一些卡片集(Deck)大都偏向特定主題,如托福、多益等 ,所以我後來也自己創建了一個卡片集給我自己使用。 在卡片編輯的部分,原本都是透過Anki application上面的 GUI 去操作編輯,填寫正反兩面的卡片資訊。 所以本來的流程是這樣
- 我看小說/文章
- 使用手機的 APP 去查詢單字
- 定期開啟 Anki 將 APP 內的歷史單字一個一個透過線上字典服務去查詢
- 將查詢的結果複製貼上到 Anki內,並轉成Anki的卡片
上面第三步驟最花費時間,當卡片數量一多的時候,其實要非常可怕的 那時候APP內大概有五六百個查詢過的單字,每個單字花20秒去填寫,也要整整三個小時不間斷才有辦法處理完畢。
有鑑於未來單字量只會愈來愈多,這樣手動下去實在不是辦法,因此腦筋就轉了彎一下,看有沒有辦法讓上面的步驟簡單化 上述(1),(2)這兩個步驟是不可避免的,那(3),(4)這兩個步驟就是主要處理的對象了。
針對我的目標,我將其拆成兩部分
- 給定一個單字,想辦法自動獲得其發音及解釋
- 從上述的輸出中,將其自動變成 Anki 的卡片,然後塞到我的卡片集(Deck)中
針對第一點,我使用 python 作為我的程式語言,然後很偷懶的就拿了 yahoo 字典當作我的搜索來源 於是用了 python + BeautifulSoup + urllib 來爬網頁, 於是就網頁爬阿爬~就爬出了發音跟解釋了,這邊一切搞定
再來第二點,想要自動加入倒 Anki 的資料庫中,於是就到github去翻一翻,還真的翻到有人寫好已經可以用的工具 addToAnki,這個作者使用 python 撰寫,提供一個 tool 讓第三方可以將卡片的內容輸入進去後,自動轉為卡片並且塞到對應的卡片集中。 雖然我個人是更偏向去呼叫 library 而不是只接呼叫 tool 來處理,不過我的目的能達成就好,所以就將我前面的程式碼跟他的結合起來。目前將此結果放在這邊 同時我也發送了一個 pull request 到原先作者那邊,把我的使用情境當作一個多的範例使用,不過我看作者也兩三年沒碰了,應該也不會去接收我的 PR XDD
最後我的流程就是
- 遇到不會的單字
- 使用手機查詢單字
- 定期將查詢過的單字匯出成一個文字檔
- 將該文字檔送給我的 python 去處理,等他自動處理好即可。
上次一口氣加了四百多個單字,總共花費十五分鐘左右,大部分的時間應該都是消耗再去爬 yahoo dict這邊,目前這樣已經滿足我的需求。