处理5个文件

This commit is contained in:
gavin7758521 committed 2025-06-19 17:03:38 +08:00
1 parent 0edfceda35
commit abaa27d505
9 files changed
+1581 -176

No files matched your search

+110 -1
View File
@@ -106,4 +106,113 @@ XingCe/ # 行测
```
## 特殊指令
当用户说"分析这个文件"、"总结一下"、"提取重点"等类似指令时,自动按照上述分类框架进行内容整理和归纳,并按照文件组织结构创建相应的Markdown文件。
当用户说"分析这个文件"、"总结一下"、"提取重点"等类似指令时,自动按照上述分类框架进行内容整理和归纳,并按照文件组织结构创建相应的Markdown文件。
## PDF OCR处理规则
### 技术工具配置
当需要处理PDF文件时,使用以下OCR工具链:
#### 1. 依赖库安装
```python
# 核心OCR库
pip install PyMuPDF # 推荐:简单高效,直接提取PDF文本
# 或者使用pytesseract方案(适用于图片型PDF)
pip install pytesseract pdf2image pillow
```
#### 2. Tesseract OCR引擎安装(Windows)
```bash
# 使用winget安装(推荐)
winget install UB-Mannheim.TesseractOCR
# 或手动下载安装:https://github.com/UB-Mannheim/tesseract/wiki
```
### PDF处理标准流程
#### 1. 文本提取脚本(推荐方案)
创建`pdf_ocr_processor.py`脚本,使用PyMuPDF:
```python
import fitz # PyMuPDF
import os
def extract_text_from_pdf(pdf_path, max_pages=20):
"""从PDF提取文本,限制页数防止处理时间过长"""
try:
doc = fitz.open(pdf_path)
text = ""
for page_num in range(min(len(doc), max_pages)):
page = doc[page_num]
text += page.get_text()
doc.close()
return text
except Exception as e:
print(f"处理文件 {pdf_path} 时出错: {e}")
return None
def process_pdf_files(input_dir="doc/", output_dir="extracted_texts/"):
"""批量处理PDF文件"""
if not os.path.exists(output_dir):
os.makedirs(output_dir)
for filename in os.listdir(input_dir):
if filename.lower().endswith('.pdf'):
pdf_path = os.path.join(input_dir, filename)
text = extract_text_from_pdf(pdf_path)
if text:
output_filename = f"{os.path.splitext(filename)[0]}_extracted.txt"
output_path = os.path.join(output_dir, output_filename)
with open(output_path, 'w', encoding='utf-8') as f:
f.write(text)
print(f"成功处理: {filename} -> {output_filename}")
```
#### 2. 文件处理要求
- **页数限制**:每个PDF最多处理前20页,防止处理时间过长
- **文本保存**:提取的文本保存到`extracted_texts/`文件夹
- **命名规范**:原文件名 + `_extracted.txt`后缀
- **编码格式**:统一使用UTF-8编码
#### 3. 文本质量检查
- **准确性验证**:检查专业术语、人名、地名、数据的提取准确性
- **结构保持**:保留原文的段落结构和逻辑层次
- **特殊字符**:处理PDF中的特殊符号、公式、表格
### 处理后工作流程
#### 1. 基于真实内容重新整理
- **替换推测内容**:用真实提取的内容替换之前基于文件名推测的内容
- **保留精华要点**:提取授课老师的核心观点和教学重点
- **增强考试针对性**:突出高频考点、真题分析、记忆技巧
#### 2. 质量对比分析
- **准确性提升**:基于真实内容,确保信息准确无误
- **内容丰富度**:包含具体案例、数据、公式等详细信息
- **实用性增强**:提供记忆口诀、易错提醒、考试技巧
#### 3. 文档管理更新
- **处理记录**:在`processed_files.md`中记录处理详情
- **文件归档**:原PDF移动到`doc/processed/`文件夹
- **版本标注**:标明"基于真实PDF内容"以区别于推测版本
### 批量处理规范
对于大量PDF文件的处理:
1. **分批执行**:每次处理5-10个文件,避免系统负载过高
2. **进度跟踪**:实时记录处理进度和质量状况
3. **异常处理**:对无法正常提取的文件进行单独处理
4. **质量抽检**:随机抽取处理结果进行质量验证
### 技术替代方案
如遇到PyMuFDF无法处理的特殊PDF(如扫描版),启用Tesseract方案:
```python
import pytesseract
from pdf2image import convert_from_path
def ocr_pdf_with_tesseract(pdf_path):
"""使用Tesseract OCR处理扫描版PDF"""
images = convert_from_path(pdf_path)
text = ""
for image in images[:20]: # 限制页数
text += pytesseract.image_to_string(image, lang='chi_sim')
return text
```