Jelajahi Sumber

feat: 新增 DOC_ID 实体类型用于文件编号识别

新增类型:
- DOC_ID(文件编号):文件编号、标准编号、规范编号、合同编号、项目编号
  - 示例:"AY-BZ-0092-2024-Z01"、"SQE.01C0213"、"中电建股〔2019〕122号"

变更:
1. NER Prompt 新增 DOC_ID 类型定义和示例
2. 更新 PROJECT 和 METHOD 描述,将编号类归为 DOC_ID
3. 后端 EntityTypeConstants 新增:
   - DOC_ID: 显示名"文件编号",图标📄,颜色#597ef7
   - METHOD: 显示名"标准规范",图标📖,颜色#9254de
何文松 1 bulan lalu
induk
melakukan
9df41e1b82

+ 10 - 2
backend/graph-service/src/main/java/com/lingyue/graph/constant/EntityTypeConstants.java

@@ -31,6 +31,8 @@ public final class EntityTypeConstants {
             Map.entry("term", "术语"),
             Map.entry("entity", "实体"),
             Map.entry("project", "项目"),
+            Map.entry("method", "标准规范"),
+            Map.entry("doc_id", "文件编号"),
             Map.entry("other", "其他")
     );
     
@@ -51,6 +53,8 @@ public final class EntityTypeConstants {
             Map.entry("term", "📝"),
             Map.entry("entity", "🏷️"),
             Map.entry("project", "📋"),
+            Map.entry("method", "📖"),
+            Map.entry("doc_id", "📄"),
             Map.entry("other", "📌")
     );
     
@@ -71,6 +75,8 @@ public final class EntityTypeConstants {
             Map.entry("term", "#2f54eb"),
             Map.entry("entity", "#1890ff"),
             Map.entry("project", "#faad14"),
+            Map.entry("method", "#9254de"),
+            Map.entry("doc_id", "#597ef7"),
             Map.entry("other", "#8c8c8c")
     );
     
@@ -90,14 +96,16 @@ public final class EntityTypeConstants {
             Map.entry("device", "Device"),
             Map.entry("term", "Term"),
             Map.entry("entity", "Entity"),
-            Map.entry("project", "Project")
+            Map.entry("project", "Project"),
+            Map.entry("method", "Method"),
+            Map.entry("doc_id", "DocumentId")
     );
     
     /**
      * 预定义的类型排序顺序
      */
     public static final java.util.List<String> TYPE_ORDER = java.util.List.of(
-            "entity", "concept", "project", "data", "number", "money", 
+            "entity", "concept", "project", "method", "doc_id", "data", "number", "money", 
             "person", "org", "loc", "location", "date", "device", "term", "other"
     );
     

+ 2 - 1
python-services/ner-service/app/config.py

@@ -55,8 +55,9 @@ class Settings(BaseSettings):
         "DATE",     # 日期/时间
         "NUMBER",   # 有意义的数值(带单位,非章节号)
         "DEVICE",   # 设备/系统
-        "PROJECT",  # 项目/工程名称(非编号)
+        "PROJECT",  # 项目/工程名称
         "METHOD",   # 方法/标准/规范名称
+        "DOC_ID",   # 文件编号/标准编号
     ]
     
     # 日志配置

+ 9 - 4
python-services/ner-service/app/services/deepseek_service.py

@@ -97,18 +97,23 @@ class DeepSeekService:
 
 6. **PROJECT** - 项目/工程名称
    - 包括:具体项目名称、工程名称
-   - 例如:"白鹤滩水电站工程"、"安全生产标准化建设项目"
-   - **不包括**:文件编号(如"AY-BZ-0092-2024")、标准编号
+   - 例如:"白鹤滩水电站工程"、"安全生产标准化建设项目"、"龙滩水电站"
+   - **不包括**:文件编号(归类为 DOC_ID)
 
 7. **METHOD** - 方法/标准/规范
-   - 包括:技术标准、管理办法、评价标准的完整名称
+   - 包括:技术标准、管理办法、评价标准的**完整名称**
    - 例如:"电力建设企业安全生产标准化评价标准"、"安全生产风险抵押金管理办法"
-   - **不包括**:编号(如"SQE.01C0213"、"中电建协〔2014〕24号文"
+   - **不包括**:编号(归类为 DOC_ID
 
 8. **DEVICE** - 设备/系统
    - 包括:设备名称、信息系统名称
    - 例如:"OA系统"、"QHSE系统"、"造槽机"
 
+9. **DOC_ID** - 文件编号/标准编号
+   - 包括:文件编号、标准编号、规范编号、合同编号、项目编号
+   - 例如:"AY-BZ-0092-2024-Z01"、"SQE.01C0213"、"中电建股〔2019〕122号"、"ZGDIDBOY-083"、"中电建协〔2014〕24号文"
+   - 特征:通常包含字母、数字、连字符、年份等组合
+
 ## 重要规则
 
 1. **只提取有实际意义的实体**,忽略: