难度评分

词典中的每个词条都有一个难度分数:一个数字,告诉你和应用它有多难。由此形成一条从最简单的汉字到最复杂的句子的自然学习阶梯。

渐进式课程

难度等级从 1 开始,而这个位置只属于一个字:「对」。这是一个有意为之的选择,而且有两层用意:「对」是初学者最早就用得上的字之一(表示同意、确认,也是听懂老师反馈的关键),同时它也是我们应用名字的由来!从这里开始,等级逐步攀升数千级。你不必严格按等级走,但它提供了可靠的进度感:如果你对难度 50 的汉字得心应手,就大致知道难度 60 会遇到什么,也可以放心,应用绝不会在你没准备好时抛出难度 500 的内容。

逐条评定的基础

每个汉字的难度分数都经过逐条评定,而且没有一个是随意的:我们制定了一份书面的评分准则,写明了整个系统的基本原则(见下文),每个分数都以它为衡量标准。

评分准则

准则是人的判断安放的地方。我们在开始评分之前就定下了规则,语料库里的每一次定位都受它约束(我们如何在这么大的规模上应用它,本身就是一个故事,详见「由 AI 构建」)。它对每一次定位都要问同一个核心问题:学会这个字,能让学习者做到哪些原本做不到的事?一个字凭它解锁的东西赢得靠前的位置:在已学内容的基础上,因它而变得可能的词语和对话。准则的几条原则:

  • 是阶梯,不是词频表。用准则的原话说,「语料频率不等于教学优先级」:语料统计偏向正式的书面中文,而学习者最先需要的是日常会话词汇。
  • 具体先于抽象。看得见、摸得着、尝得到、做得了的字,排在概念、书面语和文言虚词之前,哪怕后者在语料里的频率更高。
  • 成组的字打开场景。常常组合的字排得彼此相近,这样一小组字学下来,就打开了一整个真实场景,比如在餐馆点菜。
  • 学习工具优先。支撑师生交流的字,比如「对」「错」「问」「答」,因为直接服务于学习过程本身,所以排在很前面。
  • 修正是例外。对于合成词,默认以计算分数为准;「修正是例外,不是常态」。

准则是一份活的文件,分数也是:打磨是迭代式的,每一轮都把放错位置的词条向它应有的位置推近一步。

组合式难度

对于多字的词语和短语以及例句,难度由组成部分的难度用数学方式计算得出。两个简单汉字组成的词,比两个难字组成的词容易,但总比其中任何一个单字更难,因为组合方式本身也是要学的知识。这让整个难度体系内部自洽:词典中任意两个词条都可以比较,一眼看出哪个更难。

在语言不服从组合规律的地方加以修正

大多数中文词语确实是部件之和,对它们来说计算分数恰如其分。但并非全部如此。有些合成词比它的字面难得多:「个子」由「个」和「子」组成,认识这两个字对猜出词义毫无帮助。有些词用入门级的字组成了初学者根本用不上的东西,比如「奶」加「水」组成的「奶水」。还有一些正好相反:「学生」「咖啡」这样的词,学习者头几周就必须会,远在系统性学习它们的组成字之前,所以是当作整体记住的。

对于这些情形,计算分数会得到一次专门修正,修正的依据仍然是同一份评分准则,它对合成词的铁律是:「一个词的难度,反映学习者何时认识了足够的字、能把它读出来。」意思晦涩、专门或书面的词被推后,生存词汇和音译词被提前。不到 20% 的词语和不到 4% 的短语带有修正,其余全部以计算分数为准。最终的阶梯,在中文的组合规律成立的地方遵循组合规律,在不成立的地方遵循人的判断。还有一点值得直说:这条阶梯只是众多可能的教学路径之一。是我们设计了它,我们认为它不错,而且我们会随着对用户真实学习方式的了解不断迭代,更新我们的数据和方法。完整的规则都在数学页面上。