什么是词袋?

2024 年 1 月 19 日

作者

Jacob Murel Ph.D.

Senior Technical Content Creator

Eda Kavlakoglu

Program Manager

词袋特征化量化文本文档中单词的频率,以便在机器学习模型中进行处理。它的变体 TF-IDF 生成的模型进一步考虑文档语料库中的单词频率。

Bag of Words(即 BoW 或 bag-of-words ,缩写为 BoW)是一种特征提取技术,用于对文本数据进行建模,以便在信息检索和机器学习算法中进行处理。更具体地说,BoW 模型是文本文档中所有已知单词的非结构化分类,仅根据频率定义,而忽略词序和上下文。1 Bag of Words 是众多文本挖掘管道中的其中一个步骤。

大多数自然语言处理 (NLP) 包都预装了创建 Bag of Words 模型的函数,例如 scikit-learn 的 CountVectorizer 函数

小球在轨道上滚动的三维设计

最新的 AI 新闻 + 洞察分析

在每周的 Think 时事通讯中,发现专家精选的有关 AI、云等的洞察分析和新闻。 

词袋模型的工作原理

词袋特征化有时可能被视为文本处理的初级形式,因为它表面上概念简单,只需计算给定文本集中的单词数量即可。不过,词袋模型涉及的内容更多。

理解词袋特征化需至少达到矢量空间的初学者水平。矢量空间是一个多维空间,而点会在其中进行绘制。在词袋方法中,每个单独的单词均会成为矢量空间的一个独立维度(或轴)。如果某一文本集有 n 个单词,生成的矢量空间则有 n 维,且文本集中的每个唯一单词均对应一个维度。然后,该模型会将每个独立的文本文档绘制为矢量空间中的一个点。一个点在某个维度上的位置是由该维度的单词在该点的文档中出现的次数决定的。

例如,假设我们有一个文本集,其中两个单独文档的内容分别是:

文档 1:A rose is red, a violet is blue

文档 2:My love is like a red, red rose

由于很难想象三维空间以外的任何事物,因此我们将仅限于此。包含这两个文档的语料库的向量空间将分别包含 redroseviolet 的维度。这些单词的三维向量空间可能如下所示:

由于 redroseviolet 在文档 1 中都出现过一次,因此该文档在此空间中的向量将为 (1,1,1)。在文档 2 中,red 出现两次,rose 出现一次,violet 完全没有出现。因此,文档 2 的向量点是 (2,1,0)。这两个文档点在三维矢量空间中映射为:

请注意,此图将文本文档可视化为三维特征空间中的数据矢量。但是 Bag of Words 也可以将单词表示为数据空间中的特征矢量。特征矢量表示特定数据点(文档)中给定特征(单词)的值(出现次数)。因此,文档 1 和 2 中 redroseviolet 的特征矢量如下所示:2

请注意,原始文档中的单词顺序无关紧要。对于词袋模型,其中的关键在于每个单词在文本集中的出现次数。

为什么使用词袋模型

因为 Bag of Words 模型只量化给定文档中单词的频率,所以 Bag of Words 通常被描述为一种简单的建模技术。但是 Bag of Words 有助于完成许多 NLP 任务,其中最显著的是文档分类。事实上,文献经常将 Bag of Words 与 Naïve Bayes 等统计分类器一起讨论。3

文本分类任务将文档中频率较高的单词解读为表示文档主要思想的词语。4这并非是一个不合理的假设。例如,如果文档中一些出现频率最高的单词包括 presidentvoterselection,则该文档很可能是政治文本,特别是讨论总统选举。使用 Bag of Words 进行文本分类后,推断出内容相似的文档在类型上也相似。

专家荟萃 | 播客

解码 AI:每周新闻摘要

加入我们的世界级专家团队,包括工程师、研究人员、产品负责人等,他们将穿透 AI 的喧嚣,为您带来最新的 AI 新闻和见解。

词袋模型的局限性

虽然使用词袋方法的概率分类器被证明非常有效,但词袋方法也有一些缺点。

单词相关性。Bag of Words 会假设文档或语料库中的各个单词彼此独立。Election 更有可能出现在涉及 president 而非 poet 的共同语境中。在测量单个词频时,Bag of Words 不考虑各单词之间使用情况的相关性。由于 Bag of Words 会将文档中的每个单词作为 Bag of Words 模型的一个特征来提取,且词频为该特征的权重,因此两个或多个相关单词理论上可在使用该模型的统计分类器中诱发 多重共线性 。然而,尽管存在这些潜在缺点,Naïve Bayes 的简化假设已被证明可生成稳健的模型。5

复合词。词相关性扩展到复合短语的词袋表示,其中两个或多个词语作为一个语义单元。例如,一个简单的词袋模型可以将 Mr. Darcy 表示为两个唯一且不相关的单词,即使它们协同工作。这种词袋表示无法反映多词概念的语义和句法性质。

多义词。很多单词具有多重且明显不同的含义。例如,bat 可指代运动器械或动物,而这些含义通常会出现在截然不同的语境中。同样,单词可根据其重音在口语中的发音位置来改变含义,例如 CON-tent 与 con-TENT。由于词袋在对单词进行建模时不考虑语境和含义,因此它会将所有这些不同的含义收归于一个单词之下,从而省略有关文本主题的潜在重要信息(以及潜在的分类)。

稀疏性。在 Bag of Words 模型中,每个单词都是模型的一个特征或维度,每个所谓的文档都是一个矢量。由于文档不会使用生成的模型词汇表中的每个单词,因此给定矢量的许多特征值可能为零。当矢量的大多数值为零时,该模型是稀疏模型(如果将矢量表示为矩阵,则称为稀疏矩阵)。模型稀疏性导致高维数,进而导致训练数据过拟合6

修改

Bag of n-grams。采用 n-grams 而不是单词可以纠正 Bag of Words 模型固有的一些缺点。不用创建一个以每个单词为特征的模型,而是可以使用 n-grams 作为向量特征。在这种情况下,n 是指被视为一个语义单元的单词数量,在 Bag of n-grams 中最常见的可能是 bigrams(即两个单词)。word-bigrams 很有用,因为它们可以解释复合词,例如 New YorkEiffel Tower。当然,并非所有的 word-bigram 都是信息性的,例如 theof the。然而,这是解释复合词和词相关性等问题的一种方式。7

文本规范化技术。原始文本数据可能需进行规范化,以便改进 Bag of Words 模型的结构和功能。在创建 Bag of Words 或 n 连字符串袋模型时,冠词(例如,athe 等)和介词(例如,fromofon 等)一类的单词可能出现次数最高。这些单词未提供太多有关文档内容或类型的信息,因此在分类任务中基本无用。文本预处理技术(例如,非索引字删除(通常用于词干提取))有助于从文本数据集中删除不相关的单词,从而帮助改善 Bag of Words 模型的结构。幸运的是,很多 Python 库和软件包(例如 NLTK 或 sklearn)均有执行常见预处理技术的功能。

哈希。特征哈希本质上是将输入文本数据中的各个单词转换为固定大小的数值集。然后使用这个固定的数字范围来构建 Bag of Words 模型的矢量空间。将数字范围(即模型维度)限制为固定大小有助于防止稀疏性和高维度。哈希的一个主要缺点是所谓的冲突。当两个不相关的标记映射到同一个整数时,会发生哈希冲突。哈希的另一个缺点是它不考虑多义词。8

TF-IDF

使用标准词袋模型时,语义不相关的单词(例如,thesome 等)可能词频最高,因此在模型中的权重也最大。词频-逆文档频率 (TF-IDF) 旨在纠正这一点。虽然词袋仅计算单词在一个文档中出现的次数,但 TF-IDF 则考虑该单词在文本集中每个文档中的流行程度。TF-IDF 表示为等式:

在此等式中,第一项是 Bag of Words 模型计算得出的值,即词频。第二项表示逆文档频率。N 等于文本集中的文档总数,n 等于出现给定词的文档数。出现给定词的文档越多,TF-IDF 越大,该词的权重就越小。通过这种方式,TF-IDF 展示了机器学习模型中的一种特征扩展的例子。9

与一般词袋模型非常相似,NLP 软件包通常具有用于实现 TF-IDF 的预先存在的函数,例如 scikit-learn 的 tfidfvectorizer 函数。

最近的研究

Bag of Words 模型的变体用于各种 NLP 任务。例如,神经网络 word2vec 使用连续的 Bag of Words 来生成词嵌入模型。10情感分析和分类也可以利用 Bag of Words 模型。11

语言

大量 NLP 技术的初步研究集中在英语或其他拉丁文字语言,例如西班牙语或法语。最近,研究人员又转向其他语言,例如阿拉伯语。最近的研究检验了 Bag of Words 模型与其他 NLP 工具(例如 word2vec)在阿拉伯语文本情感分析和分类方面的效果,并取得了可喜的成果。12其他研究则展示了基于 Bag of Words 模型的朴素贝叶斯分类器在梵文文本词义消歧方面的潜力。13

仇恨言论

Bag of Words 方法已经在检测社交媒体平台上的仇恨言论的算法中进行了测试,并取得了不同程度的成功。一项研究将 Bag of Words 模型与 word2vec 和 BERT 等深度学习分类器进行了比较,认为 BERT 的表现优于 Bag of Words 模型,而 TF-IDF 并不能显著改善 Bag of Words 模型的预测效果。14相比之下,后来的一项研究提出了一种使用 Bag of Words 模型和朴素贝叶斯算法进行仇恨言论检测的算法,准确率约为 99%。15 数据大小和采样以及文本预处理的差异可能会导致此类研究结果出现差距。事实上,其他研究表明,BERT 与使用 Bag of Words 的分类器之间的比较性能取决于数据集分类类别大小。16

计算机视觉

最近,计算机视觉社区采用了自己的 Bag of Words 变体,在图像分类和检索任务中进行特征提取。这种方法检测并提取图像特征,并将相似的局部区域作为“码字”聚集在一起。用于图像分类的 Bag of Words 方法面临的许多挑战与其他计算机视觉任务中的相同:例如具有相似颜色或背景的物体、被遮挡和重叠的物体、类内变异等等。17

相关解决方案
IBM watsonx Orchestrate

使用 IBM® watsonx Orchestrate 轻松设计可扩展的 AI 助手和代理、自动执行重复任务并简化复杂流程。

探索 watsonx Orchestrate
自然语言处理工具和 API

通过强大灵活的库、服务和应用组合,加速实现人工智能的商业价值。

深入了解 NLP 解决方案
AI 咨询与服务

通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。

深入了解人工智能服务
采取后续步骤

使用 IBM® watsonx Orchestrate 轻松设计可扩展的 AI 助手和代理、自动执行重复任务并简化复杂流程。

探索 watsonx Orchestrate 深入了解 NLP 解决方案
脚注

1  Ruslan Mitkov(编辑),  《牛津计算语言学手册》, 第二版 ,牛津大学出版社,2014 年。

2  Alice Zheng 和 Amanda Casari, 《机器学习特征工程》,O'Reilly,2018 年。

3  Daniel Jurafsky 和 James Martin, 《语音和语言处理:自然语言处理、计算语言学和语音识别概论》第 3  版,2023 年, https://web.stanford.edu/~jurafsky/slp3。Christopher Manning 和 Hinrich Schütze, 《统计自然语言处理基础》 ,麻省理工学院出版社,2000 年。

4  Dongyang Yan、Keping Li、Shuang Gu 和 Liu Yang,“基于网络的文本分类 Bag of Words 模型”, 《IEEE Access》,第 8 期,2020 年,第 82641-82652 页, https://ieeexplore.ieee.org/document/9079815

5  Christopher Manning 和 Hinrich Schütze, 《统计自然语言处理基础》,麻省理工学院出版社,2000 年。

6  Dani Yogatama,“稀疏模型自然语言文本”,博士论文,卡内基梅隆大学,2015 年, https://lti.cmu.edu/people/alumni/alumni-thesis/yogatama-dani-thesis.pdf
7  Yoav Goldberg, 《神经网络方法自然语言处理》,Springer,2022 年。

8  Alice Zheng 和 Amanda Casari, 《机器学习特征工程》,O'Reilly,2018 年。

9  Alice Zheng 和 Amanda Casari, 《机器学习特征工程》,O'Reilly,2018 年。

10  Tomas Mikolov、Kai Chen、Greg Corrado 和 Jeffrey Dean,“矢量空间中词汇表现的有效估计”, “第一届国际学习表现会议研讨会跟踪论文集”,2013 年, https://arxiv.org/abs/1301.3781

11  Tan Thongtan 和 Tanasanee Phienthrakul,“使用经余弦相似性训练的文档嵌入进行情感分类”, 计算语言学协会第 57 届年会论文集:学生研究研讨会,2019 年,第 407-414 页, https://aclanthology.org/P19-2057/

12  Huda Abdulrahman Almuzaini 和 Aqil M. Azmi,“词干提取和单词嵌入对基于深度学习的阿拉伯语文本分类的影响”, IEEE Access,第 8 卷,2020 年,第 127913-127928 页, https://ieeexplore.ieee.org/abstract/document/9139948。Mohammed Kasri、Marouane Birjali 和 Abderrahim Beni-Hssane,“用于阿拉伯语情感分析的特征提取方法的比较”, 第 4 届大数据和物联网国际会议论文集  (BDIoT '19),2019 年, https://dl.acm.org/doi/abs/10.1145/3372938.3372998

13  Archana Sachindeo Maurya、Promila Bahadur 和 Srishti Garg,“使用朴素贝叶斯分类法消除英语转梵语语言中词义歧义的方法”, 《第三届计算智能博士研讨会论文集》,2023 年,第 477–491 页, https://link.springer.com/chapter/10.1007/978-981-19-3148-2_40

14  Joni Salminen、Maximilian Hopf、Shammur A. Chowdhury、Soon-gyo Jung、Hind Almerekhi 和 Bernard J. Jansen,“为多个社交媒体平台开发在线仇恨分类器”, 以人为本的计算和信息科学,第 10 卷,2020 年, https://hcis-journal.springeropen.com/articles/10.1186/s13673-019-0205-6

15  Yogesh Pandey、Monika Sharma、Mohammad Kashaf Siddiqui 和 Sudeept Singh Yadav,“使用 Bag of Words 和奈夫贝叶的仇恨言论检测模型”, 数据和信息科学的进步,2020 年,第 457–470 页, https://link.springer.com/chapter/10.1007/978-981-16-5689-7_40

16  Paula Fortuna、Juan Soler-Company 和 Leo Wanner,“仇恨言论与毒性、辱骂及冒犯性语言分类模型在数据集中的泛化程度如何?”,《信息处理与管理》,第 58 卷,2021 年,  https://www.sciencedirect.com/science/article/pii/S0306457321000339

17  Wisam A. Qader、Musa M. Ameen 和 Bilal I. Ahmed,“Bag of Words 概述:重要性、实施、应用和挑战”, 第五届土木与计算机工程应用发展国际工程会议论文集  (IEC2019),2019 年,第 200-204 页, https://ieeexplore.ieee.org/document/8950616