Skip to content

VelorisLabs/Paper-Auto-Summarize

Repository files navigation

📚 论文身份卡自动提取 & 权重自适应评分系统

一个基于 LLM 的学术论文批量智能分析工具,自动从 PDF 论文中提取结构化信息,生成"论文身份卡",并提供多场景权重自适应评分系统,帮助研究者快速掌握领域研究热点、按需求筛选精读文献。

🎯 核心能力

能力 说明
📄 自动提取 从PDF中自动提取论文元数据、5维评分
🎯 场景化推荐 按应用导向/理论突破/教学应用等场景推荐论文
📊 多维评分 学术严谨度、创新程度、实用价值、影响范围、可读性
🔄 权重自适应 同一论文在不同场景下的评分动态调整
📈 关联分析 发现论文间的相似性和聚类关系(后续功能)
🎨 可视化 生成排序表、对比表、分析报告(后续功能)

🎯 适用场景

  • 备考复试:快速了解目标专业的研究热点和核心议题
  • 文献综述:批量处理大量论文,提取关键信息建立文献库
  • 研究选题:发现领域趋势,识别研究空白
  • 日常阅读:建立个人论文知识库,高效管理文献
  • 场景化筛选:根据不同需求(应用导向/理论研究/教学应用)快速定位合适论文

✨ 核心功能模块

模块 状态 说明
P0 基础提取 ✅ 完成 LLM智能分析 + 5维评分 + 结构化输出
P1.1 权重自适应 ✅ 完成 3个场景(应用导向型/理论突破型/综合均衡型)权重评分
P1.2 数据清洁 ✅ 完成 编号优化、字段结构调整、领域标签重设
P2 关联分析 ⏳ 进行中 论文聚类、相似度计算、话题标注、纵向对比
P3 可视化 ⏳ 待启动 静态报告 / 交互式Web应用

📁 项目结构

MyPaperAutoSummarize/
├── 📜 Core Scripts
│   ├── auto_runner.py                      # P0 主处理脚本
│   ├── scenario_rescoring.py               # P1.1 权重重算脚本
│   ├── prompt_paper_extraction.md          # LLM Prompt 模板
│   ├── theme_buckets.md                    # 主题桶配置
│   └── scenario_weights.json               # P1.1 权重场景配置
│
├── 📁 Input
│   └── 00_inbox_pdfs/                      # PDF输入目录
│       ├── 教育数智化与智能治理/
│       └── ... (其他主题文件夹)
│
├── 📁 Output
│   ├── 01_extracted_json/                  # JSON 论文身份卡
│   │   └── 教育数智化与智能治理/
│   │       └── 01_论文.json
│   │
│   └── 02_summary_csv/                     # CSV 汇总表
│       ├── _all_papers.csv                 # P0+P1.2:更新编号、表头、字段结构
│       ├── 教育数智化与智能治理.csv        # 分主题表(同上更新)
│       ├── _all_papers_多场景对比表.csv    # P1.1:对比表(3个场景)
│       ├── scenario_rankings/              # P1.1:排序表
│       │   ├── 排序表_应用导向型.csv       # 应用导向排序
│       │   ├── 排序表_理论突破型.csv       # 理论突破排序
│       │   └── 排序表_综合均衡型.csv       # 综合均衡排序
│       ├── _similarity_matrix.csv          # P2:论文相似度矩阵(待生成)
│       ├── _clustering_results.csv         # P2:聚类结果(待生成)
│       └── analysis_charts/                # P2/P3:分析图表(待生成)
│
├── 📋 Documentation
│   ├── README.md                           # 项目概览(本文件)
│   ├── scenario_rescoring.py工作原理详细指南.md
│   └── Feedback and suggestions/
│       └── EXECUTION_PLAN.md               # 下一步执行计划(P1.2+)
│
└── 📚 Auxiliary
    ├── error_log.txt                       # 错误日志
    └── ... (其他配置文件)

🚀 快速开始

1. 环境准备

# 安装依赖
pip install openai pymupdf

# 设置 API Key(以 DeepSeek 为例)
# Windows CMD
set DEEPSEEK_API_KEY=your_api_key_here

# Windows PowerShell
$env:DEEPSEEK_API_KEY="your_api_key_here"

# Linux / macOS
export DEEPSEEK_API_KEY="your_api_key_here"

2. 配置主题桶

编辑 theme_buckets.md,定义你的研究主题分类:

## 你的主题1
- 次级标签A
- 次级标签B

## 你的主题2
- 次级标签C
- 次级标签D

3. 运行脚本

python auto_runner.py

4. 按提示操作

============================================================
  📚 论文身份卡自动提取工具 v2.0
============================================================

📁 检查配置文件...
   ✅ Prompt模板: prompt_paper_extraction.md
   ✅ 主题桶配置: theme_buckets.md
   ✅ PDF目录: 00_inbox_pdfs

📂 同步文件夹结构...
   从主题桶配置中解析到 10 个主题
   ✅ 新建: 教育政策与行政执行
   ⏩ 已存在: 9 个文件夹(跳过)
   同步完成

🔑 测试API连接...
   ✅ API连接成功

📊 扫描PDF文件...

┌──────┬──────────────────────────────────┬────────┬────────┬────────┐
│ 序号 │           文件夹名称             │ PDF总数│ 已处理 │ 待处理 │
├──────┼──────────────────────────────────┼────────┼────────┼────────┤
│ [1]  │ 教育数智化与智能治理             │   40   │   30   │   10   │
│ [2]  │ 教育治理与治理体系现代化         │   25   │    0   │   25   │
├──────┼──────────────────────────────────┼────────┼────────┼────────┤
│ 合计 │                                  │   65   │   30   │   35   │
└──────┴──────────────────────────────────┴────────┴────────┴────────┘

请选择操作模式:
  [A] 全部执行 - 处理所有待处理的PDF(跳过已处理)
  [R] 全部重跑 - 重新处理所有PDF(覆盖已有结果)
  [S] 选择执行 - 选择特定文件夹处理
  [Q] 退出

📋 输出格式

JSON 身份卡示例

{
  "title": "区块链赋能区域教育治理:逻辑、框架与路径",
  "authors": "郑旭东, 狄璇, 岳婷燕",
  "year": 2022,
  "venue": "现代远程教育研究",
  "doi": "10.3969/j.issn.1009-5195.2022.01.004",
  "keywords": ["区域教育治理", "教育数据治理", "区块链技术"],
  "domain_tags": ["教育数智化与智能治理", "区块链", "教育治理体系"],
  "paper_type": "理论研究",
  "problem": "区域教育治理存在理念缺失、结构失衡等问题",
  "research_object": "区域(省域)教育治理体系",
  "methodology": "文献分析、逻辑推演与框架构建",
  "conclusion": "区块链技术可通过四层框架实现数据驱动的教育善治",
  "contribution": "构建了数据源层-平台层-组织层-场景层的四层实践框架",
  "abstract": "区域教育治理现代化是国家教育现代化的重要组成部分...",
  "source_folder": "教育数智化与智能治理"
}

CSV 字段说明

字段 说明
标题 论文标题
作者 前三位作者(逗号分隔)
年份 发表年份
期刊 发表刊物
DOI 数字对象标识符
关键词 作者标注的关键词
领域标签 主题桶 + 次级标签
论文类型 综述/实证研究/理论研究/案例研究/政策分析/方法研究
研究问题 论文要解决的核心问题
研究对象 研究的对象是谁/什么
研究方法 采用的研究方法
核心结论 主要发现(1-2句话)
主要贡献 创新点(1句话)
来源文件夹 PDF所在的主题文件夹

📝 PDF 命名规范

建议使用数字前缀命名,确保处理顺序与CSV行顺序一致:

01_区块链赋能教育治理_郑旭东.pdf
02_人工智能赋能教育评价_王某某.pdf
03_大数据驱动教育决策_李某某.pdf
...
09_智慧教育平台建设_张某某.pdf
10_教育数字化转型_陈某某.pdf

⚠️ 注意:使用两位数字前缀(01, 02, ..., 09, 10),避免排序问题

⚙️ 配置说明

切换 API 服务商

编辑 auto_runner.py 中的配置区域:

# DeepSeek(默认)
API_KEY = os.environ.get("DEEPSEEK_API_KEY", "")
BASE_URL = "https://api.deepseek.com"
MODEL_NAME = "deepseek-chat"

# OpenAI
# API_KEY = os.environ.get("OPENAI_API_KEY", "")
# BASE_URL = "https://api.openai.com/v1"
# MODEL_NAME = "gpt-4o"

# 其他兼容 OpenAI 接口的服务商
# BASE_URL = "https://your-api-endpoint.com/v1"

调整请求参数

REQUEST_TIMEOUT = 180.0   # API超时时间(秒)
REQUEST_INTERVAL = 5      # 请求间隔(秒),避免频率限制
MAX_PDF_CHARS = 30000     # PDF文本最大字符数,超出截断

🔧 常见问题

Q: API 连接失败?

  1. 检查环境变量是否正确设置
  2. 检查 API Key 是否有效
  3. 检查网络连接是否正常

Q: JSON 解析失败?

可能原因:

  • 模型返回格式不规范
  • PDF 内容提取不完整

解决方法:

  • 检查 error_log.txt 查看具体错误
  • 重新运行,使用覆盖模式处理失败的文件

Q: 中文路径报错?

Python 3.8+ 对中文路径支持良好,如遇问题:

  • 确保使用 UTF-8 编码
  • 避免路径中包含特殊字符

Q: 如何处理新增的论文?

直接将新 PDF 放入对应主题文件夹,重新运行脚本选择 [A] 全部执行,已处理的文件会自动跳过。

🎬 权重自适应评分系统(P1.1)

三个场景的权重配置

1️⃣ 应用导向型

权重配置:practicality 40% | rigor 25% | innovation 15% | impact 15% | readability 5%

适用场景:找可直接指导实践的论文

  • 学校想引入AI辅助教学,需要找有成熟案例的论文
  • 企业想优化流程,需要找有具体工具/方法的研究
  • 教师设计新课程,需要找可直接借鉴的教学方案

2️⃣ 理论突破型

权重配置:innovation 40% | impact 20% | rigor 25% | practicality 10% | readability 5%

适用场景:找有创新思想的学术研究基础

  • 博士生需要找学位论文的理论基础
  • 新技术领域研究员想了解最前沿的思想框架
  • 学科评估时需要找代表性的创新论文

3️⃣ 综合均衡型(P0默认)

权重配置:rigor 30% | innovation 25% | practicality 25% | impact 15% | readability 5%

适用场景:全面了解领域研究现状

  • 教学设计师为新课程找综合支撑材料
  • 学科主任想了解本领域当前整体研究水平
  • 综述论文作者选择代表性文献

使用方法

# 确保P0生成的CSV已就位,然后运行
uv run scenario_rescoring.py

# 输出文件:
# - _all_papers_多场景对比表.csv      (对比表:查看同一论文在3个场景下的评分差异)
# - 排序表_应用导向型.csv             (按应用导向排序,TOP 10高亮)
# - 排序表_理论突破型.csv             (按理论突破排序,TOP 10高亮)
# - 排序表_综合均衡型.csv             (按综合均衡排序,TOP 10高亮)

扩展新场景

编辑 scenario_weights.json,添加新场景定义,然后重新运行 scenario_rescoring.py,自动生成对应的排序表。

详见:scenario_rescoring.py工作原理详细指南.md


📊 后续分析建议

拿到 CSV 汇总表后,可以进行以下分析:

分析类型 方法
场景化筛选 打开 排序表_应用导向型.csv / 排序表_理论突破型.csv 找适合的论文
多场景对比 打开 _all_papers_多场景对比表.csv 观察同一论文在不同场景的评分变化
关键词词频 统计 关键词 列,发现高频主题
年份趋势 年份 分组,观察主题热度变化
方法分布 统计 论文类型,了解领域研究范式
作者网络 分析 作者 列,识别核心研究者
精读筛选 论文类型=综述 筛选,快速建立领域认知

📄 License

MIT License

🤝 致谢

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages