Tokenization
分类: NLP基础
Tokenization
定义
分词是将原始文本拆分为模型可处理的基本单元(token)的过程,是所有 NLP 系统的第一步预处理环节,直接影响词表大小、OOV(未登录词)处理和模型性能。
核心要点
词级分词(word-level):以空格/标点分割,词表大,OOV 问题严重(如未见过的专有名词)
字符级分词(character-level):词表极小(几十到几百),无 OOV 问题,但序列过长、语义粒度太细
子词分词(subword):在词级和字符级之间取平衡,是当前主流方案
子词方法的核心思想:高频词保留整词,低频词拆分为有意义的子词片段(如 “unhappiness” → “un” + “happi” + “ness”)
词表大小是关键超参数:太小导致序列过长,太大导致嵌入矩阵过大且低频 token 训练不充分
多语言场景下,字节级 BPE(如 GPT-2/3)可以处理任意 Unicode 文本,避免未知字符问题
代表工作
Sennrich et al. (2016): “Neural Machine Translation of Rare Words with Subword Units”,将 BPE 引入 NLP
Kudo (2018): “Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates”,提出 Unigram 分词
Kudo & Richardson (2018): SentencePiece,语言无关的子词分词工具