【Python机器学习】处理文本数据——将文本数据表示为词袋
用于机器学习的文本有一种最简单的方法,也是最有效且最常用的方法,就是使用词袋表示。使用这种表示方法时,我们舍弃了输入文本中的大部分结构,比如章节、段落、句子和格式,只计算语料库中,只计算语料库中每个单词在每个文本中出现的频次。舍弃结构并仅计算单词出现的次数,这会让脑海中出现将文本表示为“袋”的画面。
对于文档语料库,计算词袋表示包括以下三个步骤:
1、分词。将每个文档划分为出现在其中的单词(称为词例 token),比如按空格和标点划分。
2、构建词表。收集一个词表,里面包含出现在任意文档中的所有词,并对它们进行编号。
3、编码。对于每个文档,计算词表中每个单词在该文档中出现的频次。
在步骤1和步骤2涉及一些细微之处。我们来看一下如何利用scikit-learn来应用词袋处理过程。词袋的输出是包含每个文档中单词计数的一个向量。对于词表中的每个单词,我们都有它在每个文档中出现的次数。也就是说,整个数据集中的每个唯一单词都对应于这中数值表示的一个特征。要注意,原始字符串中的单词顺序与词袋特征表示完全无关。
将词袋应用于玩具数据集:
词袋表示是在CountVectorizer中实现的,它是一个变换器(transformer)。我们首先将它应用于包含两个样本的玩具数据集,来看一下它的工作原理:
bards_words=['the fool doth think he is wise','but then wise man knows himself to be a fool']
我们导入CountVectorizer并将其实例化,然后对玩具数据进行拟合,如下所示:
bards_words=['the fool doth think he is wise','but then wise man knows himself to be a fool']
vect=CountVectorizer()
vect.fit(bards_words)
拟合CountVectorizer包括训练数据的分词与词表的构建,我们可以通过vocabulary_属性来访问词表:
print('词表大小:{}'.format(len(vect.vocabulary_)))
print('词表:{}'.format(vect.vocabulary_))

词表一个包含14个单词,从“be”到“wise”。
我们可以调用transform方法来创建训练数据的词袋表示:
bag_of_words=vect.transform(bards_words)
print('词袋表示:{}'.format(repr(bag_of_words)))

词袋表示保存在一个SciPy系数矩阵中,这种数据格式只保存非零元素。这个矩阵的形状为2*13,每行对应于两个数据点之一,每个特征对应于词表中的一个单词。这里使用稀疏矩阵,是因为大多数文档斗志包含次表中的一小部分单词,也就是说特征数组的大部分元素都为0,因为保存0的代价很高,也浪费内存。要想查看稀疏矩阵的实际内容,可以使用toarray方法将其转换为“密集的”NumPy数组(保存所有0元素):
但是这里之所以可行,是因为我们使用的是仅包含13个单词的小型数据集。对于任何真实数据集来说,这将会导致内存报错。
print('矩阵实际数组内容:{}'.format(bag_of_words.toarray()))

我们可以看到,每个单词的计数都是0或1.bards_words中的两个字符串都没有包含相同的单词。
我们来看一下如何阅读这些特征向量:第一个字符串被视为第一行,对于词表中第一个单词“be”,出现0次,第二个词0次,第三个次1次,以此类推。
访问词表的另一种方法是使用向量器的get_funture_name方法,它将返回一个列表,每个元素对应一个特征:
feature_name=vect.get_feature_names_out()
print('特征数量:{}'.format(len(feature_name)))
print('前20个特征:{}'.format(feature_name[:20]))

相关文章:
【Python机器学习】处理文本数据——将文本数据表示为词袋
用于机器学习的文本有一种最简单的方法,也是最有效且最常用的方法,就是使用词袋表示。使用这种表示方法时,我们舍弃了输入文本中的大部分结构,比如章节、段落、句子和格式,只计算语料库中,只计算语料库中每…...
论文写作全攻略:Kimi辅助下的高效学术写作技巧
学境思源,一键生成论文初稿: AcademicIdeas - 学境思源AI论文写作 完成论文写作是一个多阶段的过程,涉及到不同的任务和技能。以下是按不同分类总结的向Kimi提问的prompt,以帮助你在论文写作过程中取得成功: 1. 选题与…...
通证经济重塑经济格局
在数字化转型的全球浪潮中,通证经济模式犹如一股新兴力量,以其独特的价值传递与共享机制,重塑着经济格局,引领我们步入数字经济的新纪元。 通证,作为这一模式的核心,不仅是权利与权益的数字化凭证…...
linux - cp 命令
问:cp -r ./src/. ./dst 与 cp -r ./src/* ./dst 有什么区别? 1.隐藏文件和目录:cp -r ./src/* ./dst 不会复制隐藏文件和目录。cp -r ./src/. ./dst 会复制所有文件和目录,包括隐藏文件和目录。 2.通配符和当前目录:* 是一个通…...
基于Qt实现的PDF阅读、编辑工具
记录一下实现pdf工具功能 语言:c、qt IDE:vs2017 环境:win10 一、功能演示: 二、功能介绍: 1.基于saribbon主体界面框架,该框架主要是为了实现类似word导航项 2.加载PDF放大缩小以及预览功能 3.pdf页面跳转…...
Linux 内核 GPIO 用户空间接口
文章目录 Linux 内核 GPIO 接口旧版本方式:sysfs 接口新版本方式:chardev 接口 gpiod 库及其命令行gpiod 库的命令行gpiod 库函数的应用 GPIO(General Purpose Input/Output,通用输入/输出接口),是微控制器…...
Hive数据倾斜--处理方法
1. 什么是数据倾斜? 在分布式计算场景下,大量的数据集中在某一个节点而导致一个任务的执行时间变长。而大量的节点只处理了小部分的数据,大数据组件处理海量数据的特点就是不患多,而患不均。 2. 怎么发现任务出现了数据倾斜现象 …...
k8s流控平台apiserver详解
一、简单理解认识apiserver 1.主要功能 认证 鉴权 准入 mutating validating admission 限流 2.概念 apiserver保护etcd,缓存机制,有缓存直接返回,没缓存再去查看etcd,apiserver是担任和其他平台同信并认证 3.访问控制概览…...
unity对于文件夹的操作
1、获取目标文件夹内所有文件夹 string[] directories Directory.GetDirectories(Path);for (int i 0; i < directories.Length; i){print(directories[i]);}2、获取目标文件夹内指定文件 public List<string> GetAllTxt(string path){//只获取文件名string[] files…...
[Redis]哨兵机制
哨兵机制概念 在传统主从复制机制中,会存在一些问题: 1. 主节点发生故障时,进行主备切换的过程是复杂的,需要人工参与,导致故障恢复时间无法保障。 2. 主节点可以将读压力分散出去,但写压力/存储压力是无法…...
Vue3--Watch、Watcheffect、Computed的使用和区别
Vue3–Watch、Watcheffect、Computed的使用和区别 一、watch 1.功能 watch 用于监听响应式数据的变化,并在数据变化时执行特定的回调函数。适合在响应式数据变化时执行异步操作或复杂逻辑。 2.主要特点 指定数据监听:可以精确地监听一个或多个响应式…...
hive调优原理详解:案例解析参数配置(第17天)
系列文章目录 一、Hive常问面试函数(掌握) 二、Hive调优如何配置(重点) 文章目录 系列文章目录前言一、Hive函数(掌握)11、JSON数据处理12、炸裂函数13、高频面试题13.1 行转列13.2 列转行 14、开窗函数&a…...
华为机试HJ15求int型正整数在内存中存储时1的个数
华为机试HJ15求int型正整数在内存中存储时1的个数 题目: 输入一个 int 型的正整数,计算出该 int 型数据在内存中存储时 1 的个数。 数据范围:保证在 32 位整型数字范围内 想法: 将输入的十进制数转为二进制,遍历记…...
NLP - Softmax与层次Softmax对比
Softmax Softmax是神经网络中常用的一种激活函数,用于多分类任务。Softmax函数将未归一化的logits转换为概率分布。公式如下: P ( y i ) e z i ∑ j 1 N e z j P(y_i) \frac{e^{z_i}}{\sum_{j1}^{N} e^{z_j}} P(yi)∑j1Nezjezi 其中&#…...
HttpServer内存马
HttpServer内存马 基础知识 一些基础的方法和类 HttpServer:HttpServer主要是通过带参的create方法来创建,第一个参数InetSocketAddress表示绑定的ip地址和端口号。第二个参数为int类型,表示允许排队的最大TCP连接数,如果该值小…...
51单片机-让一个LED灯闪烁、流水灯(涉及:自定义单片机的延迟时间)
目录 设置单片机的延迟(睡眠)函数查看单片机的时钟频率设置系统频率、定时长度、指令集 完整代码生成HEX文件下载HEX文件到单片机流水灯代码 (自定义延迟时间) 设置单片机的延迟(睡眠)函数 查看单片机的时钟频率 检测前单片机必…...
MYSQL原理、设计与应用
概述 数据库(Database,DB)是按照数据结构来组织、存储和管理数据的仓库,其本身可被看作电子化的文件柜,用户可以对文件中的数据进行增删改查等操作。 数据库系统是指在计算机系统中引入数据库后的系统,除了数据库,还…...
flask项目部署总结
这个部署的时候要用虚拟环境,cd进项目文件夹 python3 -m venv myenv source myenv/bin/activate激活 之后就安装一些库包之类的,(flask,requests,bs4,等等) 最重要的是要写.flaskenv文件并且pip install 一个能运行…...
【总线】AXI4第八课时:介绍AXI的 “原子访问“ :独占访问(Exclusive Access)和锁定访问(Locked Access)
大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计感兴趣,那你绝对不能错过我们今天的主角——AXI4总线。作为ARM公司AMBA总线家族中的佼佼者,AXI4以其高性能和高度可扩展性,成为了现代电子系统中不可或缺的通信桥梁…...
Java面试八股之MYISAM和INNODB有哪些不同
MYISAM和INNODB有哪些不同 MyISAM和InnoDB是MySQL数据库中两种不同的存储引擎,它们在设计哲学、功能特性和性能表现上存在显著差异。以下是一些关键的不同点: 事务支持: MyISAM 不支持事务,没有回滚或崩溃恢复的能力。 InnoDB…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...
从面试角度回答Android中ContentProvider启动原理
Android中ContentProvider原理的面试角度解析,分为已启动和未启动两种场景: 一、ContentProvider已启动的情况 1. 核心流程 触发条件:当其他组件(如Activity、Service)通过ContentR…...
