學英語的一種辦法

我是個興趣廣泛的人,看很多書,經常會下載一些英文的pdf放在ipad上閱讀,英語的單詞量還沒達到專業8級的水平,感覺不認識的單詞比較多,始終是個困擾。

某些英文pdf與中文復印而成的pdf不同,它里面的文本應該是可以提取出來的,

然后對這本書中出現的單詞做統一詞根處理,再進行詞頻統計,從高到低排序,展示給用戶,

用戶對每個單詞都挨個打上標記,哪些已經掌握了,哪些還沒掌握,如果在其他書中已經標記過的,可以直接把標記記錄加載到當前這本書中。日積月累,就行成了一個用戶已掌握、未掌握單詞的數據庫。

經常翻翻那些未掌握的單詞,這些單詞出現在那本書中,出現的句子是什么,單詞的中文意思是什么,等等。

相信會有助于英語單詞的快速掌握。

實現方案:

  1. 從pdf中提取文本 - PDFMiner庫
    <pre>
    import pyPdf
    def convertPdf2String(path):
    pdf = pyPdf.PdfFileReader(file(path, "rb"))
    print pdf.getNumPages()
    for page in pdf.pages:
    print page.extractText().encode("ascii", "ignore")
    </pre>
  2. 使用python nltk做詞頻統計
    <pre>
    tokens = nltk.word_tokenize(content)
    x = nltk.FreqDist(tokens)
    sorted_x = sorted(x.items(), key=operator.itemgetter(1),reverse=True)
    for a in sorted_x:
    print a[0],a[1]
    </pre>
    效果還不是特別好,應該把字符、數字去掉,只保留英文單詞
  3. UI,呈現-標簽
    將詞頻統計結果呈現給用戶,允許用戶打標簽:已掌握,尚未掌握
  4. 單詞復習,詞頻高、又沒有掌握的

數據庫表:用戶、圖書、用戶-單詞、圖書-單詞-詞頻、單詞

~原始想法:
自然語言處理,統計詞頻,按高低排序,用戶可以為每個詞打個記號,哪些是已經知道意思的,哪些是不知道的,形成一個用戶都掌握了哪些單詞的詞典庫,經過積累后,用戶對于自己掌握哪些單詞,就非常清楚了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容