我正在开发基于文字的游戏。我的单词数据库包含大约10,000个英语单词(按字母顺序排列)。我计划在游戏中设置5个难度等级。相对而言,级别1显示最简单的单词,级别5显示最困难的单词。
我需要将10,000个长单词列表分为5个级别,从最简单的单词到最难的单词开始。我正在寻找一个程序来帮助我。
有人可以告诉我是否有一种算法或方法可以定量地测量一个英语单词的难度?
[我有一些想法围绕着使用“ 单词长度”和“ 单词频率”作为因素,并提出了一个公式或可以实现此目的的东西。
获取大量文本集(例如,从古腾堡(Gutenberg)档案中获得的文本,进行直接频率分析,并仔细观察结果。如果它们看起来不令人满意,则用Flesch-Kincaid分数对每个文本加权,然后再次运行分析-经常出现但在“难”文本中出现的单词会得到分数的提升,这就是您想要的。
但是,如果您只有10000个单词,将频率排序作为第一遍,然后手动调整结果可能会更快。
在他有关拼写校正的文章中,Peter Norvig使用字典来计数每个单词的出现次数(从而确定它们的出现频率。)>
您可以将其用作垫脚石:)
除了Flesch-Kincaid之类的度量标准之外,您还可以尝试使用Dale-Chall可读性公式为基础的方法,使用特定能力水平的读者熟悉的单词列表。
我想,将单词的等级引入普通学生的词汇表是对难度的一种度量。接下来是它有多少个标准规则冲突。意思是您的单词具有拼写或发音,似乎违反了正常的启动规则。最后..含义..可能是一个艰难的概念。 ..例如...尝试向从未听说过该词的人解释摘要。
[没有声称对他们的算法一无所知,有一个API会返回1-10级的单词难度:TwinWord API
我同意使用频率是最可能的指标;有研究支持单词频率与难度(测试正确答案等)之间的高度相关性。在http://elexicon.wustl.edu/处查看英语词汇项目,查找70k(?)频率额定的单词。
我不知道使用频率是多少...如果您要扫描报纸,我敢肯定,您会经常提到“彻底”一词,而不是“流行”或“ moo”一词,但是这并不意味着这是一个简单的词;相反,“彻底”是最令人恶心的荒谬的拼写异常之一,它使小学生恶梦...
[尝试向一个理智的人讲英语作为第二语言,这是屠杀和笑声之间的细微差别。
难度是一个相当大的无定形概念。如果您不清楚想要什么,也许可以看看Porter Stemming Algorithm(例如,参见original paper)。通过将单词定义为[C](VC){m}[V]
的形式,它包含了一个更高级的“长度”概念; C表示辅音块,V表示元音块,此定义表示一个单词是可选的C,后跟m VC块,最后是可选的V。m值是此高级“长度” 。
取决于游戏类型,“困难”的定义将改变。如果您的游戏涉及快速键入(ztype样式...),则“难”的含义将不同于需要定义单词含义的游戏的含义。
也就是说,Scrabble有一种方法来测量单词的“难度”,从算法上也很容易。
[您也可以考虑根据游戏定义“难”。您可以测试您的游戏并根据“困难的”玩家在您自己的游戏中如何找到单词来对单词进行分类。
众包答案。
玩起来甚至可能很有趣,最后您可以获得语言熟练度分数。
有几个与单词难度有关的因素,包括习得年龄,可成像性,具体性,抽象性,音节,频率(口语和书面)。也有心理语言学数据库将通过至少其中一些因素来搜索单词。 (只需搜索“心理语言数据库”。
单词频率是一个明显的选择(当然不是完美的)。您可以下载Google n-grams V2 here,它是Creative Commons Attribution 3.0 Unported许可证下的许可证。
字长是一个很好的指标,对于字频,您将需要数据,因为算法显然无法自行确定。您也可以像拼字游戏一样使用某种评分方式:每个字母都有一个值,最终值将是这些值的总和。在您的语言中查找每个字母的频率数据会更容易。