84 lines
2.3 KiB
Markdown
84 lines
2.3 KiB
Markdown
# 文档清理工具
|
||
|
||
这是一个用于清理和标准化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 ./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$` |