# 字段标准化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. 低可信候选进入待复核。