docs(详细设计): 新增字段抽取与字段池设计
This commit is contained in:
83
docs/详细设计/skill/字段标准化Skill.md
Normal file
83
docs/详细设计/skill/字段标准化Skill.md
Normal file
@@ -0,0 +1,83 @@
|
||||
# 字段标准化Skill 设计
|
||||
|
||||
## 1. Skill 定位
|
||||
|
||||
`字段标准化Skill` 负责对字段候选值进行清洗、标准化、置信度计算和冲突候选标记。
|
||||
|
||||
英文实现标识建议使用 `FieldNormalizeSkill`。
|
||||
|
||||
## 2. 输入
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class FieldNormalizeInput:
|
||||
candidates: list[FieldCandidate]
|
||||
field_definitions: list[FieldDefinition]
|
||||
source_priority: dict
|
||||
```
|
||||
|
||||
## 3. 输出
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class FieldNormalizeOutput:
|
||||
normalized_candidates: list[NormalizedFieldCandidate]
|
||||
conflict_candidates: list[dict]
|
||||
manual_review_candidates: list[dict]
|
||||
```
|
||||
|
||||
## 4. 标准化规则
|
||||
|
||||
1. 去除首尾空白。
|
||||
2. 合并连续空白。
|
||||
3. 全角半角标准化。
|
||||
4. 中文标点标准化。
|
||||
5. 日期格式标准化。
|
||||
6. 单位格式标准化。
|
||||
7. 空值和异常长值标记待复核。
|
||||
|
||||
## 5. 核心方法
|
||||
|
||||
### 5.1 `run(input) -> FieldNormalizeOutput`
|
||||
|
||||
主入口方法。
|
||||
|
||||
### 5.2 `normalize_text_value(value) -> str`
|
||||
|
||||
文本清洗。
|
||||
|
||||
### 5.3 `normalize_date_value(value) -> str`
|
||||
|
||||
日期标准化。
|
||||
|
||||
### 5.4 `calculate_confidence(candidate, field_definition) -> str`
|
||||
|
||||
计算置信度。
|
||||
|
||||
### 5.5 `detect_conflict_candidates(candidates) -> list[dict]`
|
||||
|
||||
检测同字段多候选值差异。
|
||||
|
||||
## 6. 技术实现
|
||||
|
||||
使用技术:
|
||||
|
||||
1. Python 字符串处理
|
||||
2. 正则表达式
|
||||
3. 日期解析
|
||||
4. 字段类型规则
|
||||
|
||||
## 7. 异常处理
|
||||
|
||||
1. 值为空:标记待复核。
|
||||
2. 值过长:标记待复核。
|
||||
3. 日期无法解析:保留原值并标记低可信。
|
||||
4. 多候选不一致:标记 `conflict_candidate`。
|
||||
|
||||
## 8. 测试要点
|
||||
|
||||
1. 空白和标点标准化正确。
|
||||
2. 日期标准化正确。
|
||||
3. 多候选冲突可识别。
|
||||
4. 低可信候选进入待复核。
|
||||
|
||||
Reference in New Issue
Block a user