文档清理工具
这是一个用于清理和标准化Word文档(doc/docx)的Python工具,主要用于为构建RAG知识库做数据准备工作。
主要功能
- 移除页眉页脚(包括页码)
- 删除特殊符号(版权信息、水印等)
- 统一标点符号(全角转半角)
- 分离正文与附录/参考文献
- 删除重复段落(基于文本相似度)
- 自动跳过图片内容
- 支持doc格式自动转换为docx
- 保持原始文档格式(统一输出docx格式)
- 完整保留表格内容及格式
系统要求
- Python 3.6+
- LibreOffice(用于转换doc格式文件)
安装LibreOffice
- macOS:
brew install libreoffice
- Ubuntu/Debian:
sudo apt-get install libreoffice
- Windows: 从LibreOffice官网下载安装,并确保将安装目录添加到系统PATH中。
安装依赖
pip install -r requirements.txt
使用方法
python doc_cleaner.py 输入目录
示例
python doc_cleaner.py ./input_docs
输出说明
程序会为每个处理的文档生成一个清理后的docx文件:
文档名_cleaned.docx
: 包含清理后的正文内容和附录(如果存在)- 附录内容会自动添加分页符并在新页面开始
- 所有文件(包括原始doc格式)都会统一转换并保存为docx格式
- 保持文档格式为docx,支持段落对齐等基本格式
注意事项
- 确保输入目录中包含要处理的doc或docx文件
- 程序会自动创建输出目录(如果不存在)
- 处理过程中的错误会被记录但不会中断整体处理
- 相似度阈值默认设置为0.85,可以通过修改代码中的
similarity_threshold
参数调整 - 输出文件将统一保存为docx格式,便于后续编辑和使用
- 处理doc格式文件需要安装LibreOffice
- 首次处理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格式的文档处理
- 清理文档中的页眉页脚
- 保留文档中的表格并维持其原始位置
- 支持附录的单独处理
- 文本去重功能
- 批量处理目录下的所有文档
Description
Languages
Python
93.3%
HTML
6.7%