PDF Processor

👤 reaperchen 📦 v2.0.0 ⭐ 4.4 ⬇️ 1.3K 下載
📄 辦公效率 免費

📖 技能介紹


name: pdf-processor description: 學術PDF處理:提取文字、判斷語言、翻譯(英文→中文)、生成200字純中文概述。使用本地Ollama模型,不消耗線上API。適用於學術論文、研究報告等PDF檔案的處理。當用戶說"處理PDF"、"翻譯論文"、"生成論文概述"時,或使用者將PDF放入論文處理目錄時使用。


PDF Processor

Overview

處理學術論文PDF的完整工作流:文字提取、語言判斷、翻譯、概述生成。使用本地Ollama模型(qwen2.5:7b),成本為0元,適合處理大量學術文獻。

核心功能: - 提取PDF全部文字(按頁分隔) - 判斷語言(中文/英文) - 提取和翻譯論文標題(英文→中文) - 英文PDF分段翻譯(每段2000字元) - 即時進度顯示(顯示當前段/總段數、百分比) - 斷點續傳(中斷後可從斷點繼續) - 生成200字純中文概述 - 自動檔案組織和清理

Quick Start

處理單個PDF

python3 scripts/process_pdf.py <pdf_path> <output_base_dir>

來源於7w4.net。

示例

# 處理英文PDF
python3 scripts/process_pdf.py \
  ~/Documents/論文處理/未處理/英文/2602.23362v1.pdf \
  ~/Documents/論文處理

# 處理中文PDF
python3 scripts/process_pdf.py \
  ~/Documents/論文處理/未處理/中文/test.pdf \
  ~/Documents/論文處理

目錄結構

PDF處理前需先建立目錄:

~/Documents/論文處理/
├── 未處理/
│   ├── 中文/
│   └── 英文/
├── 處理中/
├── 已完成/
│   ├── 原文/
│   ├── 翻譯/
│   └── 概述/
└── 索引/

詳見 directory-structure.md

Workflow

完整處理流程

1. PDF提取文字 → 儲存到"處理中/檔名_提取.txt"
2. 提取和翻譯論文標題(英文→中文)
3. 判斷語言(中文/英文)
4. 如果是英文:
   - 分段(每段2000字元)
   - 逐段翻譯(本地Ollama)
   - **顯示即時進度**(當前段/總段數 | 百分比 | 字元數)
   - **儲存進度**(處理中/檔名_progress.json)
   - 合併翻譯結果
   - **刪除進度檔案**
5. 生成概述(200字純中文,本地Ollama)
6. 儲存翻譯檔案到"已完成/翻譯/"
7. 儲存概述檔案到"已完成/概述/"(包含中英文標題)
8. 移動PDF到"已完成/原文/"
9. 刪除"處理中/提取.txt"

詳細說明見 workflow.md

分段翻譯策略

  • 分段大小: 每段最多4000字元
  • 分段邊界: 優先在段落邊界斷開(\n\n\n, \n\n, 。, !, ?)
  • 翻譯模型: 本地Ollama (qwen2.5:7b)
  • 優勢: 避免長文本處理問題,提高翻譯質量

概述生成

  • 輸入: 前5000字元(摘要和引言)
  • 輸出: 200字純中文
  • 內容: 研究背景、主要方法、核心貢獻、應用價值
  • 清理: 移除所有英文、數字、符號

Technical Details

依賴項

  • Python庫: pdfplumber, requests, re, shutil, pathlib
  • Ollama: qwen2.5:7b模型
  • Ollama服務: 本地執行在http://localhost:11434

效能特點

  • 成本: 0元(本地模型,不消耗線上API)
  • 處理時間:
  • 提取: 秒級
  • 翻譯: 每段30秒-1分鐘,總時間取決於段數
  • 概述: 秒級
  • 質量:
  • 翻譯: 學術準確性高,保持段落結構
  • 概述: 200字純中文,簡潔準確
  • v2.0新功能:
  • 即時進度顯示: 顯示當前段/總段數、百分比、字元數
  • 斷點續傳: 中斷後可從斷點繼續,自動跳過已翻譯段落
  • 進度儲存: 儲存到臨時JSON檔案,完成後自動刪除

分段示例

對於45,873字元的PDF: - 分段數: 17段 - 每段字元數: 2,000-4,000 - 總翻譯時間: 約8-17分鐘

Output Files

翻譯檔案

位置: 已完成/翻譯/檔名_翻譯.txt

格式:

# 論文翻譯

**原始檔**: 檔名.pdf
**處理時間**: YYYY-MM-DD HH:MM:SS
**翻譯模型**: 本地Ollama (qwen2.5:7b)
**分段數**: N

## 📄 翻譯內容

[翻譯內容]

概述檔案

位置: 已完成/概述/檔名_概述.txt

格式:

# 論文概述

**原始檔**: 檔名.pdf
**處理時間**: YYYY-MM-DD HH:MM:SS
**概述模型**: 本地Ollama (qwen2.5:7b)

## 📚 論文標題

**英文**: [論文英文標題]
**中文**: [論文中文標題]

## 📝 論文概述

[200字純中文概述]

Resources

scripts/

  • process_pdf.py: 完整的PDF處理指令碼(v2.0)
  • 文字提取、語言判斷、翻譯、概述生成
  • 即時進度顯示(當前段/總段數 | 百分比)
  • 斷點續傳(中斷後可從斷點繼續,自動跳過已翻譯段落)
  • 自動檔案組織和清理
  • 可獨立執行或被其他指令碼呼叫

  • generate_index.py: 索引生成指令碼

  • 生成已完成論文的索引檔案
  • 包含標題、語言、概述、處理時間
  • 支援關鍵詞搜尋

references/

  • workflow.md: 完整工作流程說明
  • 關鍵步驟說明
  • 技術依賴
  • 效能特點

  • directory-structure.md: 目錄結構和使用說明

  • 完整目錄樹
  • 資料夾用途
  • 檔案生命週期

Troubleshooting

Ollama服務未啟動

錯誤: Connection refused

解決:

# 啟動Ollama服務
ollama serve

Ollama模型未安裝

錯誤: model 'qwen2.5:7b' not found

解決:

# 安裝模型
ollama pull qwen2.5:7b

# 檢視已安裝模型
ollama list

PDF路徑錯誤

錯誤: PDF檔案不存在

檢查: - 確認PDF路徑正確 - 確認輸出目錄存在 - 確認有讀寫許可權

翻譯質量不佳

可能原因: - 分段過大(超過4000字元) - 溫度設定過高(當前0.3)

調整: - 修改split_text()函式的max_length引數 - 修改translate_segment()temperature選項

Notes

  • 成本優勢: 使用本地Ollama,完全避免線上API費用
  • 質量平衡: 分段翻譯在質量和速度之間取得平衡
  • 自動化: 檔案自動組織和清理,無需手動管理
  • v2.0改進:
  • 進度顯示: 即時顯示翻譯進度(當前段/總段數 | 百分比 | 字元數)
  • 斷點續傳: 中斷後可從斷點繼續,自動跳過已翻譯段落,節省時間
  • 進度檔案: 儲存到處理中/檔名_progress.json,完成後自動刪除
  • 序列翻譯: 穩定可靠,適合各類機器效能
  • 適用範圍: 適用於學術論文、研究報告、技術文件等PDF檔案

🤖 AI 評測

這個工具能很好地完成論文翻譯和概述生成,使用本地模型完全不花錢,非常適合需要處理大量文獻的學者。進度顯示和斷點續傳功能很實用,處理大文件時不用擔心中斷。不過初次配置需要安裝配置環境,對非技術使用者稍有門檻。總體質量可靠,能有效解決學術論文處理的核心需求。

📊 多維度評分

適應性3.9
規範性4.1
有效性4.6
可靠性4.3
可信度5

📁 包含檔案 (7 個)

📄 SKILL.md 6.5 KB
📄 _meta.json 132 B
📄 package.json 960 B
📄 references/directory-structure.md 3 KB
📄 references/workflow.md 2.4 KB
📄 scripts/generate_index.py 4.8 KB
📄 scripts/process_pdf.py 20.9 KB