fix(monitor): 修正偏旁合体映射方向
问题:映射方向错误,导致还原逻辑反向 原因分析: - unicode_radicals.md 示例列格式:'件→亻牛' - 意思是:正确汉字='件',OCR错误='亻牛' - 合体映射应为:'亻牛' → '件'(OCR错误→正确) 修复: - 正确解析示例列:left='件', right='亻牛' - 建立映射:radical_map['亻牛'] = '件' 验证: - '讠吾' → '语'(正确) - '彳亍' → '行'(正确) - '亻尔' → '你'(新增支持)
This commit is contained in:
+12
-4
@@ -108,6 +108,10 @@ def _load_radical_mapping() -> dict:
|
||||
|------|---------|------|------|----------|
|
||||
| 亻 | U+4EBB | 单人旁 | 件→亻牛 | 件 |
|
||||
↑ 索引3 ↑ 索引4
|
||||
|
||||
示例列格式:'正确汉字→OCR识别的偏旁组合'
|
||||
例如:'件→亻牛' 表示 OCR 把 '件' 识别成了 '亻牛'
|
||||
合体映射应为:'亻牛' → '件'
|
||||
"""
|
||||
radical_map = {}
|
||||
try:
|
||||
@@ -120,10 +124,14 @@ def _load_radical_mapping() -> dict:
|
||||
# parts[3] = 名称, parts[4] = 示例, parts[5] = 补充字符
|
||||
if len(parts) >= 6 and "→" in parts[4]:
|
||||
example = parts[4]
|
||||
corrected = parts[5] if parts[5] else ""
|
||||
if "→" in example and corrected:
|
||||
ocr_form = example.split("→")[1].strip()
|
||||
radical_map[ocr_form] = corrected
|
||||
if "→" in example:
|
||||
# 示例格式:'件→亻牛' 或 '乍→作'
|
||||
# 意思是:正确汉字 → OCR识别的偏旁组合
|
||||
left, right = example.split("→")
|
||||
left = left.strip() # 正确汉字: '件'
|
||||
right = right.strip() # OCR错误: '亻牛'
|
||||
if right and left:
|
||||
radical_map[right] = left
|
||||
except Exception as e:
|
||||
logger.warning(f"[ocr] 加载偏旁合体映射失败({e})")
|
||||
logger.debug(f"[ocr] 偏旁合体映射: {len(radical_map)} 条")
|
||||
|
||||
Reference in New Issue
Block a user