NER Service
命名实体识别(NER)服务,提供实体提取和关系抽取功能。
功能特性
- 实体提取:从文本中识别人名、机构、地点、日期、数值、设备等实体
- 关系抽取:从实体间抽取语义关系
- 多模式支持:规则模式(开发)、spaCy、Transformers、API
快速开始
本地运行
# 安装依赖
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 |
测试
pytest tests/ -v
开发计划