未登录词(OOV, Out-Of-Vocabulary) 是自然语言处理(NLP)中的核心概念,指的是在模型训练阶段未出现或未被收录到词典(Vocabulary)中的词汇。由于模型无法直接识别或处理这些词汇,它们通常会被标记为特殊的 UNK(Unknown)或 OOV 标记。
以下是关于未登录词的详细介绍:
1. 核心定义
未登录词(OOV)是指:
- 不在词典中:模型的词典是从训练数据中提取的高频词集合。训练时未出现的词,即为未登录词。
- 被归类为特殊符号:在基于词的模型(如 Word2Vec)中,这些词通常被统一映射为
[UNK](未知词)标记,而不是保留其原始语义。
2. 为什么会出现未登录词?
未登录词的产生主要源于自然语言的 多样性 和 长尾效应:
- 语言的无限创造性:人类语言可以不断产生新词(Neologisms),如“内卷”。
- 实体命名的无限性:人名、地名、公司名等专有名词数量庞大且不断更新,难以全部覆盖。
- 低频长尾词:在大规模语料库中,词频呈长尾分布,极少数词汇出现频率极低,导致它们被模型忽略。
3. 未登录词的处理策略
为了解决未登录词导致的信息丢失问题,NLP 社区发展了多种解决方案:
3.1 词汇切分技术(Subword Tokenization)
这是目前最主流的解决方案,通过将词语拆分为更小的子词单元来降低 OOV 的概率。
- BPE(Byte Pair Encoding):
- 原理:将词语拆分为字符组合的单元。例如,“国家”可能被切分为
国 + 家,即使模型未见过“国家”,只要见过“国”和“家”就能拼接。 - 应用:广泛用于机器翻译模型。
- 原理:将词语拆分为字符组合的单元。例如,“国家”可能被切分为
- WordPiece:
- 原理:类似于 BPE,但采用了不同的合并策略。它最著名的应用是 Google 的 BERT 模型。
- SentencePiece:
- 原理:它将词语视为 Unicode 字符序列,直接对字符序列进行分割,而不依赖空格。
- 优势:能够处理没有空格分词的语言(如中文、日文),同时支持多语言混合输入。
3.2 字符级模型(Character-level Models)
- 思路:将词语拆解为单个字符(如拼音、笔画或汉字),或者使用字形图像(如手写体识别)。
- 优势:在处理 OOV 时非常鲁棒,因为每个汉字或拼音都是基本单元。
- 劣势:需要更深的网络结构来捕获字符序列中的上下文语义。
3.3 语义推断(Semantic Inference)
- 原理:根据词的构词法(如前缀、后缀)或上下文语义,尝试推断未登录词的意义。
- 案例:对于词语“超脑”,模型可能根据前缀“超”理解为“超级”的含义。
4. 未登录词的危害与影响
未登录词如果处理不当,可能导致以下问题:
- 关键信息丢失:在新闻摘要或情感分析中,未登录词可能是核心实体或情感关键词(如“武汉封城”中的“武汉”)。
- 语义歧义:在机器翻译中,未登录词会导致翻译缺失或错误(如将“Windows”翻译成“窗户”)。
- 模型不稳定:过多的
[UNK]标记会导致模型对输入文本的敏感性下降,性能大幅下降。
5. 未来趋势
随着 大语言模型(LLM) 的发展,未登录词的定义正在发生变化:
- 模型内置词典的扩大:LLM 通常训练在极其庞大的语料库上,内置了巨大的词典。
- 向量化输入:最新的模型可能直接将字符或字节序列转化为向量,而不需要明确的词典划分,从而在理论上可以处理任何输入序列。
声明:文章均为AI生成,请谨慎辨别信息的真伪和可靠性!