跳到主内容
快讯直播
AI智模界
AI 词典

词袋模型:只数词频,不问语序

一句话定义:词袋模型(Bag of Words,简称 BoW)是把一段文本变成一串数字的最朴素办法——把所有词丢进一个"袋子",只记每个词出现了几次,完全不管谁先谁后。

它是怎么运转的

流程只有两步。第一步,先扫一遍全部语料,把出现过的词收集成一张固定词表,比如 {我, 爱, 你, 苹果, 手机}。第二步,对每一句话,按词表顺序数一遍每个词出现了几次,得到一个与词表等长的向量。

拿两句话试试:

  • "我爱你" → [1, 1, 1, 0, 0]
  • "你爱我" → [1, 1, 1, 0, 0]

两句话的向量一模一样。这就是词袋的脾气:语序信息被彻底扔掉。

打个生活化的比方:去超市结账,小票上只写着"牛奶 ×1、苹果 ×2、盐 ×1",它不会记录你先拿的牛奶还是先拿的盐,也不会记录你把苹果放在了购物车哪个角落。词袋模型就是文本的小票——只统计商品和数量,不记录动线

和相邻概念的区别

很多人会把词袋模型和词嵌入(Word AI 词典:Embedding">Embedding,比如 word2vec、GloVe)搞混。两者的层级其实不一样:词袋描述的是"一整篇文档怎么表示",词嵌入描述的是"单个词怎么表示成有语义的稠密向量"。

对比项词袋模型词嵌入
表示对象整篇文档单个词
向量维度等于词表大小,动辄几万维通常几十到几百维
稠密程度极度稀疏,大量 0稠密,几乎没 0
语序完全忽略部分保留
语义相似度没有,"猫"和"狗"互相垂直有,相似词向量距离近

词袋也有小修补:用 TF-IDF(词频-逆文档频率)给"的""是"这类到处都出现的词降权,或者用二元语法(bigram)把相邻两个词绑成一个新特征,勉强找回一点语序。但骨架没变。

对从业者和普通人的意义

词袋模型今天依然是文本分类和检索的强基线。垃圾邮件识别、情感分析、新闻打标、关键词抽取,用词袋加一个逻辑回归(Logistic Regression),往往几分钟就能跑出相当能打的结果;搜索引擎早年靠 TF-IDF 加权加倒排索引做召回,本质上也是词袋的思路。

它的实际价值在于两点:便宜可解释。训练快、几乎不用调参,而且哪几个词把结果推高了,一眼就能看出来。更关键的是,如果词袋模型完全学不动,大概率是数据本身出了问题,而不是模型不够聪明——这时候上大模型只是把问题掩盖掉。

对普通人来说,理解词袋模型就能理解为什么老式搜索是"关键词匹配":搜"苹果手机"会命中同时含"苹果"和"手机"的页面,却搜不到只写了"iPhone"的那篇。这正是今天的搜索引擎和大模型要补上语义这一课的原因。至于具体产品现在做到哪一步,以官方页面为准。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。