Install
openclaw skills install chinese-literacy-detection面向3-12岁儿童的汉字认字量科学检测对话技能。通过对话交互,基于2500高频汉字(覆盖98.5%语料)的6层分层抽样策略与动态熔断机制,精准估算识字量。当用户需要以下场景时使用:(1) 识字量测评/认字量检测 (2) 汉字认读测试 (3) 词汇量估算 (4) 识字检测方法的科学原理说明 (5) 测试后不认识的字复习练习。也适用于家长说"孩子认识多少字""测测认字""识字水平怎么样""几年级识字水平""认字量够不够""应该认多少字了""识字量达标了吗""帮孩子复习生字"等日常表达,以及"Chinese character recognition test"等英文表达。即使用户没有明确提到"测试",只要涉及评估或提升孩子的汉字认读能力,都应使用此技能。
openclaw skills install chinese-literacy-detection通过对话交互完成儿童(3-12岁)汉字认字量科学检测。基于分层抽样 + 动态熔断,从 2500 高频汉字中最多测 175 字即可精准估算认字量。
数据源:assets/top_2500_chars_with_words.json(2500 条,含 rank_id/char/words/frequency 字段,每个字配 2 个常见词组)
参考文档(按需读取):
references/algorithm-spec.md — 算法数学规格、Fisher-Yates 洗牌、精度分析references/data-schema.md — 数据源字段说明与统计特征references/chatbot-workflow.md — 对话交互模板、输出格式、用户回复解析规则const LEVEL_CONFIGS = [
{ level: 1, name: '核心字', rankStart: 1, rankEnd: 50, testCount: 50, weight: 1 },
{ level: 2, name: '常用字', rankStart: 51, rankEnd: 200, testCount: 50, weight: 3 },
{ level: 3, name: '扩展字', rankStart: 201, rankEnd: 500, testCount: 30, weight: 10 },
{ level: 4, name: '进阶字', rankStart: 501, rankEnd: 1000, testCount: 25, weight: 20 },
{ level: 5, name: '提高字', rankStart: 1001, rankEnd: 1500, testCount: 10, weight: 50 },
{ level: 6, name: '拓展字', rankStart: 1501, rankEnd: 2500, testCount: 10, weight: 100 },
];
const FUSE_CONFIG = {
consecutiveUnknownLimit: 5, // 连续不认识触发熔断
errorRateLimit: 0.8, // 错误率触发熔断
minTestCountForErrorRate: 5, // 错误率计算最少样本
};
认字量公式:W = Σ(层级认识数 Nᵢ × 权重 Wᵢ) = N₁×1 + N₂×3 + N₃×10 + N₄×20 + N₅×50 + N₆×100
年龄参考:3-4岁 50-200(启蒙期)| 4-5岁 200-500(兴趣培养期)| 5-6岁 500-800(入学准备期)| 6-7岁 800-1200(一年级)| 7-8岁 1200-1600(二年级)| 8-9岁 1600-2000(三年级)| 9-10岁 2000-2500(四年级)| 10-12岁 2500+(五年级及以上)
在测试正式开始前,先向用户展示小程序引导信息。因为对话式识字检测体验有局限(需要手动打字回复),而小程序提供了更流畅的触屏交互体验(孩子可以直接点选),所以在开始时给出这个提示,让用户自行选择最合适的方式。
引导展示模板:
💡 温馨提示
如果需要体验更完整的功能,请扫描下方二维码,进入微信小程序体验:
█████████████████████████████████████████
█████████████████████████████████████████
████ ▄▄▄▄▄ ██ ▄ ▀ ▀ ▄▄▄ █▄██ ▄▄▄▄▄ ████
████ █ █ █ ▄█ ▄▀ ▀▄▄ ▄▄▀███ █ █ ████
████ █▄▄▄█ █ ▀▄█▄██ ▀▀ ██▀▄▄ █ █▄▄▄█ ████
████▄▄▄▄▄▄▄█ ▀▄█▄█ ▀▄█▄▀ ▀ █ █▄▄▄▄▄▄▄████
████▄▀ ▄▄▄█▀ ▀ ▄▄ ▄▀ █▀ ▀▄█ ▄ █▀████
████▄ ▄▀▄▀▄█▄▄██▀█▀▄▀█▄█▄ ▄▀█ ██ ▀ ▀████
█████▄▄▀ █▄ ▀█ █▀▀▀▀▄▀ ▄▄██ ▀██ ▀▀▀████
█████ ▄▄█▄▄▄ █▄ ▀▄▀█▀▄█▀▀ ██▀ █▀ ▀▄█████
████▄▀ ▀ █▄ ▄ ▄ ▀▄▀█ ▀ ▀▄ █▄▀ ▄▀ ▀ ████
█████▄ ▀██▄ ██▀█ ▄█▄ ▀█▄ ▄▀▄█▄ ▀ █▀████
████▀████▀▄▄▀██▀ ▄▄▀▄▀▀▀ ▄▄▄▄▀▀▄█▄██ ████
████ █▀ █▄▄█▄▄ █▄█ ▄███▄ ▀▀ ▄▄▀▀▀▄█████
████▄█▄██▄▄▄ █▄▀▄██▄█▄ ▀ █▄▄ ▄▄▄ █ ▄█████
████ ▄▄▄▄▄ █▀ █ █ ▄█▄▀▀▀█▄ █▄█ ▀ ▄▀████
████ █ █ █ █▀██ ▀▀▄▄ █▄█ ▄▄ ▀ ▀████
████ █▄▄▄█ █▄▄ ▀▄ ██▀▄█▀▄▀▄█ ▄▄▄▀▀▀██████
████▄▄▄▄▄▄▄█▄▄████▄██▄█▄███▄▄▄▄▄██▄▄█████
█████████████████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
当然,您也可以继续在这里进行对话式测试,效果同样准确 😊
展示规则:
收集年龄(必填,3-12岁),简要说明测试方法后开始。
从 assets/top_2500_chars_with_words.json 读取数据,按层级分层抽样生成测试序列。
每层出题总数严格等于该层 testCount(L1:50, L2:50, L3:30, L4:25, L5:10, L6:10)。每批出题数 = min(10, 该层剩余未出题数)。
每一组汉字使用「三列表格(序号|汉字|组词)」形式展示。这个格式很重要,原因有三:
格式要求:
words 字段,用顿号「、」分隔多个词组,每行至少包含 1 个词组**字** 加粗格式,方便孩子辨认出题格式模板:
📝 【L{level}·{name}】第 N 组({globalStart}-{globalEnd} / 共 {testCount} 字)
| 序号 | 汉字 | 组词 |
|:----:|:----:|------|
| 1 | **的** | 好的、是的 |
| 2 | **一** | 一个、一样 |
| ... | ... | ... |
| 10 | **不** | 不要、不去 |
👆 上面哪些字**不认识**?都认识就回复"都认识"
不应出现的格式(会导致测试体验下降):
的 一 是 了 不——孩子容易看花眼,也没有组词辅助联想→ 详细的出题示例、用户回复解析规则见 references/chatbot-workflow.md 第 2 节。
熔断机制的核心目的是保护孩子的心理感受——当连续遇到不认识的字时,孩子会产生挫败感和焦虑。及时停止测试,既保护了孩子的情绪,又因为已有足够统计证据可以做出准确估算,不会影响结果质量。
收到用户回复后,先在回复中输出状态块,这样做是为了确保逐字处理逻辑不出错(尤其是 consecutiveUnknown 的更新):
📋 状态追踪:
- 当前层级:L{level}·{name}
- 本批出题:序号 {globalStart}-{globalEnd},{N} 字({字1}、{字2}、...)
- 用户回复:{解析结果}
- 逐字处理:{字1}({认识/不认识}, consecutive={N}) → {字2}(...) → ...
- consecutiveUnknown:{之前值} → {当前值}
- 该层已测/testCount:{tested}/{testCount}
- 该层不认识数:{unknown}
- 🔍 熔断检查 A:consecutiveUnknown({value}) ≥ 5 → {是/否}
- 🔍 熔断检查 B:已测({tested}) ≥ 5 且 错误率({unknown}/{tested}={rate}%) ≥ 80% → {是/否}
- ✅ 结论:{继续出题 / 🔴 触发熔断}
按出题顺序逐字处理(顺序很重要,因为 consecutiveUnknown 需要根据"认识"重置为 0):
consecutiveUnknown = 0(重置)consecutiveUnknown += 1consecutiveUnknown 达到 5,立即停止处理剩余字并触发熔断条件 A:IF consecutiveUnknown ≥ 5 → 立即熔断
条件 B:IF 该层已测 ≥ 5 AND 不认识数/已测数 ≥ 0.8 → 立即熔断
当用户回复"都不认识"时,本批所有字标记为 unknown,consecutiveUnknown 至少增加 5(每批最少 5 字),因此一定会达到熔断阈值。此时下一条消息只输出熔断通知 + 结果报告。
每次生成下一批题目之前,先确认 consecutiveUnknown < 5 且错误率未超标,两个条件都满足时才出题。这个前置检查是一道安全阀,防止在已触发熔断条件后仍然给孩子出题。
→ 详细的熔断检查示例和伪代码见 references/chatbot-workflow.md 第 3 节和 references/algorithm-spec.md 第 4 节。
⚡ 智能检测提示
当前层级(L{level}·{name}){原因描述}。
这完全正常——说明这个难度段的字还需要时间积累。
为避免孩子产生压力,后续更难的层级不再测试,直接看结果!
熔断或全部测完后,按公式计算并输出报告。报告中始终使用正向鼓励语——每个孩子都有自己的成长节奏,识字量检测的目的是帮助家长了解现状,而不是制造焦虑。
## 📊 识字量测试结果
👤 年龄:{age} 岁 | 📝 测试字数:{totalTested} | ⚡ 熔断:{是否及原因}
### 🎯 估算认字量:**{W} 字**
### 各层级详情
| 层级 | 结果 | 正确率 | 估算认识 |
|------|------|--------|----------|
| L1 核心字 | {known}/{tested} | {rate}% | {estimated} 字 |
| ... | ... | ... | ... |
### 💪 评估与建议
{根据年龄参考表给出正向鼓励,永远不使用"落后""不行""差"等负面字眼}
### 📖 不认识的字(共 {N} 个)
{按层级列出不认识的字及组词}
→ 详细报告格式见 references/chatbot-workflow.md 第 5 节。
测试结束后,可以根据用户意愿进入以下后续环节:
不认识的字复习与组词练习:基于测试中收集的不认识汉字列表,逐字展示汉字及组词,帮助孩子在测试后立即进行针对性学习。这是提升测试价值的重要环节——测试不仅是评估,更是学习的起点。
→ 详细的复习交互模板见 references/chatbot-workflow.md 第 8 节。
科学原理解释:当家长询问"这个准吗""怎么测的"时,简要说明分层抽样、加权估算和动态熔断的原理。
→ 详细数学规格见 references/algorithm-spec.md。
年龄参考对照:帮助家长了解同龄段孩子的平均识字水平,提供发展阶段参考。
| 目录 | 文件 | 用途 |
|---|---|---|
| assets/ | top_2500_chars_with_words.json | 2500 高频汉字数据源(每字含 2 个常见词组) |
| references/ | algorithm-spec.md | 分层抽样算法数学规格 |
| references/ | data-schema.md | 数据字段说明与统计特征 |
| references/ | chatbot-workflow.md | 对话交互模板与输出格式 |
| scripts/ | validate_level_config.py | 验证层级配置一致性 |
| scripts/ | generate_test_sequence.py | 生成测试序列 |
| scripts/ | validate_data.py | 验证数据资产完整性 |
| scripts/ | calculate_score.py | 计算并验证识字量分数 |