更新于 2026年8月10日

词表/字典#


术语解释#

在机器学习和自然语言处理(NLP)中,词表(Vocabulary,又称字典)是连接自然语言与计算机数值计算的核心桥梁。 词表是将训练样本中所有不重复的词(或字、词元)提取出来,并按照一定顺序排列构成的有序集合。 它作为一种标准规范,用于遍历每个文本样本。

例如在词袋模型中,词表就是原始训练语料经过分词、去重后构成的有序集合,如下图所示。

词袋模型原理示意图
图中袋子里装的4个词以某种固定的顺序(如从上到下)便可以得到词表

通过词表,原始文本可以被映射为计算机可理解的索引序号或数值向量(如 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 模型中最终返回整个句子的向量化表示,如下图所示。

Qwen3 Embedding 模型原理图,展示文本输入、模型编码与向量输出过程
Qwen3 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)的模型中得到了很好的解决。


相关术语#

阅读 --

6.1 词袋模型

在本节中,我们首先介绍了第1种将文本转化为向量的词袋模型,接着介绍了一款常用的中文分词工具jieba库,并演示了如何通过jieba进行分词处理并进行词频统计;然后介绍了如何实现词袋模型的最后一步——向量化表示;

7.2 时序数据

时序数据建模入门,讲清什么是时序数据、RNN 适合处理哪些序列任务,以及典型应用场景。

10.8 BERT文本分类模型

经过前面两节内容的介绍,我们对于BERT模型的原理及其实现过程已经有了比较清晰的理解。同时,由于BERT是一个强大的预训练模型,因此我们可以直接基于谷歌发布的预训练参数将模型迁移到各个下游任务中进行微调学习。在这节内容中,我们将开始介绍第1 …

3.4 Qwen3 Embedding 模型介绍

本节围绕Qwen3 Embedding 模型介绍展开,重点介绍DashScopeEmbeddings 使用示例、Qwen3 Embedding 原理和Dashscope 使用示例等内容。