# 文档清理工具 这是一个用于清理和标准化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格式的文档处理 - 清理文档中的页眉页脚 - 保留文档中的表格并维持其原始位置 - 支持附录的单独处理 - 文本去重功能 - 批量处理目录下的所有文档