doc-etl/README.md
2025-04-16 15:28:23 +08:00

2.3 KiB
Raw Blame History

文档清理工具

这是一个用于清理和标准化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 ./cleaned_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$