跳到主内容
快讯直播
AI智模界
AI 词典

OOV(词表外词):模型“不认识”的字,不等于不存在的词

一句话定义:OOV(Out-of-Vocabulary,词表外词)指的是在某个模型的词表(vocabulary)里找不到对应条目的词或字符——它说的是“这套词表没收录”,而不是“这个说法在语言里不存在”。

要理解 OOV,先看模型怎么“认字”。文本进模型之前,要先过分词器(tokenizer):把句子切成一个个 token,再查词表换成数字 ID。词表就是模型的认字本,规模通常在几万条量级。查得到,就有 ID;查不到,就是 OOV。

打个比方:老式功能机的通讯录只认常用字,你输入一个生僻字就显示方块。字本身当然存在,只是这台机器没给它留位置。换一台手机,同一个字可能就正常显示了——所以 OOV 是“相对于某个词表”的属性,不是词的固有属性。同一个词,对 A 模型是 OOV,对 B 模型可能不是。

这正是子词分词(subword tokenization)要解决的问题。BPE、WordPiece、SentencePiece 这类方法的思路是:与其为每个完整单词留一条记录,不如收录高频片段,遇到没见过的词就拆开拼。比如 tokenization 会被切成 token + ization 这样的常见片段;再退一步,还能到字符级甚至字节级(byte-level),理论上任何字符串都能被编码,OOV 率可以压到接近零。

但“能编码”不等于“能理解”。一个罕见专名被切成七八个碎片,模型看到的是一串语义稀薄的片段,效果自然打折。所以 OOV 的真正痛点不是报错,而是表示质量下降。

几个容易混淆的概念:

概念说的是什么关注点
OOV词表里没有这个条目分词器与词表覆盖
罕见词语料里出现次数很少数据分布
新词新造词、专名、拼写变体语言本身在变

罕见词可以不是 OOV(只要子词拼得出来),OOV 也不一定是新词(冷门专业术语对通用词表就是 OOV)。

对从业者的实际意义:词表大小是个权衡——词表大,嵌入参数多、低频词表示稀疏;词表小,序列变长、推理更贵。做垂直领域(法律、医疗、代码)时,通用分词器常把专业词切得稀碎,值得评估领域内继续训练分词器或扩充词表。上线后监控“每千字平均 token 数”是个便宜又灵敏的信号:数值突然升高,往往意味着来了词表没覆盖的输入。

对普通人:模型数错字符串里的字母、写错你公司名或产品型号,很多时候就是分词切碎导致的。给小众专名时多给一点上下文或解释,通常能明显改善结果。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。