我理解的文本表示模型

词袋模型与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.mzph.cn/bicheng/32261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML页面布局-使用div示例

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><!--text-align:center 文字水平居中line-height&#xff1a;200px; 文字垂直居中,行高设置跟高…

点云处理中阶 Sample Consensus(一)

目录 一、什么是Sample Consensus (采样一致性) 二、推荐阅读 三、提供的示例 四、注意问题 一、什么是Sample Consensus (采样一致性) PCL(Point Cloud Library)中的 Sample Consensus 是一种用于点云数据的模型拟合方法。它的核心思想是通过迭代的方式,在点云数据…

聚类算法(2)--- ISODATA算法

本篇文章是博主在人工智能等领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅解。文章分类在AI学习笔记&#…

Vue02-第一个Vue程序

第一个Vue程序 1、什么是MVVM MVVM&#xff08;Model-View-ViewModel&#xff09;是一种软件设计模式&#xff0c;由微软WPF&#xff08;用于替代WinForm&#xff0c;以前就是用这个技术开发桌面应用程序的&#xff09;和Silverlight&#xff08;类似于Java Applet&#xff0…

安卓安装linux + .net环境

安装Termux 到下面地址获取apk安装包 https://github.com/termux/termux-app 安装ssh ~ $ pkg install openssl ~ $ pkg install openssh查看用户名 ~ $ whoami ssh u0_a390修改当前用户密码 passwd 启动ssh sshd 安装 proot-distro pkg install proot-distro 列出能装的lin…

新手(初学者)学R语言第一课,从学正确导入数据开始

初看题目好像我在教你怎么导入数据&#xff0c;不不不&#xff0c;我是在教你正确的导入数据&#xff0c;不是说数据导入R就叫正确导入数据了。本章为新手教程&#xff0c;老手可以跳过。 这个内容早就想写了&#xff0c;今天有点空和大家聊一下。为什么R语言对于新手而言不太友…

nginx启动之后任务管理器里面没有nginx进程

原因1&#xff1a;确保你的nginx文件夹里面只包含英文路径&#xff01;绝对不能有中文&#xff01; 原因2&#xff1a; 到conf\nginx.conf里面查看端口和IP地址是否正确设置&#xff0c;ip地址有无正确输入

SpringCloud-nacos基础

SpringCloud-nacos nacos在微服务种有两大作用&#xff1a; 配置中心服务注册中心 配置中心 维度管理 nacos配置中心可以在三个维度进行管理&#xff1a; spring.profiles.active dev/prod/test,通过这个属性可以配置不同环境下的配置文件。 配置的文件名应该为${spring…

【MATLAB】(高数)

参考文章 函数极限 导数与偏导 极值和最值 局部范围的最值 局部范围内的最值&#xff0c;相当于函数的极值 离散数据的最值 多元函数的极值 fminunc [x, fval] fminunc(fun, x0)fun为代求极值的函数&#xff1b;x0为起始点&#xff0c;即从这个点开始寻找极值&#xff0c;…

SpringCloud-OpenFeign基础

OpenFeign OpenFeign简介 OpenFeign是一个基于HTTP协议的RPC&#xff08;远程过程调用&#xff09;组件&#xff0c;用于简化HTTP请求和响应的处理。它通过声明式的方式定义REST API接口&#xff0c;并自动生成实现该接口的客户端代码&#xff0c;从而简化了RESTful服务的调用…

4、MFC:菜单栏、工具栏与状态栏

菜单栏、工具栏与状态栏 1、菜单栏1.1 简介1.2 创建属性设置菜单消息成员函数 1.3 实例 2、工具栏2.1 简介工具栏属性2.2 创建消息CToolBar类的主要成员函数 2.3 实例 3、状态栏3.1 简介3.2 创建CStatusBar类状态栏创建 3.3 实例 1、菜单栏 1.1 简介 菜单在界面设计中是经常使…

渗透测试-若依框架的杀猪交易所系统管理后台

前言 这次是带着摸鱼的情况下简单的写一篇文章&#xff0c;由于我喜欢探究黑灰产业&#xff0c;所以偶尔机遇下找到了一个加密H币的交易所S猪盘&#xff0c;我记得印象是上年的时候就打过这一个同样的站&#xff0c;然后我是通过指纹查找其它的一些站&#xff0c;那个站已经关…

海外短剧系统如何征服观众心

海外短剧系统要征服观众的心&#xff0c;需要综合考虑多个方面。 1、紧凑的剧情设计&#xff1a; 短小精悍&#xff1a;海外短剧通常每集时长不超过半小时&#xff0c;甚至有的仅有几分钟。这种紧凑的剧情设计让观众能够在短时间内迅速沉浸在故事中&#xff0c;无需花费大量时间…

OpenCV一文入门

OpenCV一文入门 官网地址 OpenCV 当前版本 opencv-python 4.9.0.80 python 包地址 https://pypi.org/project/opencv-python/ OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源计算机视觉和机器学习软件库&#xff0c;由Intel最初开发&#xff0c…

oracle中使用临时表GLOBAL TEMPORARY TABLE

需要在存储过程中返回一个临时结果集&#xff0c;这个结果集又是多个语句通过循环查询出来的&#xff0c;这时候就想到了将结果插入到临时表中&#xff0c;然后返回临时表的数据的思路&#xff0c;于是有了以下操作&#xff1a; 1.创建临时表 -- Create table create global …

STM32驱动-ads1112

汇总一系列AD/DA的驱动程序 ads1112.c #include "ads1112.h" #include "common.h"void AD5726_Init(void) {GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC, ENABLE );//PORTA、D时钟使能 G…

Oracle报错:ORA-02292: 违反完整约束条件 - 已找到子记录问题解决

目录 一、问题详情 二、原因分析 三、解决方案 一、问题详情 使用Mybatis删除数据的时候&#xff0c;报了如下错误详情&#xff1a; org.springframework.dao.DataIntegrityViolationException: ### Error updating database. Cause: java.sql.SQLException: ORA-02292: …

数学建模 —— 查找数据

目录 百度搜索技巧 完全匹配搜索&#xff1a;查询词的外边加上双引号“ ” 标题必含关键词&#xff1a;查询词前加上intitle: 搜索文档&#xff1a;空格再输入filetype:文件格式 去掉不想要的&#xff1a;查询词后面加空格后加减号与关键字 知网查文献 先看知网的硕博士…

大脑临界状态:探索思维背后的物理机制

在深度思考或创造性灵感的涌现时刻&#xff0c;个体常体验到一种介于混乱与有序之间的特殊心理状态。这种感受实则反映了大脑在认知过程中的临界状态&#xff0c;这是一种涉及复杂物理现象的心理活动表现。近期研究表明&#xff0c;大脑结构中存在着与临界性密切相关的物理特性…

为什么挂牌量是跟踪楼市情况的核心指标?

通过挂牌量&#xff0c;可以跟踪被动卖出者的数量&#xff0c;从而理解楼市的进展。 引子 楼市的“5.17”新政落地有一个多月了&#xff0c;然而&#xff0c;资本市场对“楼市的复苏预期”却在不断地下修。 以房地产开发的龙头企业保利发展为例&#xff0c;市场在“5.17”新…