-1

我有以下问题。

我正在编写一个使用英语词典的 Android 应用程序,它是一个教育应用程序,向用户提交英语语言相关测试。

我有以下问题:

为了评估应用程序产生的测试的难度,

我需要大致了解英语单词的使用频率。

我只需要一个高级近似值,任何合理的来源都是可以接受的。

问题是我必须对包含95000 个单词的字典(Sqlite 数据库)中的每个单词都执行此操作。

有趣的问题,不是吗?

请任何建议,而不是欢迎!

编辑 编辑 编辑

我正在考虑通过代码进行谷歌查询并使用结果进行近似。关键是我怀疑谷歌会允许我的代码进行 95000 次自动查询......

4

3 回答 3

1

这很有趣。一种选择是查询 http://books.google.com/ngrams/graph

并收集统计数据,然后您可以详细说明。您可以使用一些非常常见的词设置一个基数,并将您测试的词频与基数进行比较,或者做一些统计平均值等。

当然,它反映的是书面英语而不是英语,但如果您将日期范围限制在最后说的 50 年,它应该会给您一个很好的近似值。

于 2013-05-13T08:52:42.367 回答
1

使用英语频率列表(PDF)。频率低或不在该列表中的词并不常见

于 2013-05-13T08:52:50.333 回答
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包含测试中的每个单词以及这个单词出现的次数。

注意,这只是一个示例代码,也许有更快的方法,你也可以处理区分大小写和一些我现在想不到的事情。

于 2013-05-13T09:02:12.013 回答