特征抽取-----机器学习pycharm软件

导入包

from sklearn.datasets import load_iris  # 方法datasets_demo()数据集使用
from sklearn.feature_extraction import DictVectorizer   # 方法dict_demo()字典特征抽取用
from sklearn.feature_extraction.text import CountVectorizer #  方法count_demo()文本特征抽取、count_chinese_demo中文文本特征抽取使用
from sklearn.feature_extraction.text import TfidfVectorizer # 方法使用tfidf_demo()文本特征抽取
import jieba    #  方法count_chinese_demo文本特征抽取使用
import logging  #  方法count_chinese_demo文本特征抽取使用

sklearn数据集的使用

def datasets_demo():"""sklearn数据集的使用:return:"""iris = load_iris()print("鸢尾花数据集返回值:\n",iris)  #返回值是一个继承自字典的Benchprint("查看数据集描述:\n",iris["DESCR"])   #通过字典属性查看print("查看数据集特征名字:\n",iris.feature_names)print("查看特征值形状(几行几列):\n",iris.data.shape)return None

部分效果展示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

字典特征抽取

def dict_demo():"""字典特征抽取:return:"""data = [{'city': '上海', 'temperature': 100}, {'city': '上海', 'temperature': 60},{'city': '北京', 'temperature': 60}]#   1.实例化一个转换器类transfer = DictVectorizer() # 参数默认True,即返回值是稀疏矩阵#   2.调用fit_transform()方法data_new = transfer.fit_transform(data)print("特征名字:\n", transfer.get_feature_names_out())print("data_new:\n",data_new)     #   输出为稀疏矩阵,输出 值 没有0 ,即非零值按位置表示出来,return None

效果展示:
在这里插入图片描述

文本特征抽取

def count_demo():"""文本特征提取:以单词作为特征值:return:"""data = ["life is beautiful,i like it very very much","life is not beatiful,but i am smile"]#   1.实例化一个转换器类transfer = CountVectorizer()#   2.调用fit_transform()方法data_new = transfer.fit_transform(data)print("数据特征:\n",transfer.get_feature_names_out())print("data_new:\n",data_new)   # 返回稀疏矩阵print("数据特征:\n", transfer.get_feature_names_out())print("data_new:\n",data_new.toarray()) #  看二维数据,对样本出现特征词的个数进行统计return None

效果展示:
在这里插入图片描述

中文文本特征抽取

def count_chinese_demo():"""中文文本特征提取 : 以短语作为特征值, 如果需要实现单词作为特征值的效果,有两种方法.1.手动实现,需要用空格隔开实现,eg:生活 美好,我 非常 非常 喜欢2.jieba分词:return:"""data = ["生活美好,我非常非常喜欢", "生活不好,但我微笑面对"]data2 = ["生活 美好,我 非常 非常 喜欢","生活 不好,但 我 微笑 面对"]#   1.实例化一个转换器类transfer = CountVectorizer()transfer2 = CountVectorizer()#   2.调用fit_transform()方法data_new = transfer.fit_transform(data)print("数据特征:\n",transfer.get_feature_names_out())print("data_new:\n",data_new)   # 返回稀疏矩阵print("数据特征:\n", transfer.get_feature_names_out())print("data_new:\n", data_new.toarray())  # 看二维数据,对样本出现特征词的个数进行统计print("=========================数据用空格分开后============================")data_new2 = transfer2.fit_transform(data2)print("数据特征:\n", transfer2.get_feature_names_out())print("data_new:\n", data_new2)  # 返回稀疏矩阵print("数据特征:\n", transfer2.get_feature_names_out())print("data_new:\n", data_new2.toarray())  # 看二维数据,对样本出现特征词的个数进行统计print("=========================jieba分词============================")# """#     代码#     a = [list(jieba.cut(sentence)) for sentence in data]#     print(a)#     输出中包含了关于jieba分词库的信息.这是因为在第一次运行jieba.cut时,它会加载分词所需的词典和模型文件,这些文件会被缓存起来以提高后续的分词速度。#     因此,会看到类似"Building prefix dict from the default dictionary"、"Dumping model to file cache"、"Loading model cost"和"Prefix dict has been built successfully"这样的信息。#     这些信息表明分词库已经成功加载并准备好使用,#     而最后的输出[['生活', '美好', ',', '我', '非常', '非常', '喜欢'], ['生活', '不好', ',', '但', '我', '微笑', '面对']]则是分词后的结果。#     在调用jieba.cut之前,使用ieba.setLogLevel(logging.INFO)代码来关闭jieba的日志输出,控制jieba输出的日志信息,使其只输出INFO级别及以上的日志,而不输出DEBUG级别的日志。#     要注意,使用此代码要导入所需日志包    import logging# """# jieba.setLogLevel(logging.INFO) # 关掉日志信息# a = [list(jieba.cut(sentence)) for sentence in data]    # 此时a是一个列表# b = " ".join([" ".join(jieba.cut(sentence)) for sentence in data] ) # 此时b是字符串,首先使用列表推导式将每个句子分词后得到的列表通过空格连接成一个字符串,然后再使用空格将这些字符串连接成一个大的字符串,最终将结果赋值给变量b# print(a,type(a),"\n",b,type(b))# #根据这些测试 总结为一个方法cut_word方便使用#   1.将中文文本进行分词jieba.setLogLevel(logging.INFO)  # 关掉日志信息data_new3 = []for sent in data:data_new3.append(cut_word(data))# print(data_new3)#   2.实例化转换器transfer3 = CountVectorizer()#   3.调用方法data_final = transfer3.fit_transform(data_new3)print("数据特征:\n", transfer3.get_feature_names_out())print("data_new:\n", data_final.toarray())  # 看二维数据,对样本出现特征词的个数进行统计return Nonedef cut_word(text):"""jieba分词  进行中文分词:param text::return:"""return " ".join([" ".join(jieba.cut(sentence)) for sentence in text] )print("==============用TF-IDF的方法进行文本特征抽取================")def tfidf_demo():"""用TF-IDF的方法进行文本特征抽取:return:"""data = ["生活美好,我非常非常喜欢", "生活不好,但我微笑面对"]#   1.将中文文本进行分词jieba.setLogLevel(logging.INFO)  # 关掉日志信息data_new = []for sent in data:data_new.append(cut_word(data))# print(data_new3)#   2.实例化转换器transfer3 = TfidfVectorizer()#   3.调用方法data_final = transfer3.fit_transform(data_new)print("数据特征:\n", transfer3.get_feature_names_out())print("data_new:\n", data_final.toarray())  # 看二维数据,对样本出现特征词的个数进行统计return None

在这里插入图片描述
在这里插入图片描述

调用方法

什么抽取都写成了方法需要调用才可以输出,输出效果如“效果展示”所示

if __name__ == '__main__':#skilearn数据集的使用datasets_demo()#字典特征提取dict_demo()# 文本特征抽取count_demo()#中文文本特征抽取count_chinese_demo()#用TF-IDF的方法进行文本特征抽取tfidf_demo()

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

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

相关文章

民用激光雷达行业简析

01. 激光雷达是“机器之眼” • 激光雷达是一个通过发射激光并接受发射激光同时对其进行信号处理,从而获得周边物体距离等信息的主动测量装置。 • 激光雷达主要由光发射、光扫描、光接收三大模块组成。光发射模块集成了驱动、开关和光源等芯片。光接收模块集成了…

【AIGC】Diffusers:扩散模型的开发手册说明2

前言 扩散器被设计成一个用户友好且灵活的工具箱,用于构建适合您用例的扩散系统。工具箱的核心是模型和调度程序。然而 DiffusionPipeline 为方便起见将这些组件捆绑在一起,但您也可以解包管道并分别使用模型和调度程序来创建新的扩散系统。 解构 Stab…

基于物联网的智能植物养护系统的设计与实现

基于物联网的智能植物养护系统的设计与实现 系统简介 由于大多数人喜欢花草却不会照料,买了花草之后却没有时间照顾,从而导致花草枯萎。本设计利用wifi传输设定植物的适当光照强度,适当的土壤温湿度。然后根据温湿度传感器及光照传感进行实时…

文件备份管理软件系统

1、我解决的问题 避免因为硬盘故障,导致数据丢失; 避免因为中了病毒,文件被加密,无法取回; 避免了员工恶意删除文件; 规范企业内部的文件管理,使它井井有条; 防范于未然,不必再为可能的风险担忧; 2、我的优点 我支持定…

第二篇【传奇开心果系列】beeware的toga开发移动应用示例:手机应用视频播放器

传奇开心果博文系列 系列博文目录beeware的toga开发移动应用示例系列 博文目录一、项目目标二、编程思路三、初步实现项目目标示例代码四、第一次扩展示例代码五、第二次扩展示例代码六、第三次扩展示例代码七、第四次扩展示例代码八、第五次扩展示例代码九、第六次扩展示例代码…

1.19号网络

超时检测 概念 1> 在网络通信中,有很多函数是阻塞函数,会导致进程的阻塞,例如:accept、recv、recvfrom、等等 2> 为了避免进程在阻塞函数处,无休止的等待,我们可以设置一个超时时间,当…

详细分析MybatisPlus中的Page类(附实战)

目录 前言1. 基本知识2. 常用方法3. 实战 前言 由于工作中经常使用到MybatisPlus的框架,对此详细连接Page类有利于开发,更加游刃有余 对于该类的源码:baomidou / mybatis-plus 中的Page源码 MybatisPlus的框架:MyBatis-plus从入…

【操作系统基础】【CPU访存原理】:寄存 缓存 内存 外存、内存空间分区、虚拟地址转换、虚拟地址的映射

存储器怎么存储数据、内存空间分区、虚拟地址转换 计算机的存储器:寄存 缓存 内存 外存(按功能划分) 计算机的处理器需要一个存储器来存储大量的指令和数据以便自己不断取指执行和访问数据。 内存(内存就是运行内存&#xff0c…

java web 校园健康管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java Web校园健康管理系统是一套完善的java web信息管理系统 ,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysq…

【AI】深度学习与图像描述生成——看图说话(2)

目录 一、计算机视觉 应用场景 重要意义 二、自然语言处理 应用场景 重要意义 三、二者的联系与结合 联系 结合场景 重要意义 四、图像描述处理(生成) 关键技术 发展历程 五、一些补充 计算机视觉和自然语言处理是人工智能领域的两大重要分…

查询列表实时按照更新时间降序排列 没有更新时间就按创建时间

例子: sql两个字段排序 ORDER BY update_time DESC , create_time DESC <select id"selectLawIllegalActivitiesList" parameterType"LawIllegalActivities" resultMap"LawIllegalActivitiesResult"><include refid"selectL…

252.【2023年华为OD机试真题(C卷)】局域网中的服务器个数(优先搜索(DFS)-JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-局域网中的服务器个数二.解题思路三.题解代码P…

04.Elasticsearch应用(四)

Elasticsearch应用&#xff08;四&#xff09; 1.目标 这一章主要解读以下索引 2.什么是索引 索引是文档的容器&#xff0c;是一类文档的结合索引是一个逻辑命名空间&#xff0c;它映射到一个或多个主分片&#xff0c;并且可以具有零个或多个副本分片索引中数据分散在Shard…

宠物空气净化器怎么挑选?猫用空气净化器品牌性比价推荐

作为一个养猫家庭的主人&#xff0c;每天都要面对一个挑战——清理猫砂盆。那种难以形容的气味实在让人受不了。尤其是家里有小孩和老人&#xff0c;他们偶尔可能会出现过敏性鼻炎等问题&#xff0c;而抵抗力较差的人更容易受到影响。此外&#xff0c;一到换毛季节&#xff0c;…

【基础算法练习】二分模板

文章目录 二分模板题二分的思想C 版本的二分整数二分模板 Golang 版本的二分整数二分模板 例题&#xff1a;在排序数组中查找元素的第一个和最后一个位置题目描述C 版本代码Golang 版本代码 二分模板题 704. 二分查找&#xff0c;这道题目是最经典的二分查找&#xff0c;使用于…

Spring依赖注入之setter注入与构造器注入以及applicationContext.xml配置文件特殊值处理

依赖注入之setter注入 在管理bean对象的组件的时候同时给他赋值&#xff0c;就是setter注入&#xff0c;通过setter注入&#xff0c;可以将某些依赖项标记为可选的&#xff0c;因为它们不是在构造对象时立即需要的。这种方式可以减少构造函数的参数数量&#xff0c;使得类的构…

天津大数据培训班推荐,数据分析过程的常见错误

大数据”是近年来IT行业的热词&#xff0c;目前已经广泛应用在各个行业。大数据&#xff0c;又称海量信息&#xff0c;特点是数据量大、种类多、实时性强、数据蕴藏的价值大。大数据是对大量、动态、能持续的数据&#xff0c;通过运用分析、挖掘和整理&#xff0c;实现数据信息…

【dpdk】Getting Started Guide for Linux DPDK

Getting Started Guide for Linux — Data Plane Development Kit 23.11.0 documentation (dpdk.org) DPDK官网 文章目录 1.dpdk build with isa-l2.System Requirements3.Running DPDK Applications3.1. dpdk-hugepages Application3.1.1. Running the Application3.1.2. Opt…

生产力工具|卸载并重装Anaconda3

一、Anaconda3卸载 &#xff08;一&#xff09;官方方案一&#xff08;Uninstall-Anaconda3-不能删除配置文件&#xff09; 官方推荐的方案是两种&#xff0c;一种是直接在Anaconda的安装路径下&#xff0c;双击&#xff1a; &#xff08;可以在搜索栏或者使用everything里面搜…

Python 列表定义与一些常用属性和方法

一、定义&#xff1a; 列表是一种有序、可变的容器&#xff0c;可以包含任意类型的元素。定义一个列表使用的是方括号&#xff08;[]&#xff09;&#xff0c;列表中的元素之间用逗号分隔。 以下是几种常见的列表定义方式&#xff1a; 空列表&#xff1a; my_list []包含元素…