今天我在讲银行密钥和收单业务。
语音识别把「银联收单」写成了「人脸收单」。我在纠正窗口里把文字改对,下面出现的候选却不是我需要的完整业务词,而是孤立的「银联」,旁边还混着几段很长的句子。
我需要的是:
人脸收单 → 银联收单
只保存变化的字,为什么不够
从字符差异看,「人脸收单」和「银联收单」只有前两个字不同。原来的分析因此只看见:
人脸 → 银联
这条关系不但丢掉了“收单”这个业务含义,而且很危险。以后真的说到人脸识别时,系统没有理由把所有「人脸」都改成「银联」。
正确的学习单位不是变化最小的字符,而是能够安全复用的完整业务短语。两边共同的「收单」不是多余信息,正是它限定了这次替换应该发生在哪个语境里。
共同上下文也是关系的一部分
0.1.114 会检查短中文差异后面的共同内容。如果两边紧跟至少两个相同汉字,就把这段上下文并回关系:
人脸 + 收单 → 银联 + 收单
最终保存为:
人脸收单 → 银联收单
只有一个「的」之类的语法字还不够,不会为了凑长度拼出半截短语。用户仍然能在纠正窗口里看到完整两边,勾选并保存以后关系才生效。
词库也不能把句子当成词
这次截图还暴露了另一个问题:纠正文字里的内部空格,让一整段中文绕过了词长限制,被当成候选展示。
现在只要候选里含有汉字,就要遵守中文词长边界;整句碎片会被过滤。如果完整关系已经给出了「银联收单」,系统还会压掉它的短前缀「银联」,把真正可复用的业务词放在前面。
让语音输入越用越准,不是把所有改过的字符都收集起来。关键是找出下一次还能安全使用的那条关系,并且把它完整地展示给用户确认。