当前位置: 首页 > news >正文

[智能体-273]:词袋模型(BoW)完整详解:背景 + 解决问题 + 原理 + 实例 + 应用

一、诞生背景

One-Hot 单字编码阶段

  1. One-Hot 只能对单个词语数字化,没办法把整段文本转为机器学习能计算的特征
  2. 机器学习(朴素贝叶斯、SVM、逻辑回归)只能接收数值向量,不能直接处理字符串
  3. 早期没有 Word2Vec、BERT,缺少文本向量化方案。

词袋(Bag-of-Words)应运而生:把整篇文档转为数字向量,打通「自然文本→机器数值特征」

时序链路:

ASCII→String→OneHot (单个词)→

BoW (整句向量化)→TF-IDF→Word2Vec→BERT→BGE

二、词袋要解决的核心问题

  1. 问题 1:原始字符串无法输入机器学习模型:计算机不能直接识别中文 / 英文句子,BoW 实现文本→数值向量
  2. 问题 2:OneHot 只能编码单个词,不能表示文档:BoW 基于全局词典,一次性完成整篇文档编码。
  3. 问题 3:快速低成本构建文本特征,无需神经网络训练:无监督、不用训练、规则统计,早年算力不足下最优落地方案

⚠️ 词袋不能解决:语序理解、词语语义关联(苹果 / 香蕉同类识别),这是后续 Word2Vec 解决的。

三、工作原理(核心:抛弃语序,只统计词出现频次)

四大执行步骤

  1. 文档分词:把句子切分成独立词语;
  2. 构建全局词典:所有文档词语去重,固定词典顺序;
  3. 词典长度 = 向量维度
  4. 逐文档统计每个词出现次数,填充向量

实操示例(手工演算)

向量的维度与单词的总数一致,每个维度代表一个单词,也就是说,每个单词都各自拥有一个维度的信息(用于单词的统计数量或频次),这样,每句话就拥有了在每个单词维度的投影信息(单词在句子中出现的频次)这就是文本向量的原型,在这里,不需要词向量,后者说,词向量相等于采用的onehot编码。

致命特性

完全舍弃语序:狗咬人人咬狗分词相同,词袋向量一模一样,无法区分语义。

四、词袋改进:TF-IDF(优化高频虚词权重)

普通 BoW只统计次数,「我、爱吃」这类高频通用词权重过大;

  • TF:词在当前文档出现频次
  • IDF:词在全部文档的稀缺度,越少出现权重越高作用:压低通用助词权重,放大专属关键词权重。

五、优缺点总结

优点

  1. 原理简单、实现快、不需要训练;
  2. 小样本、低算力环境快速生成文本特征。

缺点

  1. 丢失语序、语法信息;
  2. 无词语语义:苹果、香蕉同属水果,但向量无相似度;
  3. 词典越大,向量越稀疏、维度爆炸。

六、落地应用场景

  1. 垃圾邮件过滤:BoW 提取邮件关键词特征 + 朴素贝叶斯,经典工业老方案;
  2. 新闻分类:体育 / 财经 / 科技新闻分类基线模型;
  3. 早期搜索引擎关键词检索:基于词频粗筛选文档;
  4. 情感分析基线:影评好评 / 差评简易分类。

现状:高精度语义任务淘汰 BoW,改用 Word2Vec/BGE;简单分类、小样本仍可做基线对比。

七、Python 代码示例

python

运行

from sklearn.feature_extraction.text import CountVectorizer,TfidfVectorizer # 原始语料 corpus = [ "我爱吃苹果", "我爱吃香蕉", "苹果很甜" ] #1.基础词袋Count bow = CountVectorizer() bow_vec = bow.fit_transform(corpus).toarray() print("词典:",bow.get_feature_names_out()) print("词袋矩阵:\n",bow_vec) #2.TF-IDF词袋 tfidf = TfidfVectorizer() tf_vec = tfidf.fit_transform(corpus).toarray() print("TF-IDF矩阵:\n",tf_vec)

八、前后技术承接

  • BoW:计数向量化、无序、无语义
  • Word2Vec:上下文训练、稠密向量、近义词靠近,弥补词袋短板
  • BERT:动态向量、一词多义
  • BGE:段落整体语义表征
http://www.jsqmd.com/news/955804/

相关文章:

  • TCP/IP总结
  • 数据中心能效优化:基于CPU与RAM联合能耗模型的虚拟机整合策略
  • C++ CSP初赛 - 进制转换
  • 闲置瑞祥商联卡怎么回收处理更划算?分享一个都说好的方法 - 圆圆收
  • Recaf:现代Java字节码编辑器的完整指南 - 免费开源工具终极解决方案
  • 2026年美妆品牌烂脸事件舆情处置危机公关最易犯的严正声明错误
  • 从PMOS高边开关故障解析MOSFET体二极管与开关电路设计
  • 大模型相对位置编码层归零技术解析
  • Python入门:Python缩进规则与代码块规范
  • 3PEAK思瑞浦 TP2301-TR SOT23-5 精密运放
  • 从零开始:用BBDown打造你的个人B站视频库
  • AD9361射频收发器镜像抑制与LO泄露优化实战:从理论到硬件调校
  • MoocDownloader终极指南:三步轻松搞定中国大学MOOC离线下载
  • 2026济南黄金回收六大主流渠道深度测评,谁才是变现“真香”选择? - 薛定谔的梨花猫
  • 抖音无水印视频下载完全指南:从零开始掌握批量下载技术
  • 闲置名包如何高价变现?沈阳五家回收机构深度对比测评 - 开心测评
  • 免费桌面分区神器:用NoFences终结Windows桌面混乱的终极指南
  • PyTorch轻量猫狗分类实战包:35张标注图+可直接运行的训练与预测代码
  • SoC FPGA中SPI控制器设备树配置与Linux驱动加载实战
  • 论文党速看!2026实测靠谱的AI写作辅助软件|避坑版
  • 妙招分享,AI 导出鸭助力:手机版千问 文心 元宝 Kimi 里复制代码怎么用
  • AI+可穿戴设备健康预警准确率提升63%:三甲医院实测的5步数据闭环搭建法
  • QQScreenShot独立版:无需QQ账号的截图神器使用指南
  • 工程师技术写作实战指南:从选题到发布的完整工作流
  • AI工具学习路径规划:为什么87%的学习者3个月后放弃?3个致命误区必须今天避开
  • 意式极简瓷砖推荐:马可波罗瓷砖怎么选?一篇看懂选购逻辑 - 资讯速览
  • 如何快速配置思源宋体CN:免费商用字体的终极解决方案
  • Windows系统卡顿、更新失败、C盘爆满?Dism++帮你一键解决所有烦恼
  • 效率直接起飞!2026年必备AI论文网站榜单,毕业论文免费写还合规
  • PKSM存档管理器深度解析:从第一世代到第八世代的宝可梦存档解决方案