刘立冬 il y a 2 semaines
Parent
commit
25f92b5247
1 fichiers modifiés avec 95 ajouts et 12 suppressions
  1. 95 12
      knowledge_search_traverse.py

+ 95 - 12
knowledge_search_traverse.py

@@ -62,7 +62,7 @@ class Seg(BaseModel):
 class Segment(BaseModel):
     """语义片段(Round 0语义分段结果)"""
     text: str  # 片段文本
-    type: str  # 语义类型: 疑问标记/核心动作/修饰短语/中心名词/逻辑连接
+    type: str  # 语义维度: 动作目/修饰词/中心名词
     score_with_o: float = 0.0  # 与原始问题的评分
     reason: str = ""  # 评分理由
     from_o: str = ""  # 原始问题
@@ -219,7 +219,7 @@ class RunContext(BaseModel):
 class SemanticSegment(BaseModel):
     """单个语义片段"""
     segment_text: str = Field(..., description="片段文本")
-    segment_type: str = Field(..., description="语义类型(疑问标记/核心动作/修饰短语/中心名词/逻辑连接)")
+    segment_type: str = Field(..., description="语义维度(动作目标/修饰词/中心名词)")
     reasoning: str = Field(..., description="分段理由")
 
 
@@ -230,27 +230,110 @@ class SemanticSegmentation(BaseModel):
 
 
 semantic_segmentation_instructions = """
-你是语义分段专家。给定一个搜索query,将其拆分成不同语义类型的片段。
+你是语义分段专家。给定一个搜索query,将其拆分成3种语义维度的片段。
 
-## 语义类型定义
-1. **疑问引导**:如何、怎么、什么、哪里等疑问词
-2. **核心动作**:关键动词,如获取、制作、拍摄、寻找等
-3. **修饰短语**:形容词、副词等修饰成分
-4. **中心名词**:核心名词
-5. **逻辑连接**:并且、或者、以及等连接词(较少出现)
+## 语义定义
+
+### 1. 动作目标
+**定义**:表达"想要做什么"的完整语义单元
+**包含**:
+- 疑问词:如何、什么、哪些、有没有、怎么
+- 动作词:获取、制作、拍摄、寻找、学习、规划
+
+**示例**:
+- "如何获取" → 动作目标
+- "有哪些" → 动作目标(完整疑问表达)
+- "寻找" → 动作目标
+
+**注意**:疑问词和动作词应该作为一个完整的语义单元,不要拆分
+
+---
+
+### 2. 修饰词
+**定义**:对中心名词的限定和修饰的完整语义单元
+**包含**:形容词、时间词、地点词、程度词
+
+**注意**:多个连续的修饰词可以组合成一个片段
+
+---
+
+### 3. 中心名词
+**定义**:动作和目标的核心对象
+**包含**:
+- 核心名词:素材、梗图、表情包、教程
+- 复合名词:摄影素材、风光摄影素材、表情包梗图
+
+---
 
 ## 分段原则
-1. **语义完整性**:每个片段应该是一个完整的语义单元,如"如何制作猫咪表情包梗图"可以拆分为"如何"、"制作"、"猫咪表情包梗图"三个片段,每一段有完整语义
-2. **类型互斥**:每个片段只能属于一种类型
+
+1. **语义完整性**:每个片段应该是完整的语义单元
+   - 动作目标:疑问词+动作词应该合并
+   - 修饰词:连续的修饰成分可以合并
+   - 中心名词:复合名词保持完整
+
+2. **维度互斥**:每个片段只能属于一种维度
+
 3. **保留原文**:片段文本必须保留原query中的字符,不得改写
+
 4. **顺序保持**:片段顺序应与原query一致
 
+---
+
+## 输出格式(严格遵守)
+```json
+{
+  "segments": [
+    {
+      "segment_text": "分段结果文本1",
+      "segment_type": "语义类型",
+      "reasoning": ""
+    },
+    {
+      "segment_text": "分段结果文本2",
+      "segment_type": "语义类型",
+      "reasoning": ""
+    },
+    {
+      "segment_text": "分段结果文本3",
+      "segment_type": "语义类型",
+      "reasoning": ""
+    },
+  ],
+  "overall_reasoning": ""
+}
+```
+
+**Query**: "职场相关的网络热梗有哪些"
 
+**分段结果**:
+```json
+{
+  "segments": [
+    {
+      "segment_text": "职场相关的网络热",
+      "segment_type": "修饰词",
+      "reasoning": "多个修饰词组合,限定了梗的类型和范围"
+    },
+    {
+      "segment_text": "梗",
+      "segment_type": "中心名词",
+      "reasoning": "核心对象"
+    },
+    {
+      "segment_text": "有哪些",
+      "segment_type": "动作目标",
+      "reasoning": "完整的疑问表达,表达寻找/列举的动机"
+    }
+  ],
+  "overall_reasoning": "修饰词+名词+疑问表达的结构"
+}
+```
 
 ## 输出要求
 - segments: 片段列表
   - segment_text: 片段文本(必须来自原query)
-  - segment_type: 语义类型(从5种类型中选择)
+  - segment_type: 语义维度(动作目标/修饰词/中心名词
   - reasoning: 为什么这样分段
 - overall_reasoning: 整体分段思路