# Paper Analyzer

> 学术论文结构化阅读、拆解与分析工具。基于12个阅读要素（研究背景、研究问题、研究结论、文献综合、文献批评、研究方法、理论视角与理论框架、一致性发现、不一致性发现、研究贡献、研究不足、未来研究展望）对论文进行深度拆解，结果保存为Excel文件。当用户提到需要针对论文/文献/paper进行拆解、解析、分析、阅读、梳理，并上传或告知一篇或多篇论文的本地文件路径（PDF、Word等）时触发此skill。

- Skill: `whyzsm/paper-analyzer` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add whyzsm/paper-analyzer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/whyzsm/paper-analyzer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: whyzsm (https://skillmd.com/u/whyzsm)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/whyzsm/paper-analyzer

---


# 论文结构化拆解分析

基于12个阅读要素对学术论文进行结构化拆解，结果保存为Excel文件存储于论文所在文件夹中。

## 工作流程

### 1. 读取论文

- 使用 Read 工具读取用户提供的论文文件（支持 PDF、Word 等格式）
- 对于 PDF 文件，如果 Read 工具无法直接读取，使用 `pdftotext` 命令提取文本
- 对于 PDF 文件，如果页数较多，先读取前几页了解结构，再分批读取全文
- 确保完整阅读论文的各个部分：摘要、引言、文献综述、方法、结果、讨论、结论
- **记录论文所在的文件夹路径**，用于后续保存Excel文件

### 2. 按12要素提取信息

阅读论文后，逐一提取12个阅读要素。要素定义详见 [references/reading_elements.md](references/reading_elements.md)。

提取要点：
- **研究背景**: 从引言开头提取宏观背景，区分实践背景、理论背景、政策背景
- **研究问题**: 识别核心研究问题，判断其类型（what/why/how/should）
- **研究结论**: 从结论和讨论部分提取对研究问题的直接回答
- **文献综合**: 从文献综述部分梳理作者如何分类整理已有研究
- **文献批评**: 提取作者对已有研究的评价，重点关注研究gap的表述
- **研究方法**: 从方法论部分提取具体研究方法和研究设计
- **理论视角与理论框架**: 识别论文采用的理论基础和分析框架
- **一致性发现**: 从讨论部分提取与已有研究一致的发现
- **不一致性发现**: 从讨论部分提取与已有研究不一致的发现
- **研究贡献**: 提取作者自述的研究贡献（新方法/新材料/新理论/新观点/新概念）
- **研究不足**: 从结论或讨论的局限性部分提取
- **未来研究展望**: 提取作者对后续研究的建议

如论文中某要素未明确提及，标注"论文未明确提及"并尝试基于论文内容进行合理推断，推断内容用括号标注。

### 3. 保存为Excel文件

分析完成后，将结果保存为Excel文件，存放于**被分析论文所在的文件夹**中。

使用 [scripts/export_excel.py](scripts/export_excel.py) 脚本生成Excel。先用 Python 将分析数据写入临时JSON文件，再调用脚本。

#### 单篇论文

生成文件名：`论文拆解_<论文简称>.xlsx`，包含一个工作表。

构造JSON数据并调用脚本：
```bash
python3 <skill_path>/scripts/export_excel.py --mode single --output "<论文所在文件夹>/论文拆解_<论文简称>.xlsx" --json '<json_string>'
```

JSON结构：
```json
{
  "title": "论文标题",
  "author": "作者",
  "source": "期刊/来源",
  "year": "年份",
  "elements": {
    "研究背景": "内容...",
    "研究问题": "内容...",
    "研究结论": "内容...",
    "文献综合": "内容...",
    "文献批评": "内容...",
    "研究方法": "内容...",
    "理论视角与理论框架": "内容...",
    "一致性发现": "内容...",
    "不一致性发现": "内容...",
    "研究贡献": "内容...",
    "研究不足": "内容...",
    "未来研究展望": "内容..."
  }
}
```

#### 多篇论文

生成文件名：`论文拆解汇总_<N>篇.xlsx`，包含每篇论文的独立工作表 + 最后一个"横向对比汇总"工作表。

```bash
python3 <skill_path>/scripts/export_excel.py --mode multi --output "<论文所在文件夹>/论文拆解汇总_<N>篇.xlsx" --json '<json_string>'
```

JSON结构：
```json
{
  "papers": [
    { "title": "...", "author": "...", "source": "...", "year": "...", "elements": { ... } },
    ...
  ],
  "summary": {
    "paper_labels": ["论文A简称", "论文B简称", ...],
    "elements": {
      "研究背景": ["论文A精简版", "论文B精简版", ...],
      ...12个要素各一个数组...
    }
  }
}
```

**重要**：由于JSON字符串可能很长，使用Python将JSON写入临时文件，再用 `--json "$(cat /tmp/paper_data.json)"` 传入，或直接在Python中调用脚本。推荐方式：

```python
import json, subprocess
data = { ... }  # 构造好的数据
with open("/tmp/_paper_analysis.json", "w") as f:
    json.dump(data, f, ensure_ascii=False)
subprocess.run(["python3", "<skill_path>/scripts/export_excel.py",
    "--mode", "multi",
    "--output", "<输出路径>",
    "--json", json.dumps(data, ensure_ascii=False)])
```

### 4. 输出到对话

在保存Excel后，同时在对话中以markdown表格简要呈现分析结果，并告知用户Excel文件的保存路径。

### 5. 内容要求

- 使用中文输出（除非论文为英文且用户要求英文输出）
- 每个要素的内容应简明扼要但信息充分，单篇表格中每个要素2-5句话
- 汇总对比表中每个单元格压缩为1-2句核心要点
- 忠于论文原文，避免过度解读；推断内容明确标注
- 在研究问题要素中标注问题类型（what/why/how/should）

