当前位置: 首页 > 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.rkmt.cn/news/1467430.html

相关文章:

  • TCP/IP总结
  • 从PMOS高边开关故障解析MOSFET体二极管与开关电路设计
  • 2026年美妆品牌烂脸事件舆情处置危机公关最易犯的严正声明错误
  • 抖音无水印视频下载完全指南:从零开始掌握批量下载技术
  • 3PEAK思瑞浦 TP2301-TR SOT23-5 精密运放
  • PyTorch轻量猫狗分类实战包:35张标注图+可直接运行的训练与预测代码
  • 意式极简瓷砖推荐:马可波罗瓷砖怎么选?一篇看懂选购逻辑 - 资讯速览
  • AI工具学习路径规划:为什么87%的学习者3个月后放弃?3个致命误区必须今天避开
  • QQScreenShot独立版:无需QQ账号的截图神器使用指南
  • 如何快速配置思源宋体CN:免费商用字体的终极解决方案
  • 效率直接起飞!2026年必备AI论文网站榜单,毕业论文免费写还合规
  • PostgreSQL 技术日报 (5月9日)|亿级向量融合查询,内核 REPACK 机制迭代
  • 【CP-13】OSEK OS规范深度解读 - 汽车操作系统的基石
  • 告别环境冲突!用Anaconda为Python 3.8创建专属虚拟环境(保姆级图文指南)
  • BBDown:快速掌握B站视频下载的终极命令行工具
  • 2026论文写作工具红黑榜:一键生成论文工具怎么选?照着用就行!
  • MATLAB光学MTF分析工具包:一键生成模糊图像+参数化MTF曲线+PSF/FFT全流程可视化
  • 终极指南:如何用Nucleus Co-Op快速实现PC游戏分屏多人体验
  • 2026济南钻石回收全攻略:六家实体店实测,璀璨变现更璀璨 - 薛定谔的梨花猫
  • 多厂商LLM接入避坑指南:大模型接口参数统一标准化落地方案
  • 终极小说创作工具novelWriter:专业作家的完整写作工作流解决方案
  • 十大CRM汇总:适配不同类型企业运营管理系统盘点 - Joyky
  • 建筑防火门五金配件适配与防火等级规范
  • Windows安卓应用安装终极指南:告别臃肿模拟器,轻松安装APK文件
  • 用日常说话方式改3D场景:NeRF文本编辑工具包,带训练代码和可视化流程
  • 医学图像非刚性配轨准技术及4D重离子放疗计划应用【附代码】
  • Xilinx 下载器基础方案
  • 2026薪酬制度深度测评:这3家机构凭什么领跑行业?
  • 基于FPGA的D触发器设计-基础篇
  • 哈工程AI课设A*寻路系统:Java图形界面版(含双地图+源码+运行指南)