先说结论
早期语言模型也得先把文字改写成数字,程序才能分类、检索或计算相似度。有两种方式转成数字
- ① 词频统计:把一整条文本直接变成向量。
- 先定一个词表,再记录每个词出现了几次。
- 代价是从一开始就不看词序。
- ②
word2vec:把每个词变成向量。- 它从大量文本的邻近词关系里,为词表中的每个词学一串固定数字。
- 之后还要另想办法,才能把多个词向量
合成一句话的向量。
“词袋模型”(Bag of Words,BoW)是词频统计的常见叫法。这个名字容易让人以为有什么“装袋”机制;其实重点只有一个:它把一句话当成一堆不分顺序的词来计数。下面统一叫“词频统计”。
这篇只回答一个问题:售后系统把一条工单变成
数字后,原句里哪些信息还在,哪些已经丢了。
案例:两条只能走相反流程的工单
售后自动分流收到两条工单:
text
A:支付已经扣款,但订单没有生成。
B:支付没有扣款,但订单已经生成。- A 要查扣款成功后为什么没有建单;B 要查为什么没有扣款却出现了订单。
- 两条工单要走相反的排查流程。
- 数字表示若把它们变成同一个输入,后续分类器就没有机会分开它们。
词频统计:文本直接变成计数
- 它把文本变成向量的关系是:
text
工单文字 → 切成 Token → 按固定词表计数 → 词频向量
第一步不是理解句意,而是把连续文字拆成可以计数的 Token。
- Token 是系统拿来计数的文字片段。

词表决定向量的每一个位置分别代表哪个 Token。
- 固定词表决定向量的每个位置分别代表哪个词。

按固定词表排好词频后,文字第一次变成固定长度的数字数组。
词频向量只填写“这个词出现几次”,不填写它出现在句子的什么位置。- 按下面的教学切分,A、B 会变成同一串数字:
text
词表:支付 已经 扣款 但 订单 没有 生成
A: 1 1 1 1 1 1 1
B: 1 1 1 1 1 1 1- A、B 的词和次数相同,词频向量也相同。
- “没有”否定的是“扣款”还是“生成”,没有进入向量。
- “已经扣款”和“订单没有生成”分别出现在哪个位置,也没有进入向量。
- 这就是它适合关键词统计、却不能单独承担这类工单分流的原因。
- A、B 不是词不够,而是词之间的顺序和关系没有保住。
word2vec:先从邻近词学出词向量
它训练词向量的关系是:
text
大量句子 → 中心词和邻近词 → 预测任务 → 每个词的固定词向量
word2vec不是人工给词标属性,而是用邻近词预测反复调整每个词的坐标。
- 它不只数词,而是在大量句子里反复学习“一个词周围通常会出现哪些词”。
- 它要解决的是词频统计没有解决的另一件事:两个不同的词能不能按相似程度比较。
- 最终,词表中的
每个词都有一行数字:
- 最终,词表中的
text
扣款 -> [0.14, -0.62, 0.08, ...]
订单 -> [-0.31, 0.21, 0.57, ...]词向量的每一维不是人写好的 “支付程度” 或 “金额程度” ;它是训练为了做好邻近词预测自己调出来的
一串坐标。

图里把坐标暂时画成可命名属性,只为建立直觉;真实词向量的维度更多,也不一定能直接命名。
- 这让
word2vec比词频统计多保住了词与词的相似关系。====> 换言之,可计算了- “扣款”和“支付”常在相似语境出现,向量通常会更接近。
- 它们不再只是词表中两个毫无关系的位置。
- 坐标之间可以计算
距离或余弦相似度;距离更近,通常表示它们在训练语料里的用法更相近。 - 这不是在断言两个词绝对同义,而是让程序能用一个数值比较“它们像不像”。

真实向量空间的维度很高;图压成二维,只为了让“距离更近”这件事看得见。
但一个词 “苹果” 只有一个坐标,仍然不够
- 但它的词向量是
静态的。- 同一个词无论出现在什么句子里,都先查到同一行向量。
- “苹果很好吃” 和 “苹果发布了新手机”中的“苹果”,
word2vec先给出的都是同一行数字,同一串坐标。 - 所以它还不会根据当前句子,改变一个词的表示。
- “苹果”这个案例说明的问题,和 A、B 不一样。
- A、B 的问题是整句话的词序与否定关系丢了。
- “苹果”的问题是同一个词在不同语境有不同含义,却只有一个
固定坐标。
- 所以下一步需要的是上下文化表示。
- 同一个 Token 要结合句中其它 Token,算出不同的向量。
- 这样才有机会让“没有”连到它否定的事实,也让两个“苹果”落到不同位置。
- 是否真的分对,仍要用真实工单数据评测。
考考你
为什么词频统计会把 A、B 变成同一个向量?
- 它只记录词表中每个词出现几次。
- A、B 的词和次数相同。
- 词序和否定关系没有进入向量,所以输入完全一样。
word2vec 学到的到底是什么?
- 它为词表里的每个词学习一行稠密数字,也就是词向量。
- 常见训练方式是用一个词预测窗口内的周围词,或反过来预测中心词。
- 词向量之间可以计算距离或余弦相似度,用来比较两个词的用法是否接近。
为什么 word2vec 仍分不清两个“苹果”?
word2vec给每个词固定一行向量。- 两句话里的“苹果”都查到同一行坐标。
- 它没有根据
当前句子改写这个词的表示,所以无法区分水果和品牌。
参考
- 《图解大模型:生成式 AI 原理与实战》第 1 章,第 5—9 页。
- Mikolov 等:Efficient Estimation of Word Representations in Vector Space:
word2vec的 CBOW 与 Skip-gram 原始论文。