我正在开发基于单词的游戏。我的单词数据库包含大约10,000个英语单词(按字母顺序排序)。我计划在游戏中有5个难度级别。等级1显示最简单的单词,等级5显示最难的单词,相对而言。
我需要将10,000个长单词列表分为5个级别,从最简单的单词开始到难点单词。我正在寻找一个程序来为我做这件事。
有人能告诉我是否有算法或方法来量化衡量英语单词的难度?
我有一些想法围绕使用“字长”和“字频率”作为因素,并提出一个公式或其他方法来实现这一点。 / p>
答案 0 :(得分:10)
获取大量文本(例如来自古腾堡档案馆),进行直接频率分析,并观察结果。如果它们看起来不令人满意,请用Flesch-Kincaid分数对每个文本进行加权并再次运行分析 - 经常出现的单词,但在“困难”的文本中会得到一个得分提升,这就是你想要的。 / p>
如果您拥有的只有10000个单词,那么将频率排序作为第一遍进行,然后手动调整结果可能会更快。
答案 1 :(得分:3)
我同意使用频率是最可能的指标;有研究支持词频和难度之间的高度相关性(对测试的正确反应等)。查看http://elexicon.wustl.edu/的英语词典项目,查看频率为70k(?)的单词。
答案 2 :(得分:3)
我不明白频率是如何被使用的......如果你要扫描报纸,我相信你会比“bop”或“moo”这个词更频繁地看到“彻底”这个词。但这并不意味着这是一个更容易的词;相反,'彻底'是最令人厌恶的荒谬拼写异常之一,给小学生带来噩梦......
尝试向一个理智的人解释学习英语作为第二语言屠宰和笑声之间的细微差别。
答案 3 :(得分:1)
难度是一个非常无形的概念。如果你不清楚你想要什么,也许你可以看一下 Porter Stemming Algorithm (参见例如original paper)。通过将单词定义为[C](VC){m}[V]
形式,其中包含更高级的“长度”概念; C表示辅音块,V表示元音块,此定义表示单词是可选的C,后跟 m VC块,最后是可选的V. m 值这是先进的'长度'。
答案 4 :(得分:1)
根据游戏类型,“难”的定义会发生变化。如果你的游戏涉及快速打字(ztype - 样式......),那么“难”将具有与你需要定义单词意义的游戏中不同的含义。
那就是说,Scrabble有一种方法可以衡量一个单词的“难度”,这也很容易算法。
您也可以考虑在游戏中定义“难度”。你可以测试你的游戏,并根据你自己游戏环境中“难”的玩家如何找到它们来对词汇进行分类。
答案 5 :(得分:1)
群众 - 给出答案。
玩起来甚至可能很有趣,最后你可以获得语言能力评分。
答案 6 :(得分:1)
有几个与单词难度相关的因素,包括习得时的年龄,可成像性,具体性,抽象性,音节,频率(口语和书面)。还有心理语言学数据库将至少通过这些因素中的一些来搜索单词。 (只需搜索“心理语言数据库”。
答案 7 :(得分:0)
字长是一个很好的指标,对于字频,你需要数据作为算法显然不能自己确定它。 你也可以像拼字游戏那样使用某种得分:每个字母都有一个值,最终值就是值的总和。 找到您所用语言中每个字母的频率数据会更容易。
答案 8 :(得分:0)
在他关于拼写纠正的文章中Peter Norvig使用字典来计算每个单词的出现次数(从而确定它们的频率)。
你可以用它作为踏脚石:)
此外,频率应该可能影响难度而不是长度...你必须对游戏进行beta测试。
答案 9 :(得分:0)
除Flesch-Kincaid之类的指标外,您还可以尝试使用基于Dale-Chall可读性公式的方法,使用特定能力水平的读者熟悉的单词列表。
许多可读性公式的实现包含用于估计单词中音节数量的代码,这也可能有用。
答案 10 :(得分:0)
我猜这个单词的等级被引入正常学生的词汇量是一个难度的衡量标准。接下来是它有多少标准规则违规。意思是你的单词有拼写或发音似乎违反了正常的掀起规则。最后......意义......可能是一个艰难的概念。 ..例如......试着向那些从未听过这个词的人解释摘要。
答案 11 :(得分:0)
词频是一个明显的选择(当然不是完美的)。您可以下载Google n-gram V2 here,这是Creative Commons Attribution 3.0 Unported License下的许可。
格式:ngram TAB year TAB match_count TAB page_count TAB volume_count NEWLINE
示例:
使用语料库(来自Lin,Yuri,et al。" Syntactic annotations for the google books ngram corpus." ACL 2012系统演示论文集。计算语言学协会,2012。):
答案 12 :(得分:0)
没有声称自己对算法有任何了解,有一个API会返回1到10个小数位数的单词难度:TwinWord API
我自己从未使用过它。