Initial: integrated 2025 LawGraph (graphrag_pipeline) + 2026 kg_project
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
# 项目实现状态
|
||||
|
||||
## 已完成工作 ✅
|
||||
|
||||
### 1. 项目基础架构
|
||||
- ✅ 使用uv进行项目管理和依赖管理
|
||||
- ✅ 完整的项目目录结构
|
||||
- ✅ 配置文件(pyproject.toml, .env.example)
|
||||
- ✅ README和项目文档
|
||||
|
||||
### 2. 文本预处理模块 (`src/preprocessing/`)
|
||||
- ✅ **TextProcessor**: HanLP集成,支持分词、依存句法、句法成分分析
|
||||
- ✅ **DocumentParser**: Word文档解析(.docx),支持章节结构识别
|
||||
- ✅ TextUnit切分功能(参考GraphRAG)
|
||||
|
||||
### 3. 本体模型定义 (`src/ontology/`)
|
||||
- ✅ **实体类型定义**: 9种实体类型(对应论文Table 1)
|
||||
- ✅ **关系类型定义**: 8种关系类型(对应论文Table 2)
|
||||
- ✅ **三维本体结构**: 法规层级—要素类型—关联关系
|
||||
- ✅ **四要素架构**: 目标—原则—要素—管控
|
||||
- ✅ **OntologySchema**: 本体模式管理和验证
|
||||
|
||||
### 4. Prompt模板系统 (`src/prompts/`)
|
||||
- ✅ **PromptTemplate**: 统一模板框架,实现五个模块:
|
||||
- 任务描述(系统消息+用户消息)
|
||||
- 候选目标
|
||||
- 任务示例(少样本学习)
|
||||
- 任务强调
|
||||
- 二次对话
|
||||
- ✅ **NERPromptBuilder**: NER任务Prompt构建
|
||||
- ✅ **REPromptBuilder**: RE任务Prompt构建
|
||||
|
||||
### 5. LLM客户端封装 (`src/utils/llm_client.py`)
|
||||
- ✅ 支持多个LLM提供商:
|
||||
- OpenAI (GPT-4o)
|
||||
- Anthropic (Claude)
|
||||
- 阿里云Qwen
|
||||
- 字节跳动Doubao
|
||||
- 智谱GLM
|
||||
- ✅ 统一API接口
|
||||
- ✅ 异步/同步支持
|
||||
- ✅ 重试机制(tenacity)
|
||||
|
||||
### 6. 知识抽取模块 (`src/extraction/`)
|
||||
- ✅ **NERExtractor**: 使用Qwen-Max进行实体识别,支持两阶段对话验证
|
||||
- ✅ **REExtractor**: 多模型并行关系抽取框架
|
||||
- ✅ **TripletEvaluator**: LLM-as-a-Judge评估框架
|
||||
- ✅ **EntityRelationClassifier**: RAG-based分类框架
|
||||
|
||||
### 7. 知识图谱构建 (`src/kg_builder/`)
|
||||
- ✅ **GraphIndexer**: 索引器框架(参考GraphRAG)
|
||||
- 文本切分
|
||||
- 实体提取
|
||||
- 图构建
|
||||
- 社区检测(待完善)
|
||||
- 摘要生成(待完善)
|
||||
- ✅ **KnowledgeGraph**: 图谱结构管理(NetworkX)
|
||||
|
||||
### 8. 分析和推理模块 (`src/analysis/`)
|
||||
- ✅ **LegalStructureExtractor**: 法理结构提取(四要素识别、跨法规引用)
|
||||
- ✅ **LegalReasoner**: 逻辑推理(路径查询、中心性分析)
|
||||
- ✅ **EvolutionAnalyzer**: 演化规律分析框架
|
||||
|
||||
### 9. 查询系统 (`src/query/`)
|
||||
- ✅ **GlobalSearcher**: 全局搜索框架(参考GraphRAG)
|
||||
- ✅ **LocalSearcher**: 局部搜索框架
|
||||
- ✅ **DriftSearcher**: DRIFT搜索框架
|
||||
|
||||
### 10. 工具脚本
|
||||
- ✅ `scripts/extract.py`: 知识抽取示例脚本
|
||||
|
||||
## 待完善功能 ⚠️
|
||||
|
||||
### 高优先级
|
||||
1. **三元组评估算法实现** (`src/extraction/evaluator.py`)
|
||||
- 成对排序逻辑
|
||||
- 五维度评分(语义准确性、一致性、事实性、准确性、可理解性)
|
||||
- 评分聚合和筛选
|
||||
|
||||
2. **RAG-based分类实现** (`src/extraction/classifier.py`)
|
||||
- 向量嵌入(使用Text-embedding-3-large)
|
||||
- 向量数据库(相似度检索)
|
||||
- 分类逻辑完善
|
||||
|
||||
3. **知识图谱构建完整实现** (`src/kg_builder/indexer.py`)
|
||||
- 完整的三元组提取流程
|
||||
- 社区检测(Leiden算法,需要igraph)
|
||||
- 社区摘要生成(使用LLM)
|
||||
|
||||
4. **RE提取器完善** (`src/extraction/re.py`)
|
||||
- 句法信息集成
|
||||
- 上下文信息利用
|
||||
- 省略成分补全逻辑
|
||||
|
||||
### 中优先级
|
||||
5. **查询系统实现** (`src/query/`)
|
||||
- 全局搜索:利用社区摘要
|
||||
- 局部搜索:邻居扩展算法
|
||||
- DRIFT搜索:社区上下文整合
|
||||
|
||||
6. **演化规律分析** (`src/analysis/evolution.py`)
|
||||
- 时间序列分析
|
||||
- 关系演化追踪
|
||||
- 网络演化分析
|
||||
|
||||
### 低优先级
|
||||
7. **共指消解完善** (`src/preprocessing/text_processor.py`)
|
||||
8. **性能优化和缓存机制**
|
||||
9. **可视化工具**
|
||||
10. **单元测试和集成测试**
|
||||
|
||||
## 使用说明
|
||||
|
||||
### 环境设置
|
||||
```bash
|
||||
cd dofile
|
||||
uv sync
|
||||
source .venv/bin/activate # 或 .venv\Scripts\activate (Windows)
|
||||
```
|
||||
|
||||
### 配置API密钥
|
||||
复制`.env.example`到`.env`,填入相应的API密钥。
|
||||
|
||||
### 运行示例
|
||||
```bash
|
||||
# 实体识别
|
||||
uv run python scripts/extract.py --input ../data/1法律/3-中华人民共和国城乡规划法.docx --output ./output/entities.json
|
||||
```
|
||||
|
||||
## 参考资源
|
||||
|
||||
- GraphRAG文档: https://msdocs.cn/graphrag/
|
||||
- 论文: `officefile/paper.tex`
|
||||
- 数据目录: `../data/`
|
||||
|
||||
## 技术债务
|
||||
|
||||
1. 错误处理和日志记录需要更完善
|
||||
2. 需要添加配置文件验证
|
||||
3. 异步处理可以进一步优化
|
||||
4. 需要添加单元测试
|
||||
5. 文档需要补充更多示例
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user