词表/字典#
术语解释#
在机器学习和自然语言处理(NLP)中,词表(Vocabulary,又称字典)是连接自然语言与计算机数值计算的核心桥梁。 词表是将训练样本中所有不重复的词(或字、词元)提取出来,并按照一定顺序排列构成的有序集合。 它作为一种标准规范,用于遍历每个文本样本。
例如在词袋模型中,词表就是原始训练语料经过分词、去重后构成的有序集合,如下图所示。

通过词表,原始文本可以被映射为计算机可理解的索引序号或数值向量(如 One-hot 编码、词嵌入)。
在深度学习或大模型中,通过不同的词元化方法及构造顺序,也会得到不同的词表。但是,词表在第一次构建完毕后便不会发生变化。
如下所示便是 Qwen3 Embedding 模型对应用到的词表前 110 个词元(Token),一共 151642 个:
{"!":0,"\"":1,"#":2,"$":3,"%":4,"&":5,"'":6,"(":7,")":8,"*":9,"+":10,",":11,"-":12,".":13,"/":14,"0":15,"1":16,
"2":17,"3":18,"4":19,"5":20,"6":21,"7":22,"8":23,"9":24,":":25,";":26,"<":27,"=":28,">":29,"?":30,"@":31,"A":32,
"B":33,"C":34,"D":35,"E":36,"F":37,"G":38,"H":39,"I":40,"J":41,"K":42,"L":43,"M":44,"N":45,"O":46,"P":47,"Q":48,
"R":49,"S":50,"T":51,"U":52,"V":53,"W":54,"X":55,"Y":56,"Z":57,"[":58,"\\":59,"]":60,"^":61,"_":62,"`":63,"a":64,
"b":65,"c":66,"d":67,"e":68,"f":69,"g":70,"h":71,"i":72,"j":73,"k":74,"l":75,"m":76,"n":77,"o":78,"p":79,"q":80,
"r":81,"s":82,"t":83,"u":84,"v":85,"w":86,"x":87,"y":88,"z":89,"{":90,"|":91,"}":92,"~":93,"¡":94,"¢":95,"£":96,
"¤":97,"¥":98,"¦":99,"§":100,"¨":101,"©":102,"ª":103,"«":104,"¬":105,"®":106,"¯":107,"°":108,"±":109,"²":110...}此时,当我们输入一段文字后,便可以利用 Qwen3 Embedding 模型将其转换为词表中对应的词元索引编号。
输入文本:鱻这两个生僻字的读音是什么
文本字符长度:13
词元编号:[100024, 119, 105932, 21287, 118134, 18600, 9370, 57553, 78685, 102021]
词元数量:10
词元内容:['�', '�', '这两个', '生', '僻', '字', '的', '读', '音', '是什么']在获取得到词元索引编号(token id)以后,再输入到 Embedding 模型中最终返回整个句子的向量化表示,如下图所示。
上述相关内容可以参见「3.2 文本切分策略:RAG 文档分块方法详解」 ,以及「3.4 Qwen Embedding模型:向量化能力与使用场景」。
总结就是,词表是 NLP 建模的底座,词表的设计直接决定了模型捕获语言丰富性的能力。在使用预训练模型时,必须严格载入其配套的词表文件,以确保权重参数与字符索引的正确对应。
出现动机#
-
数值化需求:计算机无法直接处理自然语言文本,需要通过词表将词语转换为对应的索引,才能进行后续的数学运算。
-
维度统一与控制:在建模过程中,需要保证每个样本的特征维度一致。词表确定了向量空间的固定长度,从而实现了数据标准化。
-
克服维度灾难:大规模语料可能产生数万个唯一词。通过统计词频并只选择出现频率最高的前 K 个词来构造词表,可以有效控制特征维度,防止内存溢出和计算开销过大。
优点缺点#
-
优点:
-
基础支撑性强:它是文本向量化(如词袋模型、TF-IDF、Word2Vec)的基础,使得文本分类、翻译和生成等任务成为可能。
-
灵活性高:词表可以根据任务需求以不同的粒度构建,例如字粒度(减少 OOV 风险)、词粒度(捕捉更强语义)或子词粒度(如 BPE 算法)。
-
支持特征权重评估:配合词表,模型可以考量词频(Count)或逆文档频率(TF-IDF)对文本表示的影响,从而区分词语的重要性。
-
模型迁移的基石:预训练模型(如 BERT)拥有固定的词表文件(如
vocab.txt),确保了微调任务与预训练阶段在词汇理解上的一致性。
-
-
缺点:
-
集外词(OOV)问题:一旦测试集中出现了词表未涵盖的词,模型只能将其标记为
[UNK],可能导致语义信息丢失。 -
稀疏性与计算开销:在处理高维文本时,简单的词袋表示会导致特征矩阵极其稀疏,浪费存储空间并增加计算复杂度。
-
静态性限制:传统词表在构建后即被“冻结”。对于新出现的流行语或专业术语,除非重新构建词表并训练模型,否则无法准确表达。不过这一点在后续使用字节对编码(Byte Pair Encoding, BPE)的模型中得到了很好的解决。
-
相关术语#
-
词元(token)
-
词向量