我理解的文本表示模型

词袋模型与N-grams模型

  • 1 词袋模型 (Bag of Words)
  • N-Gram

  • 最简单的文本建模场景:垃圾短信分类

表1 样本示例

短信内容短信类别
样本1:“欢迎来到某某新葡京,点击就送一百万!”标签1:垃圾短信
样本2:“您好,请您于晚上8点前至某某小区东门取件,取件码为xxxxxx”标签2:非垃圾短信
样本3:…标签2:…

想要对短信进行分类,首先明确,在这次建模中,X是什么,Y是什么。
很明显第一列短信内容为X,而短信的类别为Y。
我们可能有30000个这样的样本。
我们期望达到的效果是,当手机收到一条短信时,模型能够自发的判断出这条短信属于哪一类。然而计算机是无法直接读懂中文的,我们首先第一步需要做的便是,将这些汉字转换为计算机能够读懂的语言。而这一步我们将它称为 文本表示模型。

下文中的一部分参考了 百面机器学习,并介绍了两种常见的文本表示模型。
按照我的理解来看,我经常搞不清很多教材中写的document的到底是什么。我认为文本表示模型的一个document应该就是表1中的样本1,即一条短信。30000条短信也即代表着30000个documents。

1 词袋模型 (Bag of Words)

  • 模型的一个输入示例:欢迎来到澳门新葡京,点击就送一百万!
  • 模型的一个输出示例:[0,0,1,0,0,0,1,1,0,1,0,…]
    对于词袋模型来说,最终的目的是将每个样本都转换成一个向量。
    向量的维数(长度) 代表着所有样本中不重复的单词数。在我们的例子里,这个向量的长度是所有的 30000 条短信里面出现的汉字(不重复)的数量。如“澳”,“门”,“新”,“葡”,“京”,…, 即便同一条短信出现过多次,每个字也只能在向量维数中占据一个位置。
    向量每一个维度的取值 可以有很多种方法决定。大体上这个值代表该维度对应的这个独特的字/单词 对这条样本的意义。所以目前对我们来说,Bag-of-Words 给我们提供了一个向量的框子,我们只需要看一下怎么把“某个单词对该样本的意义”这个东西量化出来,并一个一个填进框子里,就可以了。
    主要存在以下几种量化方法:

1.1 one-hot 取值 (Binary)

最简单的方法:某个单词出现在该document中,那么该维度对应的数值取1,否则取0.
可以参考:词袋模型
在这里插入图片描述

1.2 Term Frequency 取值 (TF)

可以用很多种方法来使用词频。

普通频数 r a w t f raw_{tf} rawtf

比如使用普通频数,直接用每个document 中每个单词出现的次数做为向量的取值。但是越长的document一定会有更多的词,导致其向量各个维度整体取值都更大。因此需要一定的标准化。

频率

使用 document 的单词数量进行标准化 (即普通频数除以document的长度)
t f = t e r m f r e q u e n c y t o t a l n u m b e r o f w o r d s tf = \frac{term frequency}{total number of words} tf=totalnumberofwordstermfrequency

范数归一化

使用 r a w t f raw_{tf} rawtf的范数归一化 (普通频数除以普通频数向量的模)
t f = r a w t f ∣ ∣ r a w t f v e c t o r ∣ ∣ p tf = \frac{raw_{tf}}{||raw_{tf} vector||_p} tf=∣∣rawtfvectorprawtf

对数频数

t f = log ⁡ ( 1 + r a w t f ) tf = \log(1+raw_{tf}) tf=log(1+rawtf)

以上为几种根据词频对向量进行取值的方法。但是完全根据词频进行计算会面临一个问题:
越常见的词越容易获得更大的值。而常见词未必是对于区分短信有意义的特征。
因此我们引入了IDF:

1.3 Inverse document frequency (IDF)

IDF值主要用于衡量向量某维度代表的词,在整个样本中的稀有程度。越稀有,IDF数值越大。越不稀有,IDF数值越接近于1.
在这里插入图片描述
这个式子意味着,如果某个词在所有文档都出现,那么他可能是冠词或者介词。比如英文中的a,of,on等。这种词对于区分短信来说其实不是很好的特征,不具备区分性。所以这样的词的IDF值会很接近于1.
当然IDF的取值也可以有多种表达式,但核心宗旨大概率都是类似的。

1.4 TF-IDF scores 取值

TF-IDF 意味着将两种取值方式结合起来。即某个词对某个样本的TF-IDF分数(也即这个样本在这个词代表的特征上的取值)大,意味着这个词不仅仅在这个样本中比较常见,同时在其他文档中又相对的不那么常见。也即这个词很有可能是”新葡京“这样的,让人一看就知道这是垃圾短信的标志性词汇。
而这种结合方式即为将TF分数和IDF分数相乘。
在这里插入图片描述
在这里插入图片描述
TF-IDF本质是在衡量,某个单词(term)在一个文档(document)中的意义。比如“葡京”在“欢迎光临澳门新葡京,100万大奖等你拿!某某新葡京,美女荷官,在线发牌,***blah blah, 某某.com" 这个短信中的意义。而这个意义的数值大小,会作为这条短信样本的某个维度的特征,放进Bag-of-Words搭好的向量框中,将来参与到短信分类的模型中。(比如logit模型等等)

词袋模型(Bag-o-fWords)的宗旨即为将document中的每个单词都视为一个独立的特征。特征值可以为one-hot编码、TF、TFIDF等。
词袋模型具有表示直接、生成简单、效果好等特点。但是由于其过于简单,难以捕捉文本的结构。例如词序、语序等,无法在文本表示向量中体现。

N-Gram

N-gram 与词袋模型相比,旨在保留更多的语序信息,因此会将 n个相邻的单词/汉字 也加入在特征的维度中。这就是 n-gram。在Bag of Words的基础上又大幅的拓展了文本表示向量的维度。
如果只考虑两个相邻的单词,那么可以称为 bi-grams。
在这里插入图片描述
再比如:
在这里插入图片描述
与词袋模型相同,在通过加入相邻词组成的词组后,向量的维度增加。但向量的取值依然可以考虑 one-hot编码、TF编码、TF-IDF编码等方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/731128.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

openh264 宏块级码率控制源码分析

openh264 宏块级码率控制函数关系 宏块级核心函数分析 WelsRcMbInitGom函数 功能:openh264 码率控制框架中宏块级码率控制函数,根据是否启用GOM QP来决定如何设置宏块的QP值,以控制编码的质量和比特率。原理过程: 函数参数&…

数学-奇异值

有点名词党 奇异值的计算通常涉及矩阵的奇异值分解Singular Value Decomposition, SVD。奇异值分解是将一个矩形矩阵 ( A ) 分解为三个矩阵的乘积: [ A U ΣVT] 其中: - ( U ) 是一个 ( m m ) 的正交矩阵,它的列向量是 ( A AT) 的特征向…

稳定安全生产设备日志采集工具

免费试用下载: Gitee下载 最新版本 优势: A. 开箱即用. 解压直接运行.不需额外安装. B. 批管理设备. 设备配置均在后台管理. C. 无人值守 客户端自启动,自更新. D. 稳定安全. 架构简单,内存占用小,通过授权访问.

自研地面站!自主开源无人飞行系统 Prometheus V2 版重大升级详解

自主开源无人飞行系统 Prometheus V2 相对于 Prometheus V1 在多方面做了重大的升级,今天我们将聊聊 Prometheus V2 的地面站升级。 地面站的重大提升 熟悉 Prometheus 的小伙伴们可能知道,V1 版本是没有专门的地面站的。而在 Prometheus V2 中&#x…

【大模型驯化-Prompt】企业级大模型Prompt调试技巧与batch批量调用方法

【大模型驯化-Prompt】企业级大模型Prompt调试技巧 本次修炼方法请往下查看 🌈 欢迎莅临我的博客个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 免费获取相关内容文档关注&#x…

【ajax核心02】底层原理-Promise对象

目录 一:promise对象是什么 二:语法(Promise使用步骤) 三:Promise-三种状态 一:promise对象是什么 Promise 对象代表异步操作最终的完成(或失败)以及其结果值。 即Promise对象是…

番外篇 | YOLOv8算法解析和实战应用:车辆检测 + 车辆追踪 + 行驶速度计算

前言:Hello大家好,我是小哥谈。YOLOv8是ultralytics公司在2023年1月10号开源的,是YOLOv5的下一个重大更新版本,目前支持图像分类、物体检测和实例分割任务,在还没有开源时就收到了用户的广泛关注。它是一个SOTA模型,建立在以前YOLO版本的成功基础上,并引入了新的功能和改…

JVM的类加载机制

Java中类的加载阶段 类加载 Java中的类加载机制是Java运行时环境的一部分,确保Java类可以被JVM(Java虚拟机)正确地加载和执行。类加载机制主要分为以下几个阶段: 加载(Loading):这个阶段&#x…

剑指offer 算法题(搜索二维矩阵)

剑指offer 第二题 去力扣里测试算法 思路一&#xff1a; 直接暴力遍历二维数组。 class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {for (unsigned int i{ 0 }; i < matrix.size(); i){for (unsigned int j{ 0 };…

生信软件23 - Samtools和GATK去除PCR重复方法汇总

1. 为什么要去除重复&#xff1f; 在建库测序后&#xff0c; 加上接头的DNA片段进行PCR扩增&#xff08;由于连接flowcell的效率很低&#xff0c;所以需要对片段进行扩增&#xff09;&#xff0c;连接至flowcell上。PCR扩增会导致一个片段会测序多次&#xff0c;当该片段存在变…

Java学习笔记(二)变量原理、常用编码、类型转换

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍Java变量原理、常用编码、类型转换详细使用以及部分理论知识 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍉博主收将持续更新学习记录获,友友们有任何问题可以在评论区留言 1、变量原理 1.1、变量的介绍 变量是程…

Java中setLineWrap(true)和setWrapStyleWord(true)优化TextArea

在 Java Swing 开发中&#xff0c;JTextArea 是一个多行的文本区域组件&#xff0c;常用于显示和编辑大量文本。当处理长文本时&#xff0c;默认行为是不换行并且出现水平滚动条&#xff0c;这通常会降低用户体验。幸运的是&#xff0c;JTextArea 提供了两个非常有用的方法&…

如何卸载windows系统自带游戏

为了清晰地指导如何卸载Windows系统自带游戏&#xff0c;我们可以参考以下步骤进行&#xff1a; 方法一&#xff1a;通过控制面板卸载 打开控制面板进入程序和功能在控制面板中&#xff0c;找到并点击“程序和功能”。在程序列表中&#xff0c;找到你想要卸载的自带游戏。 方…

EtherCAT扫盲,都是知识点

1. 什么是EtherCAT EtherCAT&#xff0c;全称Ethernet for Control Automation Technology&#xff0c;字面意思就是用于控制自动化技术的以太网。它是一种基于以太网的实时工业通信协议&#xff0c;简单说&#xff0c;就是让机器们通过网线互相聊天的高级方式。 EtherCAT 是最…

数仓开发那些事_番外

一位神州的正式员工&#xff08;没错&#xff0c;就是之前文章中出现的实习生&#xff09;&#xff1a;一闪&#xff0c;你今年涨工资了吗&#xff1f; 一闪&#xff1a;mad&#xff0c;一年辛苦到头只涨了500米 神州员工&#xff1a;你去年绩效不是优秀吗&#xff0c;怎么就涨…

C语言基础关键字的含义和使用方法

​关键字在C语言中扮演着非常重要的角色&#xff0c;它们定义了语言的基本构造和语法规则&#xff0c;通过使用关键字&#xff0c;开发者可以创建变量、定义数据类型、控制程序流程&#xff08;如循环和条件判断&#xff09;、声明函数等。由于这些字是保留的&#xff0c;所以编…

手把手教你实现条纹结构光三维重建(3)——相机投影仪标定

我们都知道&#xff0c;投影仪其实就是个反向相机&#xff0c;如果我们了解双目标定的原理&#xff0c;那么相机和投影仪的标定就不难&#xff0c;关键是我们怎么得到投影仪在图像特征点&#xff08;比如棋盘格角点&#xff09;上的像素位置。 投影仪也类似于一个cmos&#xf…

IO读取properties文件实现JDBC连接池实战

参考文章 Java中的池化思想 面试官&#xff1a;为什么数据库连接很消耗资源&#xff0c;资源都消耗在哪里&#xff1f; 池化思想是什么&#xff1f;连接池是什么&#xff1f; 在Java中&#xff0c;池化思想是一种通过创建和管理可重复使用的对象池来提高性能和资源利用率的编…

【图解IO与Netty系列】Netty编解码器、TCP粘包拆包问题处理、Netty心跳检测机制

Netty编解码器、TCP粘包拆包问题处理、Netty心跳检测机制 Netty编解码器编码器解码器编解码器Netty提供的现成编解码器 TCP粘包拆包问题处理Netty心跳检测机制 Netty编解码器 网络传输是以字节流的形式传输的&#xff0c;而我们的应用程序一般不会直接对字节流进行处理&#x…

建筑驱鸟设备 | 建筑专用超声波驱鸟器

从半夜的鸣叫到频繁的鸟粪污染&#xff0c;鸟类活动有时会成为城市居民不得不面对的小小困扰。通过合理的驱鸟方法&#xff0c;我们可以有效地减少鸟类对建筑物的侵扰&#xff0c;保护建筑物的完好和安全&#xff0c;同时维护城市居民的生活质量。 建筑专用超声波驱鸟器&#x…