申论批改技能
自动完成申论主观题(含大作文)的识别、错别字修正、评分与报告输出。
何时使用
出现以下任一情形即触发:
- 用户上传题目文件 + 答案文件,并要求"批改 / 打分 / 阅卷 / 批阅 / 评分"。
- 题型覆盖:概括分析题、对策建议题、综合分析题、应用文写作题、大作文。
- 题目文件格式:
docx/pdf;答案文件格式:docx/txt/ 图片(jpg、jpeg、png、bmp、gif、webp)。
工作流程
按步骤顺序执行,无需向用户解释流程,也无需在动手前反问文件格式。
步骤 0:依赖初始化(首次/缺失时)
运行技能自带安装器,从国内镜像源(清华 → 中科大 → PyPI 官方兜底)预装/补齐运行所需依赖,确保环境就绪且安装稳定快速:
python scripts/bootstrap.py # 核心依赖(pypdf / python-docx / defusedxml / pillow),快速
python scripts/bootstrap.py --ocr # 额外安装 cnocr(离线 OCR 引擎,体积较大,含深度学习框架)
python scripts/bootstrap.py --check # 仅检查缺失项,不安装
- 安装器先自检已装依赖、仅装缺失项;镜像失败自动切换下一个,全程不污染用户全局环境(依赖装入受管 Python 的隔离 site-packages)。
- 运行时若仍缺
pypdf,extract_text.py会自动尝试从镜像源安装,无需手动干预(仅当全部镜像失败且无网络时,pdf 提取与可选离线 OCR 不可用;docx / txt 与 Read 工具多模态识别不受影响)。
步骤 1:识别输入文件
依据文件名判定:
- 题目 →
试题/真题/题目/套卷/题 - 答案 →
答案/答题卡
若用户未明确哪份是题目、哪份是答案,依据文件名、内容(题目含"材料""要求""给定资料";答案多为手写图片或纯作答文本)自行判断。
> 边界情况处理:
> - 多图 / 多页答案:若答案为多张图片(如 答案1.jpg、答案2.jpg)或多页扫描件,逐张用 Read 读取并拼接为一份连续答案正文,拼接处用 (接上页) 标注。
> - 题目与答案同名 / 无法区分:以内容判定(题目必有"材料/要求/给定资料";答案多为纯作答或手写体),必要时向用户一次性确认,不要反复追问。
> - 一份文件含多题:按题干"第 X 题"拆分,逐题独立评分。
步骤 2:提取文本
运行脚本 scripts/extract_text.py:
python scripts/extract_text.py <文件路径>
docx/txt:程序化提取纯文本(docx 已处理段落、页眉页脚、表格与文本框内文字)。pdf:依赖pypdf;缺失时脚本会提示python -m pip install pypdf后再执行。- 图片答案:默认改用 Read 工具(多模态能力)直接读取图片,识别出手写内容后作为答案正文继续流程;绝不可静默当作空文本处理。
- 可选离线 OCR:若已执行
python scripts/bootstrap.py --ocr安装cnocr,可运行python scripts/extract_text.py <图片路径> --ocr直接得到识别文本(不依赖 Read 工具),多张图片逐张识别后拼接。离线 OCR 对印刷体更稳,对手写体仍建议以 Read 工具识别为准。 - 识别置信度提醒:图片为手写体,Read 识别可能误认字形(详见
references/typo_guide.md的 A/B 类边界)。识别完成后,将识别结果回显给用户确认,或在「答案转写」中对把握不高的字以括号标注(疑似:X),避免把识别错误当成考生真实笔误扣分。 - 统计准确的字数(含标点符号),并反馈到最终的「批改报告.md」中。
步骤 3:错别字修正(仅修正识别误差,不替考生改字)
对答案(尤其手写识别结果)修正识别误差(手写潦草 / OCR 误识,机器认错字,考生本意清晰),不替考生改本人真实笔误:
- 按形近排查;专有名词(政策术语、地名、品牌、产业词、机构名)一律以题目/材料原词还原。
- 修正处在「答案转写」中以括号标注,如:
尾牙(魔芋)。 - 考生自己写错的字保留原样,由「表述准确性」维度据实扣分,不可擅自改正以免掩盖错误、抬高得分。
- 可参考
references/typo_guide.md的常见形近/音近错词与规范词对照。
步骤 4:判定题型与评分框架
先读题干"要求"确定题型,再选评分框架:
小题(概括/分析/对策,通常 10–20 分)——四维度通用框架:
| 维度 | 建议权重 | 说明 |
|---|---|---|
| 要点完整性 | 40% | 材料要点覆盖数 |
| 表述准确性 | 25% | 关键词、错字、语义 |
| 条理与结构 | 20% | 分条、逻辑 |
| 字数与书写 | 15% | 是否达字数下限、字迹 |
大作文(通常 40 分)——五维度框架: 立意准确(25%) / 结构完整(20%) / 论证充分(25%) / 语言规范(20%) / 字迹书写(10%)。
分档(按满分比例): 一档 80–100% / 二档 60–79% / 三档 40–59% / 四档 20–39% / 五档 0–19%。
大作文五维度分档锚点(据实比对,避免不同次批改标准漂移):
| 维度 | 一档(高分特征) | 三档(中等特征) | 五档(缺失特征) |
|---|---|---|---|
| 立意准确(25%) | 紧扣主题,观点鲜明,准确契合材料主旨与出题意图 | 基本切题但片面/偏浅,个别表述跑偏 | 完全偏题或通篇抄材料,无独立观点 |
| 结构完整(20%) | 首尾呼应,分段清晰,起承转合完整 | 有结构但过渡生硬、段落失衡 | 无层次,一段到底或散乱堆砌 |
| 论证充分(25%) | 论据源自材料,分析深入,多角度,有说服力 | 有论据但分析浅、单一角度 | 无论证,堆材料或空喊口号 |
| 语言规范(20%) | 书面语规范,流畅准确,无语病错字 | 基本通顺,少量语病/错字 | 语病多、口语化严重、错字多 |
| 字迹书写(10%) | 工整清晰,易辨认 | 尚可,偶有潦草 | 难以辨认 |
常见满分整数分配映射(避免每次手算;非整数已四舍五入并微调使总和=满分):
| 满分 | 要点完整性 40% | 表述准确性 25% | 条理结构 20% | 字数书写 15% |
|---|---|---|---|---|
| 10 | 4 | 3 | 2 | 1 |
| 15 | 6 | 4 | 3 | 2 |
| 20 | 8 | 5 | 4 | 3 |
| 40(大作文五维) | 立意 10 / 结构 8 / 论证 10 / 语言 8 / 字迹 4 | — | — | — |
> 若遇其他满分,按同比例四舍五入后微调「表述准确性」或「字数书写」一档,使四项(或五维)分值之和恰好等于满分,并在评分细则中注明取整后分值。
步骤 5:批改与评分
- 通读材料,列出材料给出的所有标准要点(通常 5–7 层)。
- 逐条比对答案覆盖情况,标记 ✅ 答到 / ⚠️ 部分 / ❌ 缺失。
- 按框架打分,给出总分与档位,并写明每条扣分理由。
- 务必检查核心要点是否被遗漏。
- 在把握材料要点的基础上,用规范的语言进行表述。可以对材料中的口语化表达进行规范转化,可以对分散的要点进行归纳合并,但不能改变材料原意。
- 大作文应当优先采用材料中的论据、观点。大作文应当语言流畅,立意深刻,条理清晰。
步骤 6:输出结果
- 评分卡(visualizer):总分 + 档位 + 四/五维度得分 + 要点覆盖图(绿色=已答,红色=缺失)。先调用
read_me(modules: chart)再show_widget。
- 数据形状(务必每次一致):score:总分;full:满分;tier:档位文字。dimensions:数组,每项{name, full, got}(小题 4 项 / 大作文 5 项)。coverage:{total: 材料层数, hit: 已答层数, items: [{name, status: ✅/⚠️/❌}]}。- 最小示例(覆盖图 SVG,置于
show_widget的widget_code):
svg <svg viewBox="0 0 680 120" xmlns="http://www.w3.org/2000/svg"> <rect x="20" y="20" width="130" height="40" rx="6" fill="#2e7d32"/> <text x="85" y="45" fill="#ffffff" font-size="16" text-anchor="middle">要点1 已答</text> <rect x="170" y="20" width="130" height="40" rx="6" fill="#c62828"/> <text x="235" y="45" fill="#ffffff" font-size="16" text-anchor="middle">要点4 缺失</text> </svg>
> 注:配色随 IDE 主题调整;浅色主题用深字深底、避免纯黑底。
- 批改报告:复制
assets/report_template.md为工作区批改报告.md,填入:基本信息、答案转写、评分细则、分档参考、要点对照表、参考作答(尽量写满字数上限)并且高亮参考作答中的规范词、改进建议。 - 其中「改进建议—答题能力评价」应对涉及的答题能力逐项评价(不涉及的可不列)。五大能力的完整定义与评价标准统一见
references/abilities.md,本报告与report_template.md均引用该文件,勿在此重复展开。 - 用
present_files同时呈现批改报告.md、题目与答案原始文件。
工作约定(务必遵守)
- 用户偏好直接批阅、结果导向:不要先解释流程、不要反问格式、不要寒暄铺垫,上传即做。
- 输出沿用固定格式(评分卡 + 批改报告.md),保持结构化与表格呈现。
- 若材料/答案识别不清导致无法批改,仅在必要时一次性说明卡点,不要反复确认。
资源
scripts/extract_text.py— docx / pdf / txt 文本提取入口(图片答案默认走 Read 工具多模态识别;--ocr可走 cnocr 离线识别,见步骤 2)。scripts/bootstrap.py— 依赖安装器(国内镜像加速):预装/补齐运行所需依赖,含核心依赖与可选 cnocr。运行时自动安装亦复用此脚本。references/typo_guide.md— 错别字识别与修正指南(高频错词、规范词辨析、流程)。references/abilities.md— 申论五大答题能力权威定义(阅卷评价唯一来源)。assets/report_template.md— 批改报告 Markdown 模板。