赛题文档自动解析与模型选型
目标
- 输入赛题 PDF/Word 文档或题面文本,自动抽取“每一问”的任务类型、数据条件与约束,并输出贴题的模型选型与验证路线。
- 生成评分友好型交付:一页纸题意对齐、论文大纲、评分点对齐表、模型路线(基线/改进/验证/风险)。
自动化与静默执行
- 禁止反问: 解析完成后,不要问用户“是否满意”、“是否进行下一步”。
- 自动流转: 解析只是第一步。若用户意图是“做题/写论文”,在输出 A/B/C/D 后,立即提示用户:“题意解析已完成,正在自动转入数据清洗与论文生成流程...”,并主动调用
paper-workflow-orchestrator或后续技能。 - 拒绝偷懒: 必须输出完整的 A/B/C/D 四部分,不得省略。
适用时机
- 用户提供赛题 PDF/Word 或题面文本,需要快速判断各问应采用的模型/方法并制定实验验证计划时。
- 对题意理解不确定、模型路线拿不准或需要论文结构与评分点对齐建议时。
输入
- 赛题文档路径或题面全文(支持 PDF、DOCX、TXT)。
- 可选:附件数据文件路径、你希望强调的亮点或限制。
输出
- A 一页纸题意对齐:逐问给出输入/输出、评价指标、关键约束、可验证方式。
- B 论文大纲:摘要、问题重述、假设、符号、数据说明、模型、求解、结果、检验、结论、不足、参考。
- C 评分点对齐表:评分点 → 证据形式(图表/实验/检验)→ 论文位置。
- D 模型选型与路线:每问的任务类型、最小可用基线、改进路线、验证计划、风险与备选。
- E 数据需求配置 (可选):若发现题目需要外部数据(如人口、气象、经济数据),自动生成或更新根目录下的
data_requirements.json,以便authoritative-data-harvester自动获取。
脚本入口
scripts/parse_problem.py- 何时用:项目
problem_files/已放入赛题 PDF/DOCX/TXT/附件,希望先自动生成赛题解析和问题映射。 - 做什么:读取题面文本,抽取子问题、任务类型、关键词、约束、建议指标和外部数据需求,输出
paper_output/step1/problem_analysis.md与paper_output/step1/question_map.json。 - 推荐命令:
python ~/.codex/skills/problem-doc-model-selector/scripts/parse_problem.py --project . --write-data-requirements
- 何时用:项目
目录约定(与项目全局对齐)
- 赛题与附件统一放在
problem_files/。 - 建议把本技能的四类输出归档到
paper_output/step1/(例如paper_output/step1/A_题意对齐.md等),便于后续技能引用。 - 脚本化解析输出统一放在
paper_output/step1/:problem_analysis.md与question_map.json。
前后衔接
- 后续通常先做:
data-cleaning-and-visualization(数据清洗与可视化)。 - 若要一键跑到论文草稿:直接调用
paper-workflow-orchestrator。
约束(必须遵守)
- Memory Interaction (必做):
- 开始前,检查
memoryskill.md中是否有外部文献/数据索引(如 g-sci 提供的参考文献),将其纳入模型选型依据。 - 完成解析后,必须调用
context-memory-keeper,将“核心任务类型”、“数据条件”与“模型选型结论”更新到memoryskill.md的Short-term Workbench中。这是后续产文技能获取上下文的关键。
- 开始前,检查
- 外部数据检查 (必做):
- 若解析发现题目依赖外部公开数据(如“搜集相关数据”、“附件数据不足”),必须生成
data_requirements.json并写入根目录。 - 配置内容应包含明确的
url(若已知)或manual_search提示,并将active设为true。
- 若解析发现题目依赖外部公开数据(如“搜集相关数据”、“附件数据不足”),必须生成
- 本技能输出的题意对齐与模型路线,必须能被后续写作定位引用;建议固定归档到
paper_output/step1/。 - 若用户目标是“最终论文可提交”,本技能完成后不得直接进入产文阶段,必须先保证数据口径可用:进入
data-cleaning-and-visualization或补充authoritative-data-harvester。 - 若用户不想分步跑,必须回到
paper-workflow-orchestrator执行一键流程,避免“解析完成但未生成正文”的断档。
工作流程
- 文档读取
- PDF:优先 PyMuPDF,否则 pdfplumber;保留图表标题与小节编号。
- Word:python-docx;保留段落与表格结构。
- 清理:去页眉页脚、合并断行、标准化单位(cm⁻¹、% 等)。
- 题意解析
- 规则抽取“问题1/问题2/问题3…”与“附件说明/单位/关键参数”。
- 识别任务类型:预测/分类/评价/优化/聚类/仿真/机理建模。
- 提取约束与边界:入射角、层次关系、单位口径、可行域。
- 数据条件解析
- 附件文件名与字段:列名、单位、样本量、范围、缺失值比例。
- 结果口径:需要反射率、厚度、误差、排名或资源分配等。
- 模型选型引擎(规则优先,结合提示式决策)
- 若模型路线不明显、题目包含多问组合、或需要给出基线/改进/验证体系,读取
modeling-paper-rubric-and-model-selector/references/model_library.md作为方法库。 - 预测类:移动平均/指数平滑/回归/ARIMA → 树模型/LSTM。
- 分类类:逻辑回归/朴素贝叶斯 → 随机森林/梯度提升,不平衡用代价敏感。
- 评价与排序:规范化+加权和 → 熵权/CRITIC/AHP/TOPSIS/VIKOR。
- 优化与调度:线性/整数规划 → 多目标与启发式(遗传/退火)。
- 聚类:K-means/层次 → GMM/DBSCAN(噪声与非凸形状)。
- 机理/仿真:微分/差分/系统动力学;与数据驱动对照。
- 物理/工程建模:根据领域知识建立方程(如热传导、流体力学、电路分析、光学传播),利用最小二乘或优化算法进行参数反演与模型修正。
- 若模型路线不明显、题目包含多问组合、或需要给出基线/改进/验证体系,读取
- 验证与鲁棒性
- 指标:RMSE/MAE/AUC/F1/MAPE/轮廓系数/约束满足率。
- 交叉验证/滚动回测/留出法;消融实验与敏感性分析。
- 极端/边界情景与单位口径一致性检查。
判别逻辑速查
- 出现“预测/估计未来/趋势/参数估计”→ 预测类。
- 出现“分类/是否/风险等级/识别”→ 分类类。
- 出现“综合评价/排序/权重/打分”→ 评价与排序。
- 出现“资源分配/路径/选址/成本最小/收益最大”→ 优化与调度。
- 出现“分群/画像/相似性/模式发现”→ 聚类。
- 出现“机理/仿真/动力学/微分方程”→ 机理/仿真。
- 出现“物理过程/化学反应/信号传输/力学结构”→ 物理/工程建模。
增强联动
- 完成 A/B/C/D 后,若用户目标是完整论文,调用
modeling-paper-rubric-and-model-selector复核模型路线,并要求其读取references/model_library.md。 - 若发现任务需要多角色协作或并行推进,要求后续总控读取
modeling-paper-rubric-and-model-selector/references/agent_roles.md。 - 若发现外部数据需求,生成
data_requirements.json后应触发authoritative-data-harvester,再回到数据清洗。
输出模板
- A 题意对齐:逐问输入、输出、指标、约束、验证。
- B 大纲:按评分友好顺序列出章节与小节。
- C 评分对齐:评分点与证据映射表。
- D 模型路线:任务类型/基线/改进/验证/风险与备选。
使用示例
- 输入:赛题文件路径
c:\path\to\赛题.pdf或题面文本全文。 - 行为:读取文档→抽取每问→识别任务类型与数据条件→输出 A/B/C/D 四类结果与建议模型。
- 自动建议:
- 基线:选择最简单的经典模型(如线性回归、K-means、最短路算法)。
- 改进:针对基线不足(如非线性、噪声、多目标)引入的高阶模型(如XGBoost、改进遗传算法、混合模型)。
- 验证:指标计算、残差分析、交叉验证、灵敏度分析。
防跑偏检查
- 每问必须给出可量化输出与可验证指标。
- 符号与单位统一,指标口径一致。
- 至少一个基线对照与改进证据(提升或更合理)。
- 结论与图表逐问对应,不“做很多但没回答问题”。
何时不要用本技能
- 已经明确只需实现某个具体算法或改动单一代码片段时(直接实现更快)。