# Problem Doc Model Selector

> 解析赛题PDF/Word，抽取任务与数据条件并给出模型选型与验证路线。Invoke when用户提供赛题文档或题目文本，需要确定采用何模型/方法。

- Skill: `xzwwwwww/problem-doc-model-selector` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add xzwwwwww/problem-doc-model-selector`
- Raw SKILL.md: https://api.skillmd.com/api/skills/xzwwwwww/problem-doc-model-selector/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: xzwwwwww (https://skillmd.com/u/xzwwwwww)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/xzwwwwww/problem-doc-model-selector

---


# 赛题文档自动解析与模型选型

## 目标
- 输入赛题 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` 执行一键流程，避免“解析完成但未生成正文”的断档。

## 工作流程
1. 文档读取
   - PDF：优先 PyMuPDF，否则 pdfplumber；保留图表标题与小节编号。
   - Word：python-docx；保留段落与表格结构。
   - 清理：去页眉页脚、合并断行、标准化单位（cm⁻¹、% 等）。
2. 题意解析
   - 规则抽取“问题1/问题2/问题3…”与“附件说明/单位/关键参数”。
   - 识别任务类型：预测/分类/评价/优化/聚类/仿真/机理建模。
   - 提取约束与边界：入射角、层次关系、单位口径、可行域。
3. 数据条件解析
   - 附件文件名与字段：列名、单位、样本量、范围、缺失值比例。
   - 结果口径：需要反射率、厚度、误差、排名或资源分配等。
4. 模型选型引擎（规则优先，结合提示式决策）
   - 若模型路线不明显、题目包含多问组合、或需要给出基线/改进/验证体系，读取 `modeling-paper-rubric-and-model-selector/references/model_library.md` 作为方法库。
   - 预测类：移动平均/指数平滑/回归/ARIMA → 树模型/LSTM。
   - 分类类：逻辑回归/朴素贝叶斯 → 随机森林/梯度提升，不平衡用代价敏感。
   - 评价与排序：规范化+加权和 → 熵权/CRITIC/AHP/TOPSIS/VIKOR。
   - 优化与调度：线性/整数规划 → 多目标与启发式（遗传/退火）。
   - 聚类：K-means/层次 → GMM/DBSCAN（噪声与非凸形状）。
   - 机理/仿真：微分/差分/系统动力学；与数据驱动对照。
   - 物理/工程建模：根据领域知识建立方程（如热传导、流体力学、电路分析、光学传播），利用最小二乘或优化算法进行参数反演与模型修正。
5. 验证与鲁棒性
   - 指标：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、改进遗传算法、混合模型）。
  - 验证：指标计算、残差分析、交叉验证、灵敏度分析。

## 防跑偏检查
- 每问必须给出可量化输出与可验证指标。
- 符号与单位统一，指标口径一致。
- 至少一个基线对照与改进证据（提升或更合理）。
- 结论与图表逐问对应，不“做很多但没回答问题”。

## 何时不要用本技能
- 已经明确只需实现某个具体算法或改动单一代码片段时（直接实现更快）。

