试卷深度分析
用途
把一份「做过的数学试卷」转化为一份可执行的「提分方案」:不仅判断对错,而是定位到具体知识点的认知断点,给出补救路径,并用变式题验证补救是否真的生效,最后做竞赛层级的深度拓展。
何时使用
触发场景:
- 上传试卷图片/扫描件/PDF/Word,要求批改、判分、检查、讲解错题
- 粘贴试卷文本或「题目+标准答案」,要求分析
- 只有标准答案,要求反推薄弱环节并出具诊断性练习
- 要求「总结这类题的套路/技巧」「出几道同类型的题再练」「往深了拓展到奥数」
不适用:非数学学科(物理/化学/生物)、作文批改、纯课堂笔记整理。
输入形态与处理路径
先判定输入形态,再走对应路径。四条路径最终汇入同一个分析引擎。
| 形态 | 判定方法 | 处理路径 |
|---|---|---|
| 完整试卷含学生作答 | 有作答痕迹、卷面分数 | 路径 A:判分驱动(最完整) |
| 完整试卷仅答案 | 题目完整、无作答 | 路径 B:对照评估驱动 |
| 纯文本/题目+答案 | 文字形式,无图片 | 同路径 A 或 B |
| 仅有标准答案 | 无题目或仅有答案键 | 路径 C:逆向诊断驱动 |
图片/PDF/扫描件:直接用视觉能力读取,不依赖 OCR 脚本。逐题核对:题干、图(几何图/函数图象/统计图表/数轴/网格)、选项、学生作答。图形信息不可遗漏——图像化题干是数学失分的重灾区。读取时明确区分「印刷体题目」与「手写作答」,两者的混淆会直接导致误判。
PDF/Word 文档:优先用 scripts/extract_questions.py 抽取结构化文本,比直接读取更省 token 且不丢题号结构。
八阶段分析流水线
严格执行,不可跳阶段。每一阶段的输出是下一阶段的输入。
S1 判分:先做「错误三分法」
这一步是整条流水线的分水岭。 不要在判分阶段就下「粗心」结论。必须对每道错题先归入三类之一,因为三类的补救方向完全相反:
| 类型 | 判定标准 | 补救方向 |
|---|---|---|
| 知识性错误(K) | 概念/性质/定理/公式本身理解错或用错 | 回炉重学,重建概念 |
| 计算性错误(C) | 思路正确,运算/代数变形/符号处理出错 | 限时运算训练,流程固化 |
| 表达性错误(E) | 结论正确但步骤、单位、答句、符号、书写不规范 | 规范训练,答题模板化 |
同时标注得分情况:满分/部分得分/零分(含步骤分判定)。主观题必须按步骤给分,标注「得分点命中/未命中」。
K/C/E 误判代价:把 K 判成 C 会让学生白刷题;把 C 判成 K 会让学生恐慌性重学。都错。判错类型是整份分析失效的起点。
细则(主观题步骤分、压轴题采分点、开放题合理变式答案的认定)见 references/grading_rubric.md。
S2 错因归类:定位到认知断点,不停在表面
按 references/error_taxonomy.md 的 C1–C12 分类体系归类错误原因。每道错题必须给出:
- 错误类型(C1–C12 之一,可多选,但需指明主因)
- 断链位置:错误发生在解题链路的第几步
- 前置知识缺口:导致这个错误的上游知识点(这是最关键的一栏——错误的根因几乎总是落在一个未掌握的前置节点上,而不是出错的那道题本身)
- 错误陈述:把学生的错误思路原文重述一遍(不是概括「他算错了」,而是「他把 X 当成了 Y」)
多选题的「选对但不全」是独立类型,不要与「完全不会」混为一谈。
S3 知识点定位:三级标签体系
按 references/knowledge_taxonomy.md 给每道题的知识“打”上三级标签:
- L1 核心层——课标要求,本卷必须掌握的知识点
- L2 关联层——与错题知识直接相连的前后左右知识点(一题多考的连带失分点)
- L3 拓展层——竞赛/奥数前置与方法迁移所需的知识点
每道错题至少产出 1 个 L1 标注和 2 个 L2 关联标注。L2 关联是本技能的核心增值——学生丢分往往不是这一题不会,而是知识网络断了。要画出「本知识点 → 断链前置」的链条。
S4 知识点拓展:向上下游双向延伸
对每个 L1 知识点做双向拓展:
- 向上(前置):这一知识点依赖什么。若前置未掌握,在此标注「需回补」。
- 向下(后继/衍生):由这一知识点可以直接长出什么。列出 3–5 个衍生知识点,构成学生的「补强路线图」。
输出为一张知识点掌握地图,标出红(断链)/黄(不稳)/绿(掌握)三色。
S5 做题技巧总结:从错题反推方法论
不是泛泛讲「认真审题」,而是从具体错题的失败模式反推出可操作的技巧。每条技巧必须绑定至少一道本次的错题作为来源,格式为「因为错在 X(题号),所以技巧是 Y」。
按 references/technique_patterns.md 的「条件→方法映射表」组织,同时给出:
- 识别信号:看到题中什么特征,就该想起什么方法
- 操作步骤:具体怎么做,含书写格式
- 适用边界:什么情况下这个方法会失效
无来源的空泛技巧一律不写。
S6 常见套路提炼:陷阱清单 + 套路反应
学生视角最实用的一环。产出两部分:
6a 陷阱清单(本题型最可能踩的坑):逐条给出触发条件、典型错法、如何规避。陷阱库见 references/technique_patterns.md。
6b 套路反应:把本类题的解法固化为可复用的「套路包」——固定视角(正常思路)+ 固定套路(快速通道)+ 固定检验(验算方式)。
同时把本次错题归纳为可迁移的解题模板,写出「审题三问 → 定位信号 → 选择方法 → 检验收尾」四段式。
S7 同类变式测试:同构不同题
基于 S2–S6 产出变式题,不是简单换数字。要求:
- 同构不变式:保留原题的结构、考点、解法主干
- 换皮不换骨:更换情境、数据、设问方式、图形,但考点覆盖不变
- 数量:每类错误至少 3 题
- 覆盖标注:每题必须标注它覆盖的知识点(引 L1/L2/L3 标签)和它针对的错误类型(C1–C12)
- 含答案:给出答案 + 关键步骤 + 一句话思路点拨
- 难度阶梯:基础巩固 → 变式提升 → 综合迁移 三档
所有题目与答案必须验算,用 scripts/verify_math.py 校验计算结果,符号推导题用 sympy 复核。不验算的题不要交付。
S8 奥数深度拓展:标注跳板
把考点向上拔高到竞赛层级,但必须给出可攀爬的路径,不能直接丢奥数题。
按 references/olympiad_extension.md 的五板块体系 + 四级阶梯:
- A 技巧强化级——课标题的特殊化/构造/对称
- B 方法迁移级——引入数论工具(整除、同余、抽屉、容斥)
- C 综合建模级——多知识点融合建模
- D 竞赛级——竞赛大纲核心方法
每道奥数题必须输出跳板说明:从课标原题到奥数题,需要补哪几个中间概念/方法。写清楚「学生从哪一级台阶能上去」。同时标注该考点对应的主流竞赛题型(如「华杯赛」「迎春杯」「全国初中数学联赛」常见形式),便于后续找题。
若学段为小学,S8 降级为「小学奥数(小升初)」版本;初中及以上启用完整四阶体系。
输出形态
默认在对话内输出 Markdown 报告,并在关键处用可视化呈现(得分分布、知识点雷达、错因占比)。用户要求其他形态时按需生成:
| 形态 | 生成方式 |
|---|---|
| Markdown 报告 | 直接输出 + show_widget 可视化 |
| Word 文档 | scripts/build_report.py |
| PDF 报告/练习卷 | scripts/build_practice.py(含中文字体注册) |
| Excel 错题追踪表 | scripts/build_tracker.py(累积追加,不覆盖历史) |
Excel 追踪表必须累积:同一学生多次分析时追加新记录,保留历史掌握度变化与复习提醒,用 scripts/review_schedule.py 依据遗忘曲线算出下次复习日期。禁止每次重新生成覆盖。
执行要点
- 判分先行:任何未判分的分析都不完整。不确定某个作答时,明确标注「存疑」并说明存疑原因,不要猜测后当作确定结论。
- 链条完整:S2 必须回溯到前置知识,S8 必须给出跳板。这两处偷懒,报告就退化成普通答案解析。
- 技巧要有来源:S5 每条技巧绑定本次真实错题。
- 题目必须验算:S7、S8 所有生成题目跑
scripts/verify_math.py。 - 学段适配:先确认学段与教材版本(人教/北师大/苏教影响知识点编号与范围),未确认时按最通用版本处理并注明。
- 量力而行:变式题与奥数题的数量按学生实际掌握程度调整。基础极弱时,加奥数题是伤害——此时应先补 L1 断链,并在报告中说明为何暂缓 S8。
参考文件索引
| 文件 | 内容 | 何时加载 |
|---|---|---|
references/grading_rubric.md |
判分细则、步骤分规则、特殊题型采分标准 | S1 判分前 |
references/error_taxonomy.md |
C1–C12 错因分类体系与判定流程 | S2 归类前 |
references/knowledge_taxonomy.md |
知识点图谱、三级标签体系、常见断链点 | S3–S4 定位时 |
references/technique_patterns.md |
条件→方法映射表、技巧库、陷阱库、套路包 | S5–S6 提炼时 |
references/olympiad_extension.md |
五板块体系、四级阶梯、跳板设计、竞赛题型对照 | S8 拓展时 |
references/report_templates.md |
报告与练习卷的版式规范 | 生成文档前 |
references/worked_example.md |
完整样例:一道压轴错题走完八阶段的全过程 | 首次使用或需要校准格式时 |
脚本
| 脚本 | 功能 |
|---|---|
scripts/extract_questions.py |
从 PDF/Word/文本抽取结构化题目(含题号、题干、选项、分值) |
scripts/verify_math.py |
验算生成的题目与答案:数值计算复核、sympy 符号推导、答案唯一性检查 |
scripts/build_report.py |
生成 Word 分析报告(判分表、错因表、知识点地图、技巧套路) |
scripts/build_practice.py |
生成练习卷(Word 或 PDF,含答案页,支持三档难度) |
scripts/build_tracker.py |
生成/追加 Excel 错题追踪表(累积模式,含掌握度评分) |
scripts/review_schedule.py |
依据艾宾浩斯遗忘曲线算出复习日期 |
scripts/setup_env.py |
跨环境自动探测 Python 解释器并检查/安装依赖 |
运行环境(重要:跨端兼容)
不要硬编码任何本机绝对路径。 先运行探测脚本确定解释器:
python scripts/setup_env.py # 探测解释器 + 报告缺失依赖
python scripts/setup_env.py --install # 自动安装缺失依赖
该脚本会按优先级探测:环境内 venv → python3/python → 系统 Python,并在 Linux/macOS/Windows 三平台适配。返回可直接使用的解释器路径。
各端能力差异(必须如实告知用户):
| 环境 | 脚本可用性 | 说明 |
|---|---|---|
| 桌面端本机 | ✅ 全部可用 | 依赖已就绪 |
| 移动端「连接电脑」 | ✅ 全部可用 | 实际在电脑端执行,等同桌面端 |
| 移动端「云端工作」 | ⚠️ 部分可用 | 云端沙箱无预装依赖,需先跑 --install;网络受限时安装失败 |
降级策略:若 Python 不可用或依赖装不上,不要中断分析。改为直接输出 Markdown 报告与练习卷正文,由用户在电脑端打开工作区后运行脚本补齐 Word/PDF/Excel 产物。在报告中说明「因环境限制未生成二进制文件,分析内容完整」。
分析流程本身(S1–S8 全部判断与内容)不依赖任何脚本,脚本只用于生成产物与验算。验算不可用时,改为逐步手算复核并在报告中标注「本结论为手工验算」。