2013-05-13 37 views
-1

我有以下問題。如何找到英語單詞的使用頻率?

我正在寫一個Android應用程序,它使用英語字典,它是一個教育應用程序,向用戶提交英語語言相關測試。

我有以下問題:

爲了評估該應用產生測試的難度,

我需要的是使用的英語單詞怎麼常用的近似值。

我只需要一個高水平的近似值,任何合理的來源都是可以接受的。

問題是我必須爲我的字典(Sqlite數據庫)中的每個單詞都做它,它包含95000單詞

有趣的問題,不是嗎?

歡迎任何建議!

編輯編輯編輯

我想通過代碼做谷歌查詢和使用效果有一個近似。 問題是,我懷疑Google會允許我的代碼執行95000個自動查詢...

回答

1

使用英文的frequency list(PDF)。低頻率或不在該名單中的詞是不常見

+0

謝謝你,這是一個非常好的資源 – 2013-05-13 11:08:02

1

這非常有趣。一種選擇是查詢 http://books.google.com/ngrams/graph

並收集統計數據,然後您可以詳細說明。 你可以使用一些很普通的詞設定的基準和比較比你的測試詞頻在底座上,或者做一些統計平均值等等等等

當然它反映了書面和不spojen英語,但如果限制的日期範圍到最後說,50年,它應該給你一個很好的aproximation。

+0

的確,那是我的主要想法!關鍵是,我當然需要通過代碼對Google進行95000次查詢。我強烈懷疑Google會允許我的代碼執行95000個自動查詢! – 2013-05-13 08:57:57

+0

那麼,如果你將它們分成幾天/幾周,也許它不會太糟糕:D,你仍然可以從這裏下載原始數據:http://storage.googleapis.com/books/ngrams/books/datasetsv2。 html – smarques 2013-05-13 08:59:33

1

當前測試創建一個HashMap<String,Integer>,創造ArrayList<String>在您的測試的話,做這樣的事情:

for(String word:words){ 
    if(word_frequency.containsKey(word)){ 
     Integer count = (Integer)word_frequency.get(word); 
     word_frequency.remove(word); 
     word_frequency.put(word,count+1); 
    }else{ 
     word_frequency.put(word,1); 
    } 
} 

這會給你一個HashMap包含在測試的每一句話和多少次這個詞出現。

請注意,這只是一個示例代碼,也許有更快的方法,也可以處理大小寫敏感以及我現在無法想到的一些事情。

相關問題