feat: 偏旁库逻辑重构 — 替换偏旁为正确汉字\n\n1. 修改unicode_radicals.md格式,新增补充字符列\n2. 新增_load_radicals()加载偏旁→补充字符映射(字典)\n3. 新增_replace_radicals()函数:遍历偏旁,有补充字符则替换,无补充字符则整段丢弃\n4. OCR级和Poll级偏旁过滤逻辑同步更新\n5. 降级逻辑:默认范围U+2E80-U+2FDF,补充字符为空\n\n维护方式:编辑unicode_radicals.md填写补充字符,重启bot生效
This commit is contained in:
+53
-61
@@ -41,43 +41,57 @@ import difflib
|
||||
import os
|
||||
|
||||
# ⭐ 偏旁部首 Unicode 库:从 unicode_radicals.md 读取,用于 OCR 碎片过滤
|
||||
_RADICAL_CHARS: set = set()
|
||||
# _RADICAL_MAP: 偏旁字符 → 补充字符(空字符串表示无补充,整段丢弃)
|
||||
_RADICAL_MAP: dict = {}
|
||||
_RADICALS_FILE = os.path.join(os.path.dirname(__file__), 'unicode_radicals.md')
|
||||
|
||||
def _load_radicals():
|
||||
"""从 unicode_radicals.md 加载偏旁字符集"""
|
||||
global _RADICAL_CHARS
|
||||
"""从 unicode_radicals.md 加载偏旁→补充字符映射"""
|
||||
global _RADICAL_MAP
|
||||
try:
|
||||
with open(_RADICALS_FILE, 'r', encoding='utf-8') as f:
|
||||
for line in f:
|
||||
line = line.strip()
|
||||
# 跳过标题行和空行
|
||||
if not line or line.startswith('#'):
|
||||
# 跳过标题行、空行、表头、分隔行
|
||||
if not line or line.startswith('#') or line.startswith('| 偏旁') or line.startswith('| ------'):
|
||||
continue
|
||||
# 寻找 U+XXXX 格式
|
||||
m = re.search(r'U\+([0-9A-Fa-f]{4})', line)
|
||||
if m:
|
||||
# 按竖线分割,取第一个字段(偏旁)或第二个(如果第一个是空)
|
||||
# 按竖线分割
|
||||
parts = [p.strip() for p in line.split('|')]
|
||||
# 找到包含 U+ 的字段索引
|
||||
for i, part in enumerate(parts):
|
||||
if 'U+' in part:
|
||||
# 偏旁字段通常是前一个字段
|
||||
if i > 0 and parts[i-1]:
|
||||
radical = parts[i-1]
|
||||
# 偏旁应为单个字符(可能含空格)
|
||||
radical = radical.strip()
|
||||
# parts = ['', '偏旁', 'Unicode', '名称', '示例', '补充字符', '']
|
||||
if len(parts) >= 7:
|
||||
radical = parts[1].strip()
|
||||
supplement = parts[5].strip() # 补充字符列
|
||||
if len(radical) == 1:
|
||||
_RADICAL_CHARS.add(radical)
|
||||
break
|
||||
logger.info(f"[radicals] 已加载偏旁库: {len(_RADICAL_CHARS)} 个偏旁")
|
||||
_RADICAL_MAP[radical] = supplement
|
||||
logger.info(f"[radicals] 已加载偏旁库: {len(_RADICAL_MAP)} 个偏旁")
|
||||
except Exception as e:
|
||||
logger.warning(f"[radicals] 偏旁库加载失败: {e}, 使用默认范围 U+2E80-U+2FDF")
|
||||
# 降级:使用默认范围
|
||||
_RADICAL_CHARS = set(chr(i) for i in range(0x2E80, 0x2FE0))
|
||||
# 降级:使用默认范围,无补充字符
|
||||
_RADICAL_MAP = {chr(i): '' for i in range(0x2E80, 0x2FE0)}
|
||||
|
||||
# 启动时加载
|
||||
_load_radicals()
|
||||
|
||||
def _replace_radicals(text: str) -> tuple:
|
||||
"""检查文本中的偏旁,替换为补充字符(如果有)。
|
||||
返回 (replaced_text, should_discard)
|
||||
should_discard=True 表示有偏旁无补充字符,整段丢弃
|
||||
"""
|
||||
new_chars = []
|
||||
for ch in text:
|
||||
if ch in _RADICAL_MAP:
|
||||
supplement = _RADICAL_MAP[ch]
|
||||
if supplement: # 有补充字符
|
||||
new_chars.append(supplement)
|
||||
else: # 无补充字符,整段丢弃
|
||||
return (text, True)
|
||||
else:
|
||||
new_chars.append(ch)
|
||||
return (''.join(new_chars), False)
|
||||
|
||||
import subprocess
|
||||
import json
|
||||
import psutil
|
||||
@@ -2055,28 +2069,17 @@ class MessageMonitor:
|
||||
logger.debug(f"[{platform}] OCR 过滤: 结构化面板 line={line!r}")
|
||||
continue
|
||||
|
||||
# —— OCR 偏旁碎片过滤:氵、亻、讠、扌等 CJK 偏旁不是完整汉字 ——
|
||||
# 从 unicode_radicals.md 加载偏旁字符集,统计出现次数
|
||||
# ≥1 个偏旁字符 → 判定为 OCR 把汉字拆碎了,整段丢弃
|
||||
# ⚠️ 增强:连续偏旁检测(如"亻乍弊")—— 偏旁数≥2 且文本短(<20字)时更严格
|
||||
radical_cnt = sum(1 for c in line if c in _RADICAL_CHARS)
|
||||
if radical_cnt >= 1:
|
||||
# 计算非空格文本长度
|
||||
text_len = len(line.replace(' ', ''))
|
||||
# 短文本(<20字)出现偏旁 → 高概率碎片
|
||||
if text_len < 20:
|
||||
logger.debug(f"[{platform}] OCR 过滤: 偏旁碎片(短文本radical={radical_cnt},len={text_len}) line={line!r}")
|
||||
continue
|
||||
# 长文本但偏旁比例高(>10%)→ 碎片
|
||||
elif text_len > 0 and radical_cnt / text_len > 0.1:
|
||||
logger.debug(f"[{platform}] OCR 过滤: 偏旁碎片(比例{radical_cnt}/{text_len}) line={line!r}")
|
||||
continue
|
||||
# 单个偏旁但文本很长(>50字)→ 可能是正常文本包含偏旁字符(罕见),放行
|
||||
elif radical_cnt == 1 and text_len > 50:
|
||||
pass # 放行
|
||||
else:
|
||||
logger.debug(f"[{platform}] OCR 过滤: 偏旁碎片(radical={radical_cnt}) line={line!r}")
|
||||
# —— OCR 偏旁碎片过滤:替换偏旁为正确汉字 ——
|
||||
# 如果偏旁有补充字符(非空)→ 替换为补充字符,继续处理
|
||||
# 如果偏旁无补充字符(空)→ 整段丢弃
|
||||
line_replaced, discard = _replace_radicals(line)
|
||||
if discard:
|
||||
logger.debug(f"[{platform}] OCR 过滤: 偏旁无补充字符(丢弃) line={line!r}")
|
||||
continue
|
||||
if line_replaced != line:
|
||||
# 有偏旁被替换,使用替换后的文本继续处理
|
||||
logger.debug(f"[{platform}] OCR 偏旁替换: {line!r} → {line_replaced!r}")
|
||||
line = line_replaced
|
||||
# —— 系统配置内容过滤:SMTP/邮件地址/代码片段不是用户消息 ——
|
||||
if re.search(r'@example|smtp|\.py\b|\.bat\b|\.sh\b|//.*\.\w{2,4}\b', line, re.IGNORECASE):
|
||||
logger.debug(f"[{platform}] OCR 过滤: 系统配置内容 line={line!r}")
|
||||
@@ -3776,28 +3779,17 @@ class MessageMonitor:
|
||||
if len(colon_kv) >= 3:
|
||||
logger.debug(f"[{platform}] Poll过滤: 结构化面板 ts={ts!r}")
|
||||
continue
|
||||
# === 偏旁碎片过滤:氵、亻、讠、扌等 CJK 偏旁不是完整汉字 ===
|
||||
# 从 unicode_radicals.md 加载偏旁字符集,统计出现次数
|
||||
# ≥1 个偏旁字符 → 判定为 OCR 把汉字拆碎了,整段丢弃
|
||||
# ⚠️ 增强:连续偏旁检测(如"亻乍弊")—— 偏旁数≥2 且文本短(<20字)时更严格
|
||||
radical_cnt = sum(1 for c in ts if c in _RADICAL_CHARS)
|
||||
if radical_cnt >= 1:
|
||||
# 计算非空格文本长度
|
||||
text_len = len(ts.replace(' ', ''))
|
||||
# 短文本(<20字)出现偏旁 → 高概率碎片
|
||||
if text_len < 20:
|
||||
logger.debug(f"[{platform}] Poll过滤: 偏旁碎片(短文本radical={radical_cnt},len={text_len}) ts={ts!r}")
|
||||
continue
|
||||
# 长文本但偏旁比例高(>10%)→ 碎片
|
||||
elif text_len > 0 and radical_cnt / text_len > 0.1:
|
||||
logger.debug(f"[{platform}] Poll过滤: 偏旁碎片(比例{radical_cnt}/{text_len}) ts={ts!r}")
|
||||
continue
|
||||
# 单个偏旁但文本很长(>50字)→ 可能是正常文本包含偏旁字符(罕见),放行
|
||||
elif radical_cnt == 1 and text_len > 50:
|
||||
pass # 放行
|
||||
else:
|
||||
logger.debug(f"[{platform}] Poll过滤: 偏旁碎片(radical={radical_cnt}) ts={ts!r}")
|
||||
# === 偏旁碎片过滤:替换偏旁为正确汉字 ===
|
||||
# 如果偏旁有补充字符(非空)→ 替换为补充字符,继续处理
|
||||
# 如果偏旁无补充字符(空)→ 整段丢弃
|
||||
ts_replaced, discard = _replace_radicals(ts)
|
||||
if discard:
|
||||
logger.debug(f"[{platform}] Poll过滤: 偏旁无补充字符(丢弃) ts={ts!r}")
|
||||
continue
|
||||
if ts_replaced != ts:
|
||||
# 有偏旁被替换,使用替换后的文本继续处理
|
||||
logger.debug(f"[{platform}] Poll偏旁替换: {ts!r} → {ts_replaced!r}")
|
||||
ts = ts_replaced
|
||||
# === 系统配置内容过滤:SMTP/邮件地址/代码片段不是用户消息 ===
|
||||
if re.search(r'@example|smtp|\.py\b|\.bat\b|\.sh\b|//.*\.\w{2,4}\b', ts, re.IGNORECASE):
|
||||
logger.debug(f"[{platform}] Poll过滤: 系统配置内容 ts={ts!r}")
|
||||
|
||||
+215
-214
@@ -6,220 +6,221 @@
|
||||
|
||||
## 偏旁表
|
||||
|
||||
| 偏旁 | Unicode | 名称 | 示例 |
|
||||
|------|---------|------|------|
|
||||
| 亻 | U+2E80 | 单人旁 | 件→亻牛 |
|
||||
| 牛 | U+2E81 | 牛字旁 | 件→亻牛 |
|
||||
| 彳 | U+2E82 | 双人旁 | 行→彳亍 |
|
||||
| 亍 | U+2E83 | 亍 | 行→彳亍 |
|
||||
| 讠 | U+2E85 | 言字旁 | 语→讠吾 |
|
||||
| 扌 | U+2E86 | 提手旁 | 打→扌丁 |
|
||||
| 氵 | U+2E87 | 三点水 | 河→氵可 |
|
||||
| 宀 | U+2E88 | 宝盖头 | 家→宀豕 |
|
||||
| 辶 | U+2E89 | 走之底 | 进→辶井 |
|
||||
| 纟 | U+2E8A | 绞丝旁 | 红→纟工 |
|
||||
| 艹 | U+2E8B | 草字头 | 花→艹化 |
|
||||
| 阝 | U+2E8C | 左耳旁 | 阳→阝日 |
|
||||
| 阝 | U+2E8D | 右耳旁 | 都→阝者 |
|
||||
| 氵 | U+2E8E | 冫 | 冷→冫令 |
|
||||
| 欠 | U+2E8F | 欠字旁 | 次→欠欠 |
|
||||
| 风 | U+2E90 | 风字旁 | 飘→风票 |
|
||||
| 几 | U+2E91 | 几字旁 | 机→几木 |
|
||||
| 勹 | U+2E92 | 包字头 | 包→勹巳 |
|
||||
| 匚 | U+2E93 | 三框旁 | 医→匚矢 |
|
||||
| 卩 | U+2E94 | 单耳旁 | 印→卩卩 |
|
||||
| 厶 | U+2E95 | 私字头 | 公→厶八 |
|
||||
| 又 | U+2E96 | 又字旁 | 双→又又 |
|
||||
| 囗 | U+2E97 | 大口框 | 国→囗玉 |
|
||||
| 土 | U+2E98 | 土字旁 | 地→土也 |
|
||||
| 士 | U+2E99 | 士字旁 | 壮→士丬 |
|
||||
| 夂 | U+2E9A | 折文旁 | 冬→夂冫 |
|
||||
| 夊 | U+2E9B | 夊 | 夏→夊夂 |
|
||||
| 夕 | U+2E9C | 夕字旁 | 外→夕卜 |
|
||||
| 大 | U+2E9D | 大字头 | 天→大一 |
|
||||
| 女 | U+2E9E | 女字旁 | 妈→女马 |
|
||||
| 子 | U+2E9F | 子字旁 | 字→子宀 |
|
||||
| 宀 | U+2EA0 | 宀 | 家→宀豕 |
|
||||
| 寸 | U+2EA1 | 寸字旁 | 对→又寸 |
|
||||
| 小 | U+2EA2 | 小字头 | 尖→小大 |
|
||||
| 尢 | U+2EA3 | 尢 | 尤→尢 |
|
||||
| 尸 | U+2EA4 | 尸字头 | 屋→尸至 |
|
||||
| 屮 | U+2EA5 | 屮 | 屯→屮 |
|
||||
| 山 | U+2EA6 | 山字旁 | 岩→山石 |
|
||||
| 巛 | U+2EA7 | 三拐旁 | 巡→巛巛 |
|
||||
| 工 | U+2EA8 | 工字旁 | 红→纟工 |
|
||||
| 己 | U+2EA9 | 己字头 | 已→己 |
|
||||
| 巳 | U+2EAA | 巳 | 巴→巳 |
|
||||
| 巾 | U+2EAB | 巾字旁 | 布→巾 |
|
||||
| 干 | U+2EAC | 干 | 平→干 |
|
||||
| 幺 | U+2EAD | 幺 | 幻→幺 |
|
||||
| 广 | U+2EA4 | 广字头 | 座→广坐 |
|
||||
| 廴 | U+2EAF | 建之底 | 建→廴聿 |
|
||||
| 廾 | U+2EB0 | 廾 | 弃→廾廾 |
|
||||
| 弋 | U+2EB1 | 弋 | 式→弋 |
|
||||
| 弓 | U+2EB2 | 弓字旁 | 弹→弓单 |
|
||||
| 彐 | U+2EB3 | 彐 | 归→彐彐 |
|
||||
| 彡 | U+2EB4 | 三撇旁 | 形→彡开 |
|
||||
| 彳 | U+2EB5 | 彳 | 行→彳亍 |
|
||||
| 心 | U+2EB6 | 心字底 | 想→心相 |
|
||||
| 忄 | U+2EB7 | 竖心旁 | 忙→忄亡 |
|
||||
| 戈 | U+2EB8 | 戈字旁 | 战→占戈 |
|
||||
| 戶 | U+2EB9 | 户字头 | 所→戶斤 |
|
||||
| 手 | U+2EBA | 手字旁 | 拿→合手 |
|
||||
| 扌 | U+2EBB | 扌 | 打→扌丁 |
|
||||
| 支 | U+2EBC | 支 | 改→支攵 |
|
||||
| 攴 | U+2EBD | 攴 | 敲→攴高 |
|
||||
| 攵 | U+2EBE | 反文旁 | 敏→攵每 |
|
||||
| 文 | U+2EBF | 文 | 斋→文而 |
|
||||
| 斗 | U+2EC0 | 斗字旁 | 料→米斗 |
|
||||
| 斤 | U+2EC1 | 斤字旁 | 新→亲斤 |
|
||||
| 方 | U+2EC2 | 方字旁 | 放→方攵 |
|
||||
| 无 | U+2EC3 | 无 | 既→无旡 |
|
||||
| 旡 | U+2EC4 | 既字头 | 既→旡旡 |
|
||||
| 日 | U+2EC5 | 日字旁 | 晴→日青 |
|
||||
| 曰 | U+2EC6 | 曰 | 曲→曰 |
|
||||
| 月 | U+2EC7 | 月字旁 | 腿→月退 |
|
||||
| 木 | U+2EC8 | 木字旁 | 林→木木 |
|
||||
| 欠 | U+2EC9 | 欠 | 次→欠欠 |
|
||||
| 止 | U+2ECA | 止字旁 | 步→止少 |
|
||||
| 歹 | U+2ECB | 歹字旁 | 死→歹匕 |
|
||||
| 殳 | U+2ECC | 殳 | 段→殳几 |
|
||||
| 毋 | U+2ECD | 毋 | 每→毋母 |
|
||||
| 比 | U+2ECE | 比 | 毕→比十 |
|
||||
| 毛 | U+2ECF | 毛字旁 | 毡→毛 |
|
||||
| 氏 | U+2ED0 | 氏 | 民→氏 |
|
||||
| 气 | U+2ED1 | 气字头 | 氛→气分 |
|
||||
| 水 | U+2ED2 | 水字旁 | 河→水可 |
|
||||
| 火 | U+2ED3 | 火字旁 | 灯→火丁 |
|
||||
| 灬 | U+2ED4 | 四点底 | 热→灬执 |
|
||||
| 爪 | U+2ED5 | 爪字头 | 爬→爪巴 |
|
||||
| 父 | U+2ED6 | 父字头 | 爸→父巴 |
|
||||
| 爻 | U+2ED7 | 爻 | 爽→爻爻 |
|
||||
| 爿 | U+2ED8 | 爿 | 壮→丬士 |
|
||||
| 片 | U+2ED9 | 片字旁 | 版→片反 |
|
||||
| 牙 | U+2EDA | 牙 | 雅→牙隹 |
|
||||
| 牛 | U+2EDB | 牛 | 牧→牛攵 |
|
||||
| 犬 | U+2EDC | 犬字旁 | 犯→犭㔾 |
|
||||
| 犭 | U+2EDD | 反犬旁 | 犯→犭㔾 |
|
||||
| 玄 | U+2EDE | 玄 | 率→玄幺 |
|
||||
| 玉 | U+2EDF | 玉字旁 | 理→王里 |
|
||||
| 瓜 | U+2EE0 | 瓜 | 瓢→瓜票 |
|
||||
| 瓦 | U+2EE1 | 瓦字旁 | 瓶→瓦并 |
|
||||
| 甘 | U+2EE2 | 甘 | 甚→甘匹 |
|
||||
| 生 | U+2EE3 | 生 | 甥→生男 |
|
||||
| 用 | U+2EE4 | 用 | 甭→不用 |
|
||||
| 田 | U+2EE5 | 田字旁 | 略→田各 |
|
||||
| 疋 | U+2EE6 | 疋 | 疑→疋走 |
|
||||
| 疒 | U+2EE7 | 病字头 | 病→疒丙 |
|
||||
| 癶 | U+2EE8 | 癶 | 登→癶豆 |
|
||||
| 白 | U+2EE9 | 白字旁 | 百→白一 |
|
||||
| 皮 | U+2EEA | 皮字旁 | 波→皮 |
|
||||
| 皿 | U+2EEB | 皿字底 | 盘→皿舟 |
|
||||
| 目 | U+2EEC | 目字旁 | 眼→目艮 |
|
||||
| 矛 | U+2EED | 矛 | 矜→矛今 |
|
||||
| 矢 | U+2EEE | 矢字旁 | 知→矢口 |
|
||||
| 石 | U+2EEF | 石字旁 | 矿→石广 |
|
||||
| 礻 | U+2EF0 | 示字旁 | 社→礻土 |
|
||||
| 禸 | U+2EF1 | 禸 | 禹→禸虫 |
|
||||
| 禾 | U+2EF2 | 禾字旁 | 和→禾口 |
|
||||
| 穴 | U+2EF3 | 穴宝盖 | 空→穴工 |
|
||||
| 立 | U+2EF4 | 立字旁 | 站→立占 |
|
||||
| 竹 | U+2EF5 | 竹字头 | 笔→竹毛 |
|
||||
| 米 | U+2EF6 | 米字旁 | 粉→米分 |
|
||||
| 糸 | U+2EF7 | 糸 | 红→糸工 |
|
||||
| 缶 | U+2EF8 | 缶字旁 | 缸→缶工 |
|
||||
| 网 | U+2EF9 | 网字头 | 罗→网夕 |
|
||||
| 羊 | U+2EFA | 羊字头 | 美→羊大 |
|
||||
| 羽 | U+2EFB | 羽字头 | 翅→羽支 |
|
||||
| 老 | U+2EFC | 老字头 | 考→老丂 |
|
||||
| 而 | U+2EFD | 而 | 耐→而寸 |
|
||||
| 耒 | U+2EFE | 耒 | 耕→耒井 |
|
||||
| 耳 | U+2EFF | 耳字旁 | 聪→耳总 |
|
||||
| 聿 | U+2F00 | 聿 | 肃→聿 |
|
||||
| 肉 | U+2F01 | 肉月旁 | 脚→肉却 |
|
||||
| 臣 | U+2F02 | 臣字旁 | 卧→臣卜 |
|
||||
| 自 | U+2F03 | 自字头 | 臭→自犬 |
|
||||
| 至 | U+2F04 | 至字旁 | 致→至攵 |
|
||||
| 臼 | U+2F05 | 臼字旁 | 舅→臼男 |
|
||||
| 舌 | U+2F06 | 舌字旁 | 活→舌 |
|
||||
| 舛 | U+2F07 | 舛 | 舞→舛 |
|
||||
| 舟 | U+2F08 | 舟字旁 | 船→舟几 |
|
||||
| 艮 | U+2F09 | 艮 | 良→艮 |
|
||||
| 色 | U+2F0A | 色 | 艳→色 |
|
||||
| 艸 | U+2F0B | 艸 | 花→艸化 |
|
||||
| 虍 | U+2F0C | 虎字头 | 虎→虍几 |
|
||||
| 虫 | U+2F0D | 虫字旁 | 蚊→虫文 |
|
||||
| 血 | U+2F0E | 血字旁 | 衅→血半 |
|
||||
| 行 | U+2F0F | 行字旁 | 街→行圭 |
|
||||
| 衣 | U+2F10 | 衣字旁 | 袋→衣代 |
|
||||
| 襾 | U+2F11 | 西字头 | 西→襾 |
|
||||
| 覀 | U+2F12 | 西字头 | 要→覀女 |
|
||||
| 西 | U+2F13 | 西 | 栖→西木 |
|
||||
| 見 | U+2F14 | 見 | 观→見又 |
|
||||
| 角 | U+2F15 | 角字旁 | 解→角刀 |
|
||||
| 言 | U+2F16 | 言字旁 | 语→言吾 |
|
||||
| 谷 | U+2F17 | 谷字旁 | 俗→谷 |
|
||||
| 豆 | U+2F18 | 豆字旁 | 豌→豆宛 |
|
||||
| 豕 | U+2F19 | 豕 | 家→宀豕 |
|
||||
| 豸 | U+2F1A | 豸字旁 | 豹→豸勺 |
|
||||
| 貝 | U+2F1B | 贝字旁 | 赌→贝者 |
|
||||
| 赤 | U+2F1C | 赤字旁 | 赫→赤赤 |
|
||||
| 走 | U+2F1D | 走字旁 | 起→走己 |
|
||||
| 足 | U+2F1E | 足字旁 | 跑→足包 |
|
||||
| 身 | U+2F1F | 身字旁 | 射→身寸 |
|
||||
| 車 | U+2F20 | 车字旁 | 轮→车仑 |
|
||||
| 辛 | U+2F21 | 辛字旁 | 辣→辛束 |
|
||||
| 辰 | U+2F22 | 辰 | 辱→辰寸 |
|
||||
| 辵 | U+2F23 | 辵 | 进→辵井 |
|
||||
| 邑 | U+2F24 | 右耳旁 | 都→者邑 |
|
||||
| 酉 | U+2F25 | 酉字旁 | 醉→酉卒 |
|
||||
| 釆 | U+2F26 | 釆 | 释→釆又 |
|
||||
| 里 | U+2F27 | 里字旁 | 野→里予 |
|
||||
| 金 | U+2F28 | 金字旁 | 钱→钅戋 |
|
||||
| 钅 | U+2F29 | 钅 | 钱→钅戋 |
|
||||
| 長 | U+2F2A | 长字旁 | 张→长弓 |
|
||||
| 門 | U+2F2B | 门字框 | 问→門口 |
|
||||
| 阜 | U+2F2C | 左耳旁 | 阳→阜日 |
|
||||
| 隹 | U+2F2D | 隹字旁 | 雀→小隹 |
|
||||
| 雨 | U+2F2E | 雨字头 | 雪→雨彐 |
|
||||
| 靑 | U+2F2F | 青字旁 | 清→青 |
|
||||
| 非 | U+2F30 | 非字旁 | 靠→非告 |
|
||||
| 面 | U+2F31 | 面 | 靥→面厌 |
|
||||
| 革 | U+2F32 | 革字旁 | 鞋→革圭 |
|
||||
| 韋 | U+2F33 | 韦字旁 | 韩→韦干 |
|
||||
| 韭 | U+2F34 | 韭 | 韮→韭 |
|
||||
| 音 | U+2F35 | 音字旁 | 韵→音匀 |
|
||||
| 頁 | U+2F36 | 页字旁 | 顶→丁頁 |
|
||||
| 風 | U+2F37 | 风字旁 | 飘→風票 |
|
||||
| 飛 | U+2F38 | 飞字旁 | 翼→飛異 |
|
||||
| 食 | U+2F39 | 食字旁 | 饭→食反 |
|
||||
| 首 | U+2F3A | 首字旁 | 馗→首九 |
|
||||
| 香 | U+2F3B | 香字旁 | 馨→香声 |
|
||||
| 馬 | U+2F3C | 马字旁 | 骑→馬奇 |
|
||||
| 骨 | U+2F3D | 骨字旁 | 髋→骨宽 |
|
||||
| 高 | U+2F3E | 高字旁 | 髙→高 |
|
||||
| 髟 | U+2F3F | 髟字头 | 髪→髟犮 |
|
||||
| 鬥 | U+2F40 | 鬥 | 闹→鬥市 |
|
||||
| 鬲 | U+2F41 | 鬲 | 融→鬲虫 |
|
||||
| 鬼 | U+2F42 | 鬼字旁 | 魂→鬼云 |
|
||||
| 魚 | U+2F43 | 鱼字旁 | 鲜→魚羊 |
|
||||
| 鳥 | U+2F44 | 鸟字旁 | 鸡→鳥又 |
|
||||
| 黹 | U+2F45 | 黹 | 黜→黑出 |
|
||||
| 黑 | U+2F46 | 黑字旁 | 默→黑犬 |
|
||||
| 黹 | U+2F47 | 黹字旁 | 黼→黹 |
|
||||
| 黽 | U+2F48 | 黽 | 鼋→黽元 |
|
||||
| 鼎 | U+2F49 | 鼎 | 鼐→乃鼎 |
|
||||
| 鼓 | U+2F4A | 鼓字旁 | 鼙→鼓卑 |
|
||||
| 鼠 | U+2F4B | 鼠字旁 | 鼬→鼠由 |
|
||||
| 鼻 | U+2F4C | 鼻字旁 | 鼾→鼻干 |
|
||||
| 齊 | U+2F4D | 齐字旁 | 剂→齊刂 |
|
||||
| 齒 | U+2F4E | 齿字旁 | 龄→齒令 |
|
||||
| 龍 | U+2F4F | 龙字旁 | 聋→龍耳 |
|
||||
| 龜 | U+2F50 | 龟 | 亀→龜 |
|
||||
| 偏旁 | Unicode | 名称 | 示例 | 补充字符 |
|
||||
|------|---------|------|------|----------|
|
||||
| 亻 | U+2E80 | 单人旁 | 件→亻牛 | |
|
||||
| 牛 | U+2E81 | 牛字旁 | 件→亻牛 | |
|
||||
| 彳 | U+2E82 | 双人旁 | 行→彳亍 | |
|
||||
| 亍 | U+2E83 | 亍 | 行→彳亍 | |
|
||||
| 讠 | U+2E85 | 言字旁 | 语→讠吾 | |
|
||||
| 扌 | U+2E86 | 提手旁 | 打→扌丁 | |
|
||||
| 氵 | U+2E87 | 三点水 | 河→氵可 | |
|
||||
| 宀 | U+2E88 | 宝盖头 | 家→宀豕 | |
|
||||
| 辶 | U+2E89 | 走之底 | 进→辶井 | |
|
||||
| 纟 | U+2E8A | 绞丝旁 | 红→纟工 | |
|
||||
| 艹 | U+2E8B | 草字头 | 花→艹化 | |
|
||||
| 阝 | U+2E8C | 左耳旁 | 阳→阝日 | |
|
||||
| 阝 | U+2E8D | 右耳旁 | 都→阝者 | |
|
||||
| 氵 | U+2E8E | 冫 | 冷→冫令 | |
|
||||
| 欠 | U+2E8F | 欠字旁 | 次→欠欠 | |
|
||||
| 风 | U+2E90 | 风字旁 | 飘→风票 | |
|
||||
| 几 | U+2E91 | 几字旁 | 机→几木 | |
|
||||
| 勹 | U+2E92 | 包字头 | 包→勹巳 | |
|
||||
| 匚 | U+2E93 | 三框旁 | 医→匚矢 | |
|
||||
| 卩 | U+2E94 | 单耳旁 | 印→卩卩 | |
|
||||
| 厶 | U+2E95 | 私字头 | 公→厶八 | |
|
||||
| 又 | U+2E96 | 又字旁 | 双→又又 | |
|
||||
| 囗 | U+2E97 | 大口框 | 国→囗玉 | |
|
||||
| 土 | U+2E98 | 土字旁 | 地→土也 | |
|
||||
| 士 | U+2E99 | 士字旁 | 壮→士丬 | |
|
||||
| 夂 | U+2E9A | 折文旁 | 冬→夂冫 | |
|
||||
| 夊 | U+2E9B | 夊 | 夏→夊夂 | |
|
||||
| 夕 | U+2E9C | 夕字旁 | 外→夕卜 | |
|
||||
| 大 | U+2E9D | 大字头 | 天→大一 | |
|
||||
| 女 | U+2E9E | 女字旁 | 妈→女马 | |
|
||||
| 子 | U+2E9F | 子字旁 | 字→子宀 | |
|
||||
| 宀 | U+2EA0 | 宀 | 家→宀豕 | |
|
||||
| 寸 | U+2EA1 | 寸字旁 | 对→又寸 | |
|
||||
| 小 | U+2EA2 | 小字头 | 尖→小大 | |
|
||||
| 尢 | U+2EA3 | 尢 | 尤→尢 | |
|
||||
| 尸 | U+2EA4 | 尸字头 | 屋→尸至 | |
|
||||
| 屮 | U+2EA5 | 屮 | 屯→屮 | |
|
||||
| 山 | U+2EA6 | 山字旁 | 岩→山石 | |
|
||||
| 巛 | U+2EA7 | 三拐旁 | 巡→巛巛 | |
|
||||
| 工 | U+2EA8 | 工字旁 | 红→纟工 | |
|
||||
| 己 | U+2EA9 | 己字头 | 已→己 | |
|
||||
| 巳 | U+2EAA | 巳 | 巴→巳 | |
|
||||
| 巾 | U+2EAB | 巾字旁 | 布→巾 | |
|
||||
| 干 | U+2EAC | 干 | 平→干 | |
|
||||
| 幺 | U+2EAD | 幺 | 幻→幺 | |
|
||||
| 广 | U+2EA4 | 广字头 | 座→广坐 | |
|
||||
| 廴 | U+2EAF | 建之底 | 建→廴聿 | |
|
||||
| 廾 | U+2EB0 | 廾 | 弃→廾廾 | |
|
||||
| 弋 | U+2EB1 | 弋 | 式→弋 | |
|
||||
| 弓 | U+2EB2 | 弓字旁 | 弹→弓单 | |
|
||||
| 彐 | U+2EB3 | 彐 | 归→彐彐 | |
|
||||
| 彡 | U+2EB4 | 三撇旁 | 形→彡开 | |
|
||||
| 彳 | U+2EB5 | 彳 | 行→彳亍 | |
|
||||
| 心 | U+2EB6 | 心字底 | 想→心相 | |
|
||||
| 忄 | U+2EB7 | 竖心旁 | 忙→忄亡 | |
|
||||
| 戈 | U+2EB8 | 戈字旁 | 战→占戈 | |
|
||||
| 戶 | U+2EB9 | 户字头 | 所→戶斤 | |
|
||||
| 手 | U+2EBA | 手字旁 | 拿→合手 | |
|
||||
| 扌 | U+2EBB | 扌 | 打→扌丁 | |
|
||||
| 支 | U+2EBC | 支 | 改→支攵 | |
|
||||
| 攴 | U+2EBD | 攴 | 敲→攴高 | |
|
||||
| 攵 | U+2EBE | 反文旁 | 敏→攵每 | |
|
||||
| 文 | U+2EBF | 文 | 斋→文而 | |
|
||||
| 斗 | U+2EC0 | 斗字旁 | 料→米斗 | |
|
||||
| 斤 | U+2EC1 | 斤字旁 | 新→亲斤 | |
|
||||
| 方 | U+2EC2 | 方字旁 | 放→方攵 | |
|
||||
| 无 | U+2EC3 | 无 | 既→无旡 | |
|
||||
| 旡 | U+2EC4 | 既字头 | 既→旡旡 | |
|
||||
| 日 | U+2EC5 | 日字旁 | 晴→日青 | |
|
||||
| 曰 | U+2EC6 | 曰 | 曲→曰 | |
|
||||
| 月 | U+2EC7 | 月字旁 | 腿→月退 | |
|
||||
| 木 | U+2EC8 | 木字旁 | 林→木木 | |
|
||||
| 欠 | U+2EC9 | 欠 | 次→欠欠 | |
|
||||
| 止 | U+2ECA | 止字旁 | 步→止少 | |
|
||||
| 歹 | U+2ECB | 歹字旁 | 死→歹匕 | |
|
||||
| 殳 | U+2ECC | 殳 | 段→殳几 | |
|
||||
| 毋 | U+2ECD | 毋 | 每→毋母 | |
|
||||
| 比 | U+2ECE | 比 | 毕→比十 | |
|
||||
| 毛 | U+2ECF | 毛字旁 | 毡→毛 | |
|
||||
| 氏 | U+2ED0 | 氏 | 民→氏 | |
|
||||
| 气 | U+2ED1 | 气字头 | 氛→气分 | |
|
||||
| 水 | U+2ED2 | 水字旁 | 河→水可 | |
|
||||
| 火 | U+2ED3 | 火字旁 | 灯→火丁 | |
|
||||
| 灬 | U+2ED4 | 四点底 | 热→灬执 | |
|
||||
| 爪 | U+2ED5 | 爪字头 | 爬→爪巴 | |
|
||||
| 父 | U+2ED6 | 父字头 | 爸→父巴 | |
|
||||
| 爻 | U+2ED7 | 爻 | 爽→爻爻 | |
|
||||
| 爿 | U+2ED8 | 爿 | 壮→丬士 | |
|
||||
| 片 | U+2ED9 | 片字旁 | 版→片反 | |
|
||||
| 牙 | U+2EDA | 牙 | 雅→牙隹 | |
|
||||
| 牛 | U+2EDB | 牛 | 牧→牛攵 | |
|
||||
| 犬 | U+2EDC | 犬字旁 | 犯→犭㔾 | |
|
||||
| 犭 | U+2EDD | 反犬旁 | 犯→犭㔾 | |
|
||||
| 玄 | U+2EDE | 玄 | 率→玄幺 | |
|
||||
| 玉 | U+2EDF | 玉字旁 | 理→王里 | |
|
||||
| 瓜 | U+2EE0 | 瓜 | 瓢→瓜票 | |
|
||||
| 瓦 | U+2EE1 | 瓦字旁 | 瓶→瓦并 | |
|
||||
| 甘 | U+2EE2 | 甘 | 甚→甘匹 | |
|
||||
| 生 | U+2EE3 | 生 | 甥→生男 | |
|
||||
| 用 | U+2EE4 | 用 | 甭→不用 | |
|
||||
| 田 | U+2EE5 | 田字旁 | 略→田各 | |
|
||||
| 疋 | U+2EE6 | 疋 | 疑→疋走 | |
|
||||
| 疒 | U+2EE7 | 病字头 | 病→疒丙 | |
|
||||
| 癶 | U+2EE8 | 癶 | 登→癶豆 | |
|
||||
| 白 | U+2EE9 | 白字旁 | 百→白一 | |
|
||||
| 皮 | U+2EEA | 皮字旁 | 波→皮 | |
|
||||
| 皿 | U+2EEB | 皿字底 | 盘→皿舟 | |
|
||||
| 目 | U+2EEC | 目字旁 | 眼→目艮 | |
|
||||
| 矛 | U+2EED | 矛 | 矜→矛今 | |
|
||||
| 矢 | U+2EEE | 矢字旁 | 知→矢口 | |
|
||||
| 石 | U+2EEF | 石字旁 | 矿→石广 | |
|
||||
| 礻 | U+2EF0 | 示字旁 | 社→礻土 | |
|
||||
| 禸 | U+2EF1 | 禸 | 禹→禸虫 | |
|
||||
| 禾 | U+2EF2 | 禾字旁 | 和→禾口 | |
|
||||
| 穴 | U+2EF3 | 穴宝盖 | 空→穴工 | |
|
||||
| 立 | U+2EF4 | 立字旁 | 站→立占 | |
|
||||
| 竹 | U+2EF5 | 竹字头 | 笔→竹毛 | |
|
||||
| 米 | U+2EF6 | 米字旁 | 粉→米分 | |
|
||||
| 糸 | U+2EF7 | 糸 | 红→糸工 | |
|
||||
| 缶 | U+2EF8 | 缶字旁 | 缸→缶工 | |
|
||||
| 网 | U+2EF9 | 网字头 | 罗→网夕 | |
|
||||
| 羊 | U+2EFA | 羊字头 | 美→羊大 | |
|
||||
| 羽 | U+2EFB | 羽字头 | 翅→羽支 | |
|
||||
| 老 | U+2EFC | 老字头 | 考→老丂 | |
|
||||
| 而 | U+2EFD | 而 | 耐→而寸 | |
|
||||
| 耒 | U+2EFE | 耒 | 耕→耒井 | |
|
||||
| 耳 | U+2EFF | 耳字旁 | 聪→耳总 | |
|
||||
| 聿 | U+2F00 | 聿 | 肃→聿 | |
|
||||
| 肉 | U+2F01 | 肉月旁 | 脚→肉却 | |
|
||||
| 臣 | U+2F02 | 臣字旁 | 卧→臣卜 | |
|
||||
| 自 | U+2F03 | 自字头 | 臭→自犬 | |
|
||||
| 至 | U+2F04 | 至字旁 | 致→至攵 | |
|
||||
| 臼 | U+2F05 | 臼字旁 | 舅→臼男 | |
|
||||
| 舌 | U+2F06 | 舌字旁 | 活→舌 | |
|
||||
| 舛 | U+2F07 | 舛 | 舞→舛 | |
|
||||
| 舟 | U+2F08 | 舟字旁 | 船→舟几 | |
|
||||
| 艮 | U+2F09 | 艮 | 良→艮 | |
|
||||
| 色 | U+2F0A | 色 | 艳→色 | |
|
||||
| 艸 | U+2F0B | 艸 | 花→艸化 | |
|
||||
| 虍 | U+2F0C | 虎字头 | 虎→虍几 | |
|
||||
| 虫 | U+2F0D | 虫字旁 | 蚊→虫文 | |
|
||||
| 血 | U+2F0E | 血字旁 | 衅→血半 | |
|
||||
| 行 | U+2F0F | 行字旁 | 街→行圭 | |
|
||||
| 衣 | U+2F10 | 衣字旁 | 袋→衣代 | |
|
||||
| 襾 | U+2F11 | 西字头 | 西→襾 | |
|
||||
| 覀 | U+2F12 | 西字头 | 要→覀女 | |
|
||||
| 西 | U+2F13 | 西 | 栖→西木 | |
|
||||
| 見 | U+2F14 | 見 | 观→見又 | |
|
||||
| 角 | U+2F15 | 角字旁 | 解→角刀 | |
|
||||
| 言 | U+2F16 | 言字旁 | 语→言吾 | |
|
||||
| 谷 | U+2F17 | 谷字旁 | 俗→谷 | |
|
||||
| 豆 | U+2F18 | 豆字旁 | 豌→豆宛 | |
|
||||
| 豕 | U+2F19 | 豕 | 家→宀豕 | |
|
||||
| 豸 | U+2F1A | 豸字旁 | 豹→豸勺 | |
|
||||
| 貝 | U+2F1B | 贝字旁 | 赌→贝者 | |
|
||||
| 赤 | U+2F1C | 赤字旁 | 赫→赤赤 | |
|
||||
| 走 | U+2F1D | 走字旁 | 起→走己 | |
|
||||
| 足 | U+2F1E | 足字旁 | 跑→足包 | |
|
||||
| 身 | U+2F1F | 身字旁 | 射→身寸 | |
|
||||
| 車 | U+2F20 | 车字旁 | 轮→车仑 | |
|
||||
| 辛 | U+2F21 | 辛字旁 | 辣→辛束 | |
|
||||
| 辰 | U+2F22 | 辰 | 辱→辰寸 | |
|
||||
| 辵 | U+2F23 | 辵 | 进→辵井 | |
|
||||
| 邑 | U+2F24 | 右耳旁 | 都→者邑 | |
|
||||
| 酉 | U+2F25 | 酉字旁 | 醉→酉卒 | |
|
||||
| 釆 | U+2F26 | 釆 | 释→釆又 | |
|
||||
| 里 | U+2F27 | 里字旁 | 野→里予 | |
|
||||
| 金 | U+2F28 | 金字旁 | 钱→钅戋 | |
|
||||
| 钅 | U+2F29 | 钅 | 钱→钅戋 | |
|
||||
| 長 | U+2F2A | 长字旁 | 张→长弓 | |
|
||||
| 門 | U+2F2B | 门字框 | 问→門口 | |
|
||||
| 阜 | U+2F2C | 左耳旁 | 阳→阜日 | |
|
||||
| 隹 | U+2F2D | 隹字旁 | 雀→小隹 | |
|
||||
| 雨 | U+2F2E | 雨字头 | 雪→雨彐 | |
|
||||
| 靑 | U+2F2F | 青字旁 | 清→青 | |
|
||||
| 非 | U+2F30 | 非字旁 | 靠→非告 | |
|
||||
| 面 | U+2F31 | 面 | 靥→面厌 | |
|
||||
| 革 | U+2F32 | 革字旁 | 鞋→革圭 | |
|
||||
| 韋 | U+2F33 | 韦字旁 | 韩→韦干 | |
|
||||
| 韭 | U+2F34 | 韭 | 韮→韭 | |
|
||||
| 音 | U+2F35 | 音字旁 | 韵→音匀 | |
|
||||
| 頁 | U+2F36 | 页字旁 | 顶→丁頁 | |
|
||||
| 風 | U+2F37 | 风字旁 | 飘→風票 | |
|
||||
| 飛 | U+2F38 | 飞字旁 | 翼→飛異 | |
|
||||
| 食 | U+2F39 | 食字旁 | 饭→食反 | |
|
||||
| 首 | U+2F3A | 首字旁 | 馗→首九 | |
|
||||
| 香 | U+2F3B | 香字旁 | 馨→香声 | |
|
||||
| 馬 | U+2F3C | 马字旁 | 骑→馬奇 | |
|
||||
| 骨 | U+2F3D | 骨字旁 | 髋→骨宽 | |
|
||||
| 高 | U+2F3E | 高字旁 | 髙→高 | |
|
||||
| 髟 | U+2F3F | 髟字头 | 髪→髟犮 | |
|
||||
| 鬥 | U+2F40 | 鬥 | 闹→鬥市 | |
|
||||
| 鬲 | U+2F41 | 鬲 | 融→鬲虫 | |
|
||||
| 鬼 | U+2F42 | 鬼字旁 | 魂→鬼云 | |
|
||||
| 魚 | U+2F43 | 鱼字旁 | 鲜→魚羊 | |
|
||||
| 鳥 | U+2F44 | 鸟字旁 | 鸡→鳥又 | |
|
||||
| 黹 | U+2F45 | 黹 | 黜→黑出 | |
|
||||
| 黑 | U+2F46 | 黑字旁 | 默→黑犬 | |
|
||||
| 黹 | U+2F47 | 黹字旁 | 黼→黹 | |
|
||||
| 黽 | U+2F48 | 黽 | 鼋→黽元 | |
|
||||
| 鼎 | U+2F49 | 鼎 | 鼐→乃鼎 | |
|
||||
| 鼓 | U+2F4A | 鼓字旁 | 鼙→鼓卑 | |
|
||||
| 鼠 | U+2F4B | 鼠字旁 | 鼬→鼠由 | |
|
||||
| 鼻 | U+2F4C | 鼻字旁 | 鼾→鼻干 | |
|
||||
| 齊 | U+2F4D | 齐字旁 | 剂→齊刂 | |
|
||||
| 齒 | U+2F4E | 齿字旁 | 龄→齒令 | |
|
||||
| 龍 | U+2F4F | 龙字旁 | 聋→龍耳 | |
|
||||
| 龜 | U+2F50 | 龟 | 亀→龜 | |
|
||||
|
||||
## 使用说明
|
||||
|
||||
1. bot 启动时读取此文件,解析偏旁表构建列表
|
||||
2. OCR 结果统计偏旁出现次数
|
||||
3. 偏旁数 ≥ 3 → 整段丢弃,不进知识库
|
||||
4. 新增漏网偏旁:编辑此文件添加条目,重启 bot 生效
|
||||
1. bot 启动时读取此文件,解析偏旁表构建偏旁→补充字符映射
|
||||
2. OCR 结果检测偏旁字符:
|
||||
- 若偏旁有补充字符(非空)→ 将偏旁替换为补充字符,继续处理
|
||||
- 若偏旁无补充字符(空)→ 整段丢弃,不进知识库
|
||||
3. 维护方式:编辑此文件添加/删除偏旁条目,填写补充字符(若已知正确汉字),重启 bot 生效
|
||||
|
||||
Reference in New Issue
Block a user