# NER Service 命名实体识别(NER)服务,提供实体提取和关系抽取功能。 ## 功能特性 - 实体提取:从文本中识别人名、机构、地点、日期、数值、设备等实体 - 关系抽取:从实体间抽取语义关系 - 多模式支持:规则模式(开发)、spaCy、Transformers、API ## 快速开始 ### 本地运行 ```bash # 安装依赖 pip install -r requirements.txt # 启动服务 uvicorn app.main:app --host 0.0.0.0 --port 8001 --reload ``` ## API 接口 ### 健康检查 ``` GET /health ``` ### 实体提取 ``` POST /ner/extract Content-Type: application/json { "documentId": "doc-001", "text": "待提取的文本内容...", "entityTypes": ["PERSON", "ORG", "LOC"], // 可选 "extractRelations": true } ``` ### 关系抽取 ``` POST /ner/relations Content-Type: application/json { "documentId": "doc-001", "text": "原始文本", "entities": [...] // 已提取的实体列表 } ``` ## 实体类型 | 类型 | 说明 | 示例 | |------|------|------| | PERSON | 人名 | 张三、李经理 | | ORG | 机构 | 成都检测公司 | | LOC | 地点 | 成都市高新区 | | DATE | 日期 | 2024年5月15日 | | NUMBER | 数值 | 100万元、50分贝 | | DEVICE | 设备 | 噪音检测设备 | | PROJECT | 项目 | 环境监测项目 | | TERM | 专业术语 | - | ## 关系类型 | 类型 | 说明 | |------|------| | 负责 | 主体负责某事 | | 属于 | 隶属关系 | | 位于 | 位置关系 | | 包含 | 包含关系 | | 使用 | 使用关系 | | 检测 | 检测关系 | | 合作 | 合作关系 | ## 配置说明 | 配置项 | 说明 | 默认值 | |--------|------|--------| | NER_MODEL | NER 模型类型 | rule | | USE_GPU | 是否使用 GPU | false | | MAX_TEXT_LENGTH | 最大文本长度 | 50000 | | LOG_LEVEL | 日志级别 | INFO | ## 测试 ```bash pytest tests/ -v ``` ## 开发计划 - [ ] 集成 spaCy 中文模型 - [ ] 集成 Transformers NER 模型 - [ ] 实现 API 模式(DeepSeek/Qwen) - [ ] 优化关系抽取准确率