什么是词袋(Bag‑of‑Words,BoW)

AI解读 2小时前 硕雀
2 0

词袋Bag‑of‑Words,BoW)
词袋是一种把文本看作“词的集合(袋子)”的抽象概念。它不关注词语的顺序、句法结构或上下文,只记录每个词在文本中出现的次数或是否出现。词袋本身是一种表示方式,而词袋模型则是基于这种表示进行特征提取向量化并用于机器学习的完整流程。


1. 词袋模型的核心思想

  • 无序性:把文档视为词的多重集合(bag),忽略词序,只统计出现频率。
  • 稀疏向量:词汇表往往很大,而单篇文档实际出现的词很少,导致特征向量大多数维度为 0,形成稀疏矩阵
  • 特征化:每篇文档被映射为一个长度等于词汇表大小的向量,向量的每个维度对应词汇表中的一个词,值可以是二进制(是否出现)、计数(出现次数)或加权值(如 TF‑IDF)。

2. 构建词袋模型的步骤

步骤 说明 常用工具/方法
① 文本预处理 分词、去除停用词、词干/词形还原 jieba、NLTK、spaCy
② 构建词汇表 收集所有文档中出现的唯一词,形成词典(字典) CountVectorizer、HashingVectorizer
③ 向量化 将每篇文档映射为词频向量或加权向量 计数向量、二进制向量、TF‑IDF 向量
特征选择(可选) 去除低频词、限制词表大小、使用 n‑gram 扩展 min_df、max_df、ngram_range
模型训练 使用向量化后的特征进行分类、聚类、检索等任务 朴素贝叶斯SVM逻辑回归

3. 常见的词袋表示方式

表示方式 计算方式 适用场景
二进制(Binary) 词出现记 1,不出现记 0 关注词的存在性,如关键词过滤
计数(Count) 统计词出现次数 基础文本分类、信息检索
TF‑IDF 词频 × 逆文档频率,降低常见词权重 情感分析主题建模,提升区分度
n‑gram 将相邻 n 个词视为一个“词”,统计其出现 捕捉局部词序信息,提升模型表达能力
哈希技巧(Hashing) 用哈希函数直接映射词到固定维度 大规模词表时降低内存占用

4. 词袋模型的优点

  1. 实现简单:只需分词和计数,无需复杂的语言模型。
  2. 可解释性强:每个特征对应具体词,易于解释模型输出。
  3. 适用范围广:文本分类、情感分析、信息检索、文档聚类等均可直接使用。

5. 词袋模型的局限性

局限 说明
忽略词序 失去句子结构和语义顺序信息,导致对上下文敏感的任务表现不佳。
高维稀疏 词表大时向量维度极高,存储和计算成本上升。
语义缺失 同义词、词形变化等语义信息未被捕获,需要后续词嵌入或深度模型补足。
对长文本敏感 长文档中高频词会主导向量,需使用 TF‑IDF 或归一化处理

6. 典型应用案例

  • 文本分类:新闻分类、垃圾邮件过滤。
  • 情感分析:商品评论正负向判别。
  • 信息检索:搜索引擎的倒排索引实现。
  • 文档聚类:相似文档自动分组。

在实际项目中,常配合 Scikit‑learn 的 CountVectorizerTfidfVectorizer 等实现快速原型;若词表极大,则使用 HashingVectorizer 进行特征压缩。


小结

词袋模型是一种把文本转化为数值特征的基础技术,核心是把文档视作“词的袋子”,通过词频或加权方式生成稀疏向量。它实现简单、解释性好,广泛用于各种 NLP 任务,但也因忽略词序和语义而存在局限,实际使用时常结合 TF‑IDF、n‑gram、哈希技巧或更高级的词嵌入模型进行改进。

来源:www.aiug.cn
声明:文章均为AI生成,请谨慎辨别信息的真伪和可靠性!