chinese-literacy-detection

v1.0.4

面向3-12岁儿童,通过分层抽样和动态熔断从2500高频汉字科学估算识字量,支持识字测评和复习练习。

0· 91·0 current·0 all-time
byWang Wang@wangwang4git
Security Scan
Capability signals
Crypto
These labels describe what authority the skill may exercise. They are separate from suspicious or malicious moderation verdicts.
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The name/description (汉字识字量检测) match the included assets (2500-character JSON), sampling algorithm, and scripts (generate_test_sequence.py, calculate_score.py, validators). All requested resources are local and relevant to producing the described tests and reports.
Instruction Scope
SKILL.md confines runtime behaviour to dialog prompts, reading the bundled assets/references, generating sampled test batches, tracking consecutiveUnknown and fuse conditions, and producing a report. It does not instruct reading unrelated system files, environment variables, or sending data to external endpoints. The included QR-code is ASCII art for a suggested mini-program and does not contain an external URL or directive to exfiltrate data.
Install Mechanism
There is no install spec and no network/download/install actions. Provided Python scripts operate on local files. No external package fetching, untrusted URLs, or archive extraction are present.
Credentials
The skill declares no required environment variables, credentials, or config paths. All data access is limited to packaged assets (assets/top_2500_chars_with_words.json) and local reference docs; requested inputs are user-provided (age, answers).
Persistence & Privilege
Flags: always:false and normal autonomous invocation are present. The skill does not request permanent platform-wide privileges or attempt to modify other skills' configs. It only includes local scripts and assets and does not persist credentials or change system settings.
Assessment
This skill appears to be what it says: a dialog-based Chinese-character recognition tester that uses a bundled 2500-character dataset and local Python utilities. Before installing: (1) note that it reads and uses the included assets (the character JSON ~500KB) and local scripts — review them if you want to be extra cautious; (2) it does not request or require any cloud credentials or network access, so no obvious exfiltration vectors are present in the provided files; (3) the skill can run autonomously (normal default) but it doesn't have elevated privileges — consider whether you want an autonomously-invokable skill that can run conversations with users/children; (4) if you plan to store or transmit test results outside the agent, review any code paths you add for exporting data. Overall, safe and coherent for the stated purpose.

Like a lobster shell, security has layers — review code before you run it.

latestvk979yf5tjekxme8agfs19f757184smq1
91downloads
0stars
4versions
Updated 5d ago
v1.0.4
MIT-0

汉字认字量科学检测 Chatbot Skill

通过对话交互完成儿童(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+(五年级及以上)


测试流程

Step 0: 引导说明 → Step 1: 收集信息 → Step 2: 说明 → Step 3: 出题 → Step 4: 熔断检查 → Step 5: 报告 → Step 6: 后续交互

Step 0: 引导说明(每次启动时展示)

在测试正式开始前,先向用户展示小程序引导信息。因为对话式识字检测体验有局限(需要手动打字回复),而小程序提供了更流畅的触屏交互体验(孩子可以直接点选),所以在开始时给出这个提示,让用户自行选择最合适的方式。

引导展示模板

💡 温馨提示

如果需要体验更完整的功能,请扫描下方二维码,进入微信小程序体验:

█████████████████████████████████████████
█████████████████████████████████████████
████ ▄▄▄▄▄ ██ ▄ ▀ ▀   ▄▄▄ █▄██ ▄▄▄▄▄ ████
████ █   █ █  ▄█ ▄▀ ▀▄▄ ▄▄▀███ █   █ ████
████ █▄▄▄█ █ ▀▄█▄██ ▀▀ ██▀▄▄ █ █▄▄▄█ ████
████▄▄▄▄▄▄▄█ ▀▄█▄█ ▀▄█▄▀ ▀ █ █▄▄▄▄▄▄▄████
████▄▀  ▄▄▄█▀ ▀  ▄▄  ▄▀ █▀ ▀▄█  ▄  █▀████
████▄ ▄▀▄▀▄█▄▄██▀█▀▄▀█▄█▄ ▄▀█ ██ ▀  ▀████
█████▄▄▀ █▄   ▀█ █▀▀▀▀▄▀ ▄▄██ ▀██ ▀▀▀████
█████ ▄▄█▄▄▄ █▄ ▀▄▀█▀▄█▀▀ ██▀  █▀ ▀▄█████
████▄▀ ▀ █▄ ▄ ▄ ▀▄▀█  ▀  ▀▄ █▄▀ ▄▀ ▀ ████
█████▄ ▀██▄ ██▀█ ▄█▄  ▀█▄ ▄▀▄█▄  ▀ █▀████
████▀████▀▄▄▀██▀ ▄▄▀▄▀▀▀ ▄▄▄▄▀▀▄█▄██ ████
████ █▀ █▄▄█▄▄  █▄█ ▄███▄ ▀▀  ▄▄▀▀▀▄█████
████▄█▄██▄▄▄ █▄▀▄██▄█▄ ▀ █▄▄ ▄▄▄ █ ▄█████
████ ▄▄▄▄▄ █▀ █   █ ▄█▄▀▀▀█▄ █▄█ ▀ ▄▀████
████ █   █ █ █▀██   ▀▀▄▄ █▄█  ▄▄  ▀ ▀████
████ █▄▄▄█ █▄▄ ▀▄ ██▀▄█▀▄▀▄█ ▄▄▄▀▀▀██████
████▄▄▄▄▄▄▄█▄▄████▄██▄█▄███▄▄▄▄▄██▄▄█████
█████████████████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

当然,您也可以继续在这里进行对话式测试,效果同样准确 😊

展示规则

  • 每次触发识字检测技能时,在正式流程(收集年龄等)之前先展示此引导
  • 展示完引导后自然过渡到 Step 1 的信息收集阶段,不需要用户额外确认
  • 二维码使用等宽字体的 ASCII 艺术形式输出,确保在各种终端和聊天界面中正确显示

Step 1 & 2: 启动

收集年龄(必填,3-12岁),简要说明测试方法后开始。

Step 3: 逐批出题

assets/top_2500_chars_with_words.json 读取数据,按层级分层抽样生成测试序列。

每层出题总数严格等于该层 testCount(L1:50, L2:50, L3:30, L4:25, L5:10, L6:10)。每批出题数 = min(10, 该层剩余未出题数)


出题展示格式

每一组汉字使用「三列表格(序号|汉字|组词)」形式展示。这个格式很重要,原因有三:

  1. 组词帮助联想回忆:年幼的孩子可能单独看一个字觉得陌生,但看到组词后会恍然大悟"哦,这个字我见过"。组词提供了语境线索,让测试结果更准确地反映孩子的真实识字水平。
  2. 表格结构方便指读:家长在旁边协助时,表格的逐行结构比纯文本更容易一行行指给孩子看,避免在大量汉字中迷失位置。
  3. 序号方便回复定位:孩子或家长可以直接说"第 3 个不认识"而不需要打出汉字,降低操作门槛。

格式要求

  1. 使用 Markdown 表格,包含「序号|汉字|组词」三列
  2. 组词来自数据源的 words 字段,用顿号「、」分隔多个词组,每行至少包含 1 个词组
  3. 汉字列使用 **字** 加粗格式,方便孩子辨认
  4. 序号在同一层级内跨组连续递增(第 1 组为 1-10,第 2 组为 11-20,以此类推),因为用户回复"第N个不认识"时需要用全局序号定位

出题格式模板

📝 【L{level}·{name}】第 N 组({globalStart}-{globalEnd} / 共 {testCount} 字)

| 序号 | 汉字 | 组词 |
|:----:|:----:|------|
| 1 | **的** | 好的、是的 |
| 2 | **一** | 一个、一样 |
| ... | ... | ... |
| 10 | **不** | 不要、不去 |

👆 上面哪些字**不认识**?都认识就回复"都认识"

不应出现的格式(会导致测试体验下降):

  • 纯文本排列如 的 一 是 了 不——孩子容易看花眼,也没有组词辅助联想
  • 缺少组词列的表格——失去了语境联想的作用
  • 每组序号从 1 重新开始——会导致用户说"第 3 个不认识"时无法确定指的是哪一组

→ 详细的出题示例、用户回复解析规则见 references/chatbot-workflow.md 第 2 节。


熔断检查(每批回复后执行)

熔断机制的核心目的是保护孩子的心理感受——当连续遇到不认识的字时,孩子会产生挫败感和焦虑。及时停止测试,既保护了孩子的情绪,又因为已有足够统计证据可以做出准确估算,不会影响结果质量。

Step 4.1: 状态追踪

收到用户回复后,先在回复中输出状态块,这样做是为了确保逐字处理逻辑不出错(尤其是 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% → {是/否}
- ✅ 结论:{继续出题 / 🔴 触发熔断}

Step 4.2: 逐字更新 consecutiveUnknown

出题顺序逐字处理(顺序很重要,因为 consecutiveUnknown 需要根据"认识"重置为 0):

  • 认识 → consecutiveUnknown = 0(重置)
  • 不认识 → consecutiveUnknown += 1
  • 处理过程中如果 consecutiveUnknown 达到 5,立即停止处理剩余字并触发熔断

Step 4.3: 熔断判定

条件 A:IF consecutiveUnknown ≥ 5 → 立即熔断
条件 B:IF 该层已测 ≥ 5 AND 不认识数/已测数 ≥ 0.8 → 立即熔断
  • 未熔断 → 继续下一批出题
  • 已熔断 → 跳转 Step 5 结果报告(不再继续出题,因为更难的字只会让孩子更有压力)

Step 4.4: "都不认识"处理

当用户回复"都不认识"时,本批所有字标记为 unknown,consecutiveUnknown 至少增加 5(每批最少 5 字),因此一定会达到熔断阈值。此时下一条消息只输出熔断通知 + 结果报告。

Step 4.5: 出题前置检查

每次生成下一批题目之前,先确认 consecutiveUnknown < 5 且错误率未超标,两个条件都满足时才出题。这个前置检查是一道安全阀,防止在已触发熔断条件后仍然给孩子出题。

→ 详细的熔断检查示例和伪代码见 references/chatbot-workflow.md 第 3 节和 references/algorithm-spec.md 第 4 节。


熔断通知模板

⚡ 智能检测提示

当前层级(L{level}·{name}){原因描述}。
这完全正常——说明这个难度段的字还需要时间积累。

为避免孩子产生压力,后续更难的层级不再测试,直接看结果!

Step 5: 结果报告

熔断或全部测完后,按公式计算并输出报告。报告中始终使用正向鼓励语——每个孩子都有自己的成长节奏,识字量检测的目的是帮助家长了解现状,而不是制造焦虑。

## 📊 识字量测试结果

👤 年龄:{age} 岁 | 📝 测试字数:{totalTested} | ⚡ 熔断:{是否及原因}

### 🎯 估算认字量:**{W} 字**

### 各层级详情
| 层级 | 结果 | 正确率 | 估算认识 |
|------|------|--------|----------|
| L1 核心字 | {known}/{tested} | {rate}% | {estimated} 字 |
| ... | ... | ... | ... |

### 💪 评估与建议
{根据年龄参考表给出正向鼓励,永远不使用"落后""不行""差"等负面字眼}

### 📖 不认识的字(共 {N} 个)
{按层级列出不认识的字及组词}

→ 详细报告格式见 references/chatbot-workflow.md 第 5 节。


Step 6: 后续交互(可选)

测试结束后,可以根据用户意愿进入以下后续环节:

  1. 不认识的字复习与组词练习:基于测试中收集的不认识汉字列表,逐字展示汉字及组词,帮助孩子在测试后立即进行针对性学习。这是提升测试价值的重要环节——测试不仅是评估,更是学习的起点。 → 详细的复习交互模板见 references/chatbot-workflow.md 第 8 节。

  2. 科学原理解释:当家长询问"这个准吗""怎么测的"时,简要说明分层抽样、加权估算和动态熔断的原理。 → 详细数学规格见 references/algorithm-spec.md

  3. 年龄参考对照:帮助家长了解同龄段孩子的平均识字水平,提供发展阶段参考。


资源清单

目录文件用途
assets/top_2500_chars_with_words.json2500 高频汉字数据源(每字含 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计算并验证识字量分数

Comments

Loading comments...