# fagougou 赵欣曈石岩松 **Repository Path**: fagg-intern/fagougou ## Basic Information - **Project Name**: fagougou 赵欣曈石岩松 - **Description**: 法狗狗实习项目敏感信息擦除 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-24 - **Last Updated**: 2025-07-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 法狗狗 - PDF敏感信息脱敏工具 这是一个专为法律文档设计的PDF敏感信息脱敏工具,支持多种敏感信息识别方式和脱敏处理方法,旨在保护文档中的个人隐私和敏感数据。 ## 功能特点 - **多模式敏感信息识别**: - 正则表达式匹配 - 命名实体识别(NER) - 大语言模型(LLM)识别 - 结合模式(正则+NER+LLM) - **多种脱敏方法**: - 马赛克/模糊处理 - 黑条遮挡 - 文本替换 - **PDF类型智能处理**: - 自动区分文本型和图像型PDF页面 - 对文本型页面直接提取文本进行处理 - 对图像型页面使用OCR技术识别文本 - **自定义白名单**:过滤不需要脱敏的内容 - **用户友好界面**:简洁直观的GUI界面 ## 项目结构 ``` fagougou/ ├── config.py # 配置文件 ├── main.py # 正则+NER模式主程序 ├── main_llm.py # LLM模式主程序 ├── main_combined.py # LLM+NER模式主程序 ├── ui.py # 图形用户界面 ├── requirements.txt # 项目依赖 ├── README.md # 项目说明文档 ├── utils/ # 工具函数目录 │ ├── logger.py # 日志工具 │ ├── pdf_utils.py # PDF解析与处理 │ ├── ner_utils.py # 实体识别(规则+NER) │ ├── llm_sensitive_utils.py # LLM敏感信息识别 │ ├── combined_utils.py # 结合模式(正则+NER+LLM)工具 │ ├── model.py # NER模型加载与处理 │ ├── desense_utils.py # 脱敏操作实现 │ └── rapid_ocr_extract.py # OCR文字识别 ├── resources/ # 资源文件 │ ├── config/ # 配置文件 │ │ └── whitelist.json # 白名单配置 │ └── icons/ # 图标资源 └── models/ # 模型缓存目录 └── ner_cache/ # NER模型缓存 ``` ## 主要文件说明 - **config.py**:全局配置文件,设置OCR引擎、敏感类型、NER模型等参数 - **main.py**:使用正则+NER模式处理PDF文件的主程序 - **main_llm.py**:使用LLM模式处理PDF文件的主程序 - **ui.py**:图形用户界面实现 - **utils/ner_utils.py**:实现基于正则表达式和NER模型的敏感信息识别 - **utils/llm_sensitive_utils.py**:实现基于大语言模型的敏感信息识别 - **utils/combined_utils.py**:结合正则、NER和LLM的敏感信息识别 - **utils/desense_utils.py**:实现遮挡、模糊、替换等脱敏操作 - **utils/model.py**:NER模型加载与使用 - **utils/rapid_ocr_extract.py**:使用RapidOCR提取图像型PDF中的文本 ## 使用方法 ### 环境准备 1. 克隆或下载本项目到本地 2. 安装Python 3.8+ 3. 安装依赖包: ``` pip install -r requirements.txt ``` ### 使用GUI界面 1. 运行UI程序: ``` python ui.py ``` 2. 在打开的界面中: - 点击"打开文件"选择需要处理的PDF文件 - 选择敏感信息识别模式(正则+NER / LLM / 结合模式) - 选择脱敏方法(遮挡 / 模糊 / 替换) - 根据需要调整脱敏参数(颜色、马赛克大小、替换字符) - 点击"开始处理"按钮 - 处理完成后,可预览并保存脱敏后的PDF文件 ### 使用方法 可以直接调用主程序处理PDF文件: ```python # 启动前端界面并使用 python ui.py ``` ### 白名单配置 白名单用于排除不需要脱敏的内容: 1. 通过UI界面的"白名单管理"标签进行添加、删除和编辑 2. 或直接编辑 `resources/config/whitelist.json` 文件 ## 脱敏方法说明 1. **遮挡(mask)**:使用纯色矩形覆盖敏感信息,默认为黑色 2. **模糊(blur)**:对敏感信息区域应用马赛克处理 3. **替换(replace)**:将敏感信息替换为指定字符,如'X'、'*'等 ## 注意事项 - 大文件处理可能需要较长时间,请耐心等待 - 首次使用NER模型时会自动下载并缓存到本地 - LLM模式需要联网调用API,请确保网络连接正常 ## TODO - [x] 优化图像型PDF处理后的清晰度 - [x] 改进脱敏区域的连贯性 - [x] 结合NER+正则+LLM识别模式 - [x] 实现前端UI - [x] 敏感词识别,实现NER+正则和LLM两种模式