《机器学习》——sklearn库中CountVectorizer方法(词频矩阵)

CountVectorizer方法介绍

  • CountVectorizer 是 scikit-learn 库中的一个工具,它主要用于将文本数据转换为词频矩阵,而不是传统意义上的词向量转换,但可以作为词向量转换的一种基础形式。
  • 用于将文本数据转换为词频矩阵,它是文本特征提取的重要方法之一。

用法

  • 分词:将输入的文本分割成单词或 n-gram 序列。
  • 构建词汇表:统计文本中出现的所有唯一的词,并为每个词分配一个唯一的索引。
  • 生成词频矩阵:对于每一个输入的文本,根据词汇表统计每个词出现的次数,生成一个稀疏矩阵,矩阵的行表示文档,列表示词汇表中的词,元素表示该词在相应文档中的出现频率。

CountVectorizer

在这里插入图片描述

主要参数

  • input=‘content’:输入数据的类型,可以是 ‘content’(字符串)、‘filename’ 或 ‘file’。
  • encoding=‘utf-8’:文本的编码方式。
  • decode_error=‘strict’:解码错误时的处理方式,如 ‘strict’、‘ignore’、‘replace’ 等。
  • strip_accents=None:去除重音字符,可设置为 ‘ascii’ 或 unicode。
  • lowercase=True:将所有字符转换为小写。
  • preprocessor=None:预处理器,用于在分词前对文本进行处理。
  • tokenizer=None:自定义分词器,默认为 None,使用 CountVectorizer 自带的分词器。
  • stop_words=None:停用词列表,可以是 ‘english’ 或自定义的停用词列表。
  • token_pattern=‘(?u)\b\w\w+\b’:用于分词的正则表达式模式。
  • ngram_range=(1, 1):提取 n 元语法的范围,默认为一元语法。
  • analyzer=‘word’:分析器,可以是 ‘word’(单词级)或 ‘char’(字符级)。
  • max_df=1.0:词汇表中一个单词在文档中出现的最大频率,可设置为浮点数(比例)或整数(绝对次数)。
  • min_df=1:词汇表中一个单词在文档中出现的最小频率,可设置为浮点数(比例)或整数(绝对次数)。
  • max_features=None:词汇表的最大大小,限制词汇表中的单词数量。

CountVectorizer例子

from sklearn.feature_extraction.text import CountVectorizer

texts = ["dog cat fish","dog cat cat","fish bird","bird"]
cont = []
# 实例化一个模型
cv = CountVectorizer(ngram_range=(1,3)) 
# 这里实例化了一个 CountVectorizer 对象 cv,ngram_range=(1,3) 表示要考虑的 n-gram 的范围是从 1 个词到 3 个词的组合。
# 例如,对于 "dog cat fish",会考虑 "dog"、"cat"、"fish"、"dog cat"、"cat fish" 和 "dog cat fish" 等。

# 训练此模型
cv_fit = cv.fit_transform(texts) 
# 使用 fit_transform 方法对输入的文本列表 texts 进行训练和转换。
# 它会先对文本进行分词处理,然后统计每个词(或 n-gram)在每个文本中出现的频率。

print(cv.get_feature_names_out())
# 调用 get_feature_names_out 方法,将返回一个包含所有不同的词(或 n-gram)的数组。
# 这些词是在对输入的文本进行处理后得到的词汇表,会根据输入文本中出现的不同词汇以及 n-gram 组合形成。

print(cv_fit)
# 打印 cv_fit,它是一个稀疏矩阵对象,存储了词频信息。由于文本数据通常是稀疏的(大部分元素为 0),
# 所以使用稀疏矩阵来存储可以节省空间和提高计算效率。

# 打印出每个语句的词向量
print(cv_fit.toarray())
# 调用 toarray 方法将稀疏矩阵 cv_fit 转换为密集数组。
# 这样可以更直观地看到每个语句中各个词汇或 n-gram 的出现次数,行代表输入的不同文本,列代表词汇表中的词汇或 n-gram。

# 打印出所有数据求和结果
print(cv_fit.toarray().sum(axis=0))
# 对 cv_fit.toarray() 得到的数组按列求和,即计算每个词汇或 n-gram 在所有文本中出现的总次数。
# axis=0 表示按列进行求和操作。

结果:
在这里插入图片描述

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

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

相关文章

CV 图像处理基础笔记大全(超全版哦~)!!!

一、图像的数字化表示 像素 数字图像由众多像素组成,是图像的基本构成单位。在灰度图像中,一个像素用一个数值表示其亮度,通常 8 位存储,取值范围 0 - 255,0 为纯黑,255 为纯白。例如,一幅简单的…

支持向量回归(SVR:Support Vector Regression)用于A股数据分析、预测

简单说明 支持向量回归是一种用来做预测的数学方法,属于「机器学习」的一种。 它的目标是找到一条「最合适的线」,能够大致描述数据点的趋势,并允许数据点离这条线有一定的误差(不要求所有点都完全落在这条线上)。 可以把它想象成:找到一条「宽带」或「隧道」,大部分…

ollama教程(window系统)

前言 在《本地大模型工具哪家强?对比Ollama、LocalLLM、LM Studio》一文中对比了三个常用的大模型聚合工具优缺点,本文将详细介绍在window操作系统下ollama的安装和使用。要在 Windows 上安装并使用 Ollama,需要依赖 NVIDIA 显卡&#xff0c…

Flink系统知识讲解之:容错与State状态管理

Flink系统知识之:容错与State状态管理 状态在Flink中叫作State,用来保存中间计算结果或者缓存数据。根据是否需要保存中间结果,分为无状态计算和有状态计算。对于流计算而言,事件持续不断地产生,如果每次计算都是相互…

DolphinScheduler自身容错导致的服务器持续崩溃重大问题的排查与解决

01 问题复现 在DolphinScheduler中有如下一个Shell任务: current_timestamp() { date "%Y-%m-%d %H:%M:%S" }TIMESTAMP$(current_timestamp) echo $TIMESTAMP sleep 60 在DolphinScheduler将工作流执行策略设置为并行: 定时周期调度设置…

ASP.NET Core 实现微服务 - Elastic APM

这次要给大家介绍的是Elastic APM ,一款应用程序性能监控组件。APM 监控围绕对应用、服务、容器的健康监控,对接口的调用链、性能进行监控。在我们实施微服务后,由于复杂的业务逻辑,服务之间的调用会像蜘蛛网一样复杂。有了调用链…

25/1/12 嵌入式笔记 学习esp32

了解了一下位选线和段选线的知识: 位选线: 作用:用于选择数码管的某一位,例如4位数码管的第1位,第2位) 通过控制位选线的电平(高低电平),决定当前哪一位数码管处于激活状…

IMX6U Qt 开发环境

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、交叉编译 1. 安装通用 ARM 交叉编译工具链 2. 安装 Poky 交叉编译工具链 二、编译出厂源码 1. U-boot 2. 内核和模块 3. 编译出厂 Qt GUI 综合 Demo 前言…

【Oracle专栏】2个入参,生成唯一码处理

Oracle相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 1.背景 业务需要:2个参数,如 aidbankid ,两个值是联合主键,需要生成一个固定唯一码,长度有限制32位,为了…

跨界融合:人工智能与区块链如何重新定义数据安全?

引言:数据安全的挑战与现状 在信息化驱动的数字化时代,数据已成为企业和个人最重要的资产之一。然而,随着网络技术的逐步优化和数据量的爆发式增长,数据安全问题也愈变突出。 数据安全现状:– 数据泄露驱动相关事件驱…

给DevOps加点料:融入安全性的DevSecOps

从前,安全防护只是特定团队的责任,在开发的最后阶段才会介入。当开发周期长达数月、甚至数年时,这样做没什么问题;但是现在,这种做法现在已经行不通了。 采用 DevOps 可以有效推进快速频繁的开发周期(有时…

CDP中的Hive3之Hive Metastore(HMS)

CDP中的Hive3之Hive Metastore(HMS) 1、CDP中的HMS2、HMS表的存储(转换)3、HWC授权 1、CDP中的HMS CDP中的Hive Metastore(HMS)是一种服务,用于在后端RDBMS(例如MySQL或PostgreSQL&a…

【算法】判断一个链表是否为回文结构

问: 给定一个单链表的头节点head,请判断该链表是否为回文结构 例: 1 -> 2 -> 1返回true;1 -> 2 -> 2 -> 1返回true;15 -> 6 -> 15返回true 答: 笔试:初始化一个栈用来…

Python双指针

双指针 双指针:在区间操作时,利用两个下标同时遍历,进行高效操作 双指针利用区间性质可以把 O ( n 2 ) O(n^2) O(n2) 时间降低到 O ( n ) O(n) O(n) 反向扫描 反向扫描: l e f t left left 起点,不断往右走&…

VMware虚拟机安装Home Assistant智能家居平台并实现远程访问保姆级教程

目录 前言 1. 安装Home Assistant 前言 本文主要介绍如何在windows 10 上用VMware Workstation 17 Pro搭建 Home Assistant OS Host os version:Windows 10 Pro, 64-bit (Build 19045.5247) 10.0.19045 VMware version:VMware Workstation 17 Pro 1. 安装Home …

【MySQL】SQL菜鸟教程(一)

1.常见命令 1.1 总览 命令作用SELECT从数据库中提取数据UPDATE更新数据库中的数据DELETE从数据库中删除数据INSERT INTO向数据库中插入新数据CREATE DATABASE创建新数据库ALTER DATABASE修改数据库CREATE TABLE创建新表ALTER TABLE变更数据表DROP TABLE删除表CREATE INDEX创建…

【Java回顾】Day5 并发基础|并发关键字|JUC全局观|JUC原子类

JUC全称java.util.concurrent 处理并发的工具包(线程管理、同步、协调) 一.并发基础 多线程要解决什么问题?本质是什么? CPU、内存、I/O的速度是有极大差异的,为了合理利用CPU的高性能,平衡三者的速度差异,解决办法…

自然语言转 SQL:通过 One API 将 llama3 模型部署在 Bytebase SQL 编辑器

使用 Open AI 兼容的 API,可以在 Bytebase SQL 编辑器中使用自然语言查询数据库。 出于数据安全的考虑,私有部署大语言模型是一个较好的选择 – 本文选择功能强大的开源模型 llama3。 由于 OpenAI 默认阻止出站流量,为了简化网络配置&#…

一学就废|Python基础碎片,文件读写

文件处理是指通过编程接口对文件执行诸如创建、打开、读取、写入和关闭等操作的过程。它涉及管理程序与存储设备上的文件系统之间的数据流,确保数据得到安全高效的处理。 Python 中的文件模式 打开文件时,我们必须指定我们想要的模式,该模式…

牛客网刷题 ——C语言初阶(6指针)——倒置字符串

1. 题目描述:倒置字符串 牛客网OJ题链接 描述 将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I 输入描述: 每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超…