doc-etl/README.md
2025-04-16 16:51:10 +08:00

124 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 文档清理工具
这是一个用于清理和标准化Word文档(doc/docx)的Python工具主要用于为构建RAG知识库做数据准备工作。
## 主要功能
- 移除页眉页脚(包括页码)
- 删除特殊符号(版权信息、水印等)
- 统一标点符号(全角转半角)
- 分离正文与附录/参考文献
- 删除重复段落(基于文本相似度)
- 自动跳过图片内容
- 支持doc格式自动转换为docx
- 保持原始文档格式统一输出docx格式
- 完整保留表格内容及格式
## 系统要求
- Python 3.6+
- LibreOffice用于转换doc格式文件
### 安装LibreOffice
- macOS:
```bash
brew install libreoffice
```
- Ubuntu/Debian:
```bash
sudo apt-get install libreoffice
```
- Windows:
从[LibreOffice官网](https://www.libreoffice.org/download/download/)下载安装并确保将安装目录添加到系统PATH中。
## 安装依赖
```bash
pip install -r requirements.txt
```
## 使用方法
```bash
python doc_cleaner.py 输入目录
```
### 示例
```bash
python doc_cleaner.py ./input_docs
```
## 输出说明
程序会为每个处理的文档生成一个清理后的docx文件
- `文档名_cleaned.docx`: 包含清理后的正文内容和附录(如果存在)
- 附录内容会自动添加分页符并在新页面开始
- 所有文件包括原始doc格式都会统一转换并保存为docx格式
- 保持文档格式为docx支持段落对齐等基本格式
## 注意事项
1. 确保输入目录中包含要处理的doc或docx文件
2. 程序会自动创建输出目录(如果不存在)
3. 处理过程中的错误会被记录但不会中断整体处理
4. 相似度阈值默认设置为0.85,可以通过修改代码中的`similarity_threshold`参数调整
5. 输出文件将统一保存为docx格式便于后续编辑和使用
6. 处理doc格式文件需要安装LibreOffice
7. 首次处理doc文件时可能需要较长时间因为需要进行格式转换
## 正则表达式说明
### 页眉页脚匹配模式
- `\d+-\d+`: 匹配类似"1-1"的页码格式
- `第\s*\d+\s*页`: 匹配中文页码
- `Page\s*\d+\s*of\s*\d+`: 匹配英文页码
### 附录标题匹配模式
- `^附录\s*[A-Za-z]?[\s:]`
- `^Appendix\s*[A-Za-z]?[\s:]`
- `^参考文献$`
- `^References$`
- `^Bibliography$`
## 版本历史
### v1.1.0 (2024-01-09)
- 新增完整的表格支持
- 保留表格原始格式和样式
- 优化文档处理流程
### v1.0.0
- 初始版本发布
- 基础文档清理功能
## 更新日志
### 2024-03-21
- 修复了表格位置错误的问题
- 改进了表格占位符的处理机制
- 实现了基于索引的精确表格定位
- 确保表格按原文档位置正确插入
- 重构了文档处理核心逻辑
- 改进了文档元素的解析和存储方式
- 优化了正文和附录的分离逻辑
- 加强了表格位置的追踪机制
- 简化了文档结构处理流程
### 2024-03-xx
- 修复了表格在清理过程中位置错位的问题
- 改进了文本清理逻辑,确保表格占位符不被清理
- 优化了去重算法,保持表格在文档中的原始位置
- 分离表格和文本内容的处理流程,避免交叉影响
## 功能特性
- 支持doc和docx格式的文档处理
- 清理文档中的页眉页脚
- 保留文档中的表格并维持其原始位置
- 支持附录的单独处理
- 文本去重功能
- 批量处理目录下的所有文档