[翻译]词袋模型入门

词袋模型(Bag of Words Model) 词袋模型是将文本转换成向量的一种方式,且容易实现,本文将详细地阐述词袋模型以及如何实现词袋模型。 ## 文本存在的问题 在对文本进行建模的时候存在一个问题,就是“混乱”,因为像机器学习算法通常更喜欢固定长度的输入、输出,但是文本是不定长的。机器学习算法不能直接处理纯文本,要使用文本的话,就必须把它转换成数值,尤其是数值向量。这个就叫做特征提取或者特征编码。而文本数据的特征提取,其中一种简单且流行的方法就是词袋模型。 ## 什么是词袋? 词袋是一篇文档中单词出现的文本表示,它包含两个信息: 1. 一 阅读详情

写在前面的话

词袋模型在机器学习算法中通常用于表征文本数据。词袋模型非常容易理解并在语言模型和文本分类上取得了很大的成功。

本文我们将探索词袋模型在自然语言处理特征提取任务中的应用。

通过本文,可以了解到如下内容:

  • 什么是词袋模型以及为什么需要文本表示
  • 如何实现词袋模型
  • 如何使用不同的技术建立词汇表和给词赋予权重

正文

在开始介绍之前,首先介绍本文的行文组织结构:

  • 1.文本处理面临的问题
  • 2.什么是词袋模型
  • 3.词袋模型的示例
  • 4.管理词汇表
  • 5.词的权重评定
  • 6.词袋模型的局限性

1.文本处理面临的问题

自然语言处理面临的文本数据往往是非结构化杂乱无章的文本数据,而机器学习算法处理的数据往往是固定长度的输入和输出。因而机器学习并不能直接处理原始的文本数据。必须把文本数据转换成数字,比如向量。

在Neural Network Methods in Natural Language Processing, 2017一书65页有一句话:

在语言处理中,往往使用向量x来表示文本的大量语言学特性。

这个过程就叫做特征提取或者特征编码。一种流行并且简单的特征提取方法就是词袋模型。

2.什么是词袋模型

词袋模型,简称BoW,常常用于提取文本特性并用于机器学习算法。
词袋模型描述的是文档中词的共现,涉及到两方面:

  • 1.已知词汇
  • 2.对已知词汇进行表示

‘袋’这个词意味着文档中词组的顺序和结构信息在词袋模型中将会丢失。想象一下,如果把大量的瓶子扔进一个袋子里,那瓶子扔进去的顺序以及瓶子之前堆放的样子是不是就没了呢?词袋模型只关心词组是否出现在文档中,而不是文档的具体位置。

对于文档,有一个显而易见的结论就是:拥有近似内容的文档也是近似的。更进一步的说,从文本的内容就可以学习到文档的含义。

词袋模型可以简单也可以很复杂。复杂的地方在于如何设计词汇以及如何对已存在的已知词语打分。下面,将介绍如何解决这两个问题。

3.词袋模型的示例

步骤1.搜集数据

数据的来源可以是电子书、网页、社交媒体、纸质书等等,比如现在就有如下片段:

It was the best of times,
it was the worst of times,
it was the age of wisdom,
it was the age of foolishness,

为了简单起见,对于上文中每一行都作为一个文档,这里有4行就表示现在搜集到的有4个文档。

步骤2.设计词汇表

有了数据,下一步就是构建词汇表了,观察上面的数据,可以总结下面的一个词汇表(忽略大小写和标点):

  • “it”
  • “was”
  • “the”
  • “best”
  • “of”
  • “times”
  • “worst”
  • “age”
  • “wisdom”
  • “foolishness”

在搜集到的文档中一共有24个词,这24个词是由10个词组成的。

步骤3.创建文档向量

为什么要转换为文档向量呢?回想一下前文提到的,机器学习算法倾向于处理固定长度的输入和输出。因而,如果能将文档进行向量化表示,那么就可以应用机器学习算法进行计算了。

因为词汇表的长度是10,所以我们可以将每一个文档表示为一个维度为10的向量,向量的每一个维度都表示一个词。文档如果在出现了对应的词,那么对应的维度就置为1,否则置为0.以“It was the best of times“举例。对照词汇表,可以得到如下的结果:

  • “it” = 1
  • “was” = 1
  • “the” = 1
  • “best” = 1
  • “of” = 1
  • “times” = 1
  • “worst” = 0
  • “age” = 0
  • “wisdom” = 0
  • “foolishness” = 0

写成向量形式为:

[1, 1, 1, 1, 1, 1, 0, 0, 0, 0]

类似的,其他几句话也可以表示为:

"it was the worst of times" = [1, 1, 1, 0, 1, 1, 1, 0, 0, 0]
"it was the age of wisdom" = [1, 1, 1, 0, 1, 0, 0, 1, 1, 0]
"it was the age of foolishness" = [1, 1, 1, 0, 1, 0, 0, 1, 0, 1]

可以看到文档中词的顺序和结构确实是丢失了,因为文档已经按照词汇表的顺序重新组织并向量化了。那如果出现词汇表外的词了呢?在词袋模型中将会直接被忽略。

4.管理词汇表

随着文档的不断增长,词汇表的增长将会导致文档向量不断的增长,表现为文档向量的维度不断增加。
设想要为大量的书籍建立词袋模型,那么词汇表将会变得非常的大,文档向量将会变得相当的长。当往往一本书中其实通常使用到的词汇表是非常小的,这就会导致一本书的表示向量中存在大量的0.这样的向量称为稀疏向量或者叫稀疏表示。

稀疏的向量将会在计算的时候耗费大量的计算资源和内存,所以减小词汇表大小就成为了急切需要解决的问题了。

下面介绍了一些简单的减小词汇表的方法:

  • 忽略大小写
  • 忽略标点符号
  • 去除无意义的词,比如a the of
  • 修正拼写错误
  • 取出时态

一种复杂的方法就是对词进行聚合。这个方法能够得到文档一些语义信息,但也面临这词袋模型面临的同样问题。
这个方法叫做:N-元模型。N表示聚合的词个数,比如2就表示2个2个聚合在一起,叫做2元模型。
比如说“It was the best of times”,经过2元模型处理之后表示如下:

  • “it was”
  • “was the”
  • “the best”
  • “best of”
  • “of times”

N元模型比词袋模型在某些任务表现得更好,比如文档分类,但也在某些情况下带来麻烦。

5.词的权重评定

当文档向量确定之后,就需要给每一个词的权重进行评估了。
首先介绍2个概念:

  • 出现次数:词在一个文档中出现的次数
  • 出现频率:词在一个文档中出现的次数除以文档中的词总数
5.1.词的哈希

在计算机科学中,通常使用哈希方程将大的数值空间转换为固定范围的数值。比方说将名字转换为数字以方便查找。
我们可以把词汇表中的词进行哈希表示,这样就解决了大量文档和词汇表太长的问题。因为我们可以把词汇表种的每一个词都表示成固定长度的哈希表示。这个方法存在的问题就是要尽可能的减小碰撞。

5.2.TF-IDF

TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与文本挖掘的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。

6.词袋模型的局限性

虽然词袋模型简单易用并且在实际应用中取得了很大的成功,但是词袋模型本身也具有局限性:

  • 词汇表的构建:词汇表的建立和维护都值得考量,不合理的词汇表将导致文档表示向量的稀疏问题显著。
  • 稀疏问题:词袋模型有一个原生问题就是向量的稀疏,这将对计算资源和推理带来巨大的挑战
  • 语义:因为词袋模型没有考虑到语序,但是往往语序又蕴含着不同的语义信息。比如“this is interesting” vs “is this interesting”,不同的语序代表的语义是不同的。

总结

本文介绍了词袋模型介绍了什么是词袋模型以及举了一个词袋模型实现的实例;之后介绍了词袋模型中词权重的评估;最后介绍了词袋模型的局限性。

本文翻译自原文,感兴趣的朋友可以去看看原文。

【AI知识点】词袋模型(Bag-of-Words,BOW) 词袋模型(Bag-of-Words,简称BOW)是一种用于文本表示的简单且常用的方法,尤其在自然语言处理(NLP)和信息检索领域中广泛应用。词袋模型的核心思想是将文本表示为一个词频统计的集合,而不考虑词的顺序和语法结构。每个词在文本中出现的频率被用来表示文本的特征。 阅读详情

相关推荐

词袋模型(Bag of Words)

词袋模型是自然语言处理和信息检索中的一种常用文本表示方法,它将文本表示为一个词的集合,忽略词语的顺序和语法结构,只关注词语的出现频率。本文详细介绍了词袋模型的基本原理、构建步骤、实践方法,并提供了相应的Python代码示例。

weixin_37410657的博客 5797

词袋模型(Bag-of-words model)

词袋模型(Bag-of-words model)

ProgramNovice的博客 7391

BOW(Bag of Words)词袋模型理解

基本词袋模型: 词袋模型的提出是为了解决文档分类,例如一个文员收到一个任务:把手里的共计10M的公司不同部门的相关工作文件进行归档分类,分别为财务部、公关部、市场部、管理层等四个部门,那么应该怎么做呢? 具体方法为:假设财务部的文件用“金额数目”表示,公关部用“客户数字”表示,市场部用“竞争对手”表示,管理层用“上市情况”表示。那么,我们依次将所有字体组合得到“金额数目客户字竞争对手上

wangguoqingcumt的博客 6598

自然语言处理(7)—— 词袋模型:概念及python实现

词袋模型(Bow,Bag of Words)不考虑文本中词与词之间的上下文关系,仅仅只考虑所有词的权重(与词在文本中出现的频率有关),类似于将所有词语装进一个袋子里,每个词都是独立的。 生成文本的词袋模型分为三步: - 分词(tokenizing) - 统计词频(counting) - 特征标准化(normalizing)

聚集机器学习、信息安全 1万+

机器学习算法实战系列:自然语言处理核心技术——从词袋模型到Transformer

从简单的词频统计到能创作诗歌的AI,NLP技术正在以惊人的速度发展。掌握这些技术,你就站在了人工智能革命的最前沿!深入理解Transformer架构细节实践HuggingFace生态系统关注大模型最新进展在下一篇文章中,我们将探索计算机视觉的奥秘,从传统图像处理到深度卷积网络,揭开机器如何"看"世界的秘密!敬请期待!延伸阅读Attention Is All You Need原文HuggingFace课程BERT原理解析。

资深全栈架构师,乐于在 优快云 分享技术见解,与大家携手共进,共攀技术巅峰! 1207

Transformer实战(3)——从词袋模型到Transformer:NLP技术演进

在本节中,我们介绍了 NLP 方法和架构的演变,从 BoW 到 Transformer,回顾了如何实现基于 BoW、RNN 和 CNN 的方法,理解了 Word2Vec 的概念及其如何帮助通过浅层 TL 改进传统的深度学习方法。我们还探讨了 Transformer 架构的基础,并以 BERT 为例进行了介绍。我们了解了 TL 及其在 BERT 中的应用。还介绍了多模态学习的基本概念,并简要介绍了 ViT。同时,也讨论了 CLIP 和 Stable Diffusion 等模型。

盼小辉丶的博客 1万+

2024年Android最新[翻译]词袋模型入门,安卓高级工程师面试题

词袋模型,简称BoW,常常用于提取文本特性并用于机器学习算法。词袋模型描述的是文档中词的共现,涉及到两方面:1.已知词汇2.对已知词汇进行表示‘袋’这个词意味着文档中词组的顺序和结构信息在词袋模型中将会丢失。想象一下,如果把大量的瓶子扔进一个袋子里,那瓶子扔进去的顺序以及瓶子之前堆放的样子是不是就没了呢?词袋模型只关心词组是否出现在文档中,而不是文档的具体位置。对于文档,有一个显而易见的结论就是:拥有近似内容的文档也是近似的。更进一步的说,从文本的内容就可以学习到文档的含义。

2401_84545364的博客 969

告别轮询!手把手教你用S32K3的FlexCAN Enhanced FIFO+DMA实现高效CAN FD数据接收

本文详细介绍了如何利用S32K3芯片的FlexCAN Enhanced FIFO与DMA组合方案,实现高效CAN FD数据接收,彻底告别传统轮询和中断模式。通过深度缓冲、智能过滤和DMA联动技术,该方案在5Mbps高负载场景下将CPU占用率从42%降至3%以下,显著提升系统实时性和吞吐量。

weixin_30906185的博客 502

如何快速入门PyTorch NLP:nlp-pytorch-zh新手教程

想要掌握PyTorch自然语言处理技术?这篇完整指南将为你展示如何通过《Natural Language Processing with PyTorch》中文翻译项目快速入门PyTorch NLP!无论你是深度学习初学者还是有一定经验的开发者,这个开源项目都能帮助你系统学习NLP基础知识,掌握PyTorch实战技巧。 ## 🚀 项目简介与核心价值 nlp-pytorch-zh是《Natura

gitblog_01010的博客 1066

随机森林的可解释性分析(含python代码)

随机森林的“黑箱”特性逐渐凸显,这使得我们难以理解和解释模型内部的工作机制。对于许多应用场景而言,仅仅获得高准确率的预测结果是不够的;了解预测背后的逻辑同样重要,特别是在医疗诊断、金融风险评估等领域。因此,对随机森林进行可解释性分析变得尤为重要。

m0_59257547的博客 3847

别再混淆了!5分钟搞懂机器人导纳控制与阻抗控制的本质区别(附Simulink对比仿真)

本文深入解析机器人柔顺控制中的导纳控制与阻抗控制的本质区别,通过信号流方向、架构对比和应用场景三个关键视角进行详细阐述。文章还提供Simulink对比仿真案例,帮助读者快速理解两种控制策略的差异及其适用场景,特别适合机器人控制领域的研究者和工程师参考。

weixin_42543046的博客 604

词袋模型与文本表示:如何更好地表达语义

1.背景介绍 文本数据在现实生活中非常普遍,如新闻、论文、社交媒体、网页内容等。随着互联网的普及和数据量的快速增长,文本数据处理和分析变得越来越重要。文本数据处理的主要任务包括文本分类、情感分析、问答系统、机器翻译等。为了解决这些问题,我们需要一种有效的文本表示方法,能够捕捉文本中的语义信息。 在过去的几年里,词袋模型(Bag of Words, BoW)和词嵌入模型(Word Embeddi...

AI天才研究院 1002

Unity-Chan Toon Shader卡通渲染学习

2.0 (UTS2)是一款用于图像和视频的卡通着色器,旨在满足从事卡通着色 3DCG 动画的创作者的需求。二、从0-1复刻UTS21.漫反射UTS2的漫反射部分主要有三个层组成,分别是基本颜色、第一阴影色和第二阴影色,分别对应着美术理论中的白、灰、黑。

qq_63133691的博客 2537

NLP第5课:面向非结构化数据转换的词袋和词向量模型

通过前面几个小节的学习,我们现在已经学会了如何获取文本预料,然后分词,在分词之后的结果上,我们可以提取文本的关键词查看文本核心思想,进而可以通过可视化技术把文档从视觉的角度表达出来。 下面,我们来看看,文本数据如何转换成计算机能够计算的数据。这里介绍两种常用的模型:词袋和词向量模型。 词袋模型(Bag of Words Model) 词袋模型的概念 ...

米饭超人的专栏 1764

保姆级教程:Synology NAS共享文件夹从创建到权限设置的完整流程

本文提供了一份详尽的Synology NAS共享文件夹创建与权限设置指南。重点讲解了如何将NAS接入企业AD域,并利用域管理员账户进行集中身份验证和权限管理。文章从基础概念、域环境配置、文件夹创建、精细化权限分配到客户端访问与维护,完整覆盖了构建安全高效企业级文件共享空间的全流程,旨在帮助管理员实现便捷的团队协作与数据安全管理。

u9v0w的博客 552

实战演练,如何用Easyexcel合并单元格,设置字体、边框样式,并在尾行加入备注

,实现效果如下:1、多级表头合并2、表头底纹+表格边框3、合并相同数据单元格4、尾行加入备注。

Su7148的博客 1万+

【NLP-02】文本表达---词袋模型、TF-IDF、Word2Vec、Doc2Vec、FastText和Universal Sentence Encoder模型

NLP常见的句向量和词向量

qq_38614074的博客 2666

国产PHY芯片YT8512H替代LAN8742A的实战指南(STM32F407平台)

本文详细介绍了在STM32F407平台上,使用国产PHY芯片YT8512H替代LAN8742A的完整实战过程。文章深入剖析了硬件设计中的关键信号连接差异(如CRS_DV与RXDV复用)、时钟布线要点,并提供了软件驱动修改、PHY配置及调试排错的系统指南,旨在帮助工程师高效完成国产化替代,规避常见陷阱。

defi6farmer的博客 854

java构建词性词袋_词袋模型

词袋模型(英语:Bag-of-words model)是个在自然语言处理和信息检索(IR)下被简化的表达模型。此模型下,一段文本(比如一个句子或是一个文档)可以用一个装着这些词的袋子来表示,这种表示方式不考虑文法以及词的顺序。最近词袋模型也被应用在电脑视觉领域。[1]词袋模型被广泛应用在文件分类,词出现的频率可以用来当作训练分类器的特征。关于"词袋"这个用字的由来可追溯到泽里格·哈里斯于1954年...

weixin_34709138的博客 275

SAP Build Work Zone standard edition 订阅报错 OIDC trust missing 的成因与完整解决路径

摘要:用户订阅SAP Build Work Zone时遇到422错误,提示未配置OpenID Connect信任。该错误表明业务用户需通过SAP Cloud Identity Services的OIDC协议认证,而当前子账户仅配置了SAML信任或未配置信任。解决方法是进入子账户的Trust Configuration页面,使用Establish Trust功能建立与SAP Cloud Identity Services的OIDC信任关系。这是SAP新版服务的强制要求,SAML协议已不被支持。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 197

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

词袋模型与RNN的关系

词袋模型(BoW)与循环神经网络(RNN)的基本概念差异 词袋模型:是一种简单而有效的文本表示方法。它将文本看作是词的集合,忽略词的顺序和语法结构,只关注词出现的频率。例如,对于两个句子 “我爱学习” 和 “学习我爱”,在词袋模型中它们的表示是一样的,都可以用向量形式表示为 [“我”:1,“爱”:1,“学习”:1]。 循环神经网络(RNN):是一种专门用于处理序列数据的神经网络。它通过在网络中引入循环结构,使得网络能够处理具有时间序列或空间序列特征的数据。例如,在自然语言处理中,RNN 可以根据句子中

weixin_41150257的博客 427

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

精通Transformer——从词袋模型到Transformer模型

Transformer模型因其在从文本分类到文本生成的广泛NLP问题中的高效性而受到极大的关注。注意力机制是这些模型中的一个重要组成部分,起着非常关键的作用。在Transformer模型出现之前,注意力机制被提出作为一种辅助工具,用于改进传统的深度学习模型,如RNNs。为了理解Transformers及其对NLP的影响,我们首先需要研究注意力机制。至此,我们已完成本章的内容。现在你应该理解了NLP方法和技术从词袋模型(BoW)到Transformer的演变过程。

Z4400840的博客 1311

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

词袋模型在文本质量评估中的应用

1.背景介绍 文本质量评估是自然语言处理领域中一个重要的研究方向,它涉及到对文本内容进行评价和分析,以确定其质量。文本质量评估的应用场景非常广泛,包括垃圾邮件过滤、文本摘要、机器翻译评估、文本分类等。在这些任务中,词袋模型(Bag of Words, BoW)是一种常用的文本表示方法,它将文本转换为一个词袋,即一个包含文本中所有不同词汇的集合,每个词汇都被视为一个特征。 词袋模型的主要优点是简...

AI天才研究院 943

从词袋到Transformer:AI语言模型的进化之路

“大语言模型”(Large Language Model,简称LLM),堪称人工智能发展史上的里程碑式突破。作为当下最引人注目的AI技术成果,这些模型展现出令人惊叹的语言理解和生成能力——从创作诗歌到编写代码,从撰写商业文案到生成完整故事,其应用场景正在快速扩展。日常使用的智能助手如ChatGPT,其核心技术正是基于这类大语言模型。 然而,这项技术的诞生绝非偶然。大语言模型的发展历程凝聚了数十年来自然语言处理领域的技术积淀,经历了从简单统计模型到复杂神经网络体系的持续演进。本文将系统梳理语言模型的技术发展

m0_59162559的博客 1144

词袋模型和词嵌入模型区别和关联分析(词袋模型是否属于词嵌入模型)

词袋模型是基于统计的浅层表示,词嵌入是基于学习的深层语义表示。在深度学习时代,词嵌入及其衍生技术(如Transformer)已成为NLP的基石,但词袋模型在特定场景中仍具实用价值。

weixin_51524504的博客 553

【小白学AI系列】NLP 核心知识点(一)词袋模型

人工智能领域的行业术语,也就是知识树叶

Blankspace的博客 663
上一篇: [NLP]如何打造一个Chatbot
下一篇: [DL]机器学习算法之之线性回归(Linear Regression)
android_ruben
博客等级 码龄11年 106粉丝 166原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值