Python sklearn对文本数据进行特征化提取
作者:疯狂的小强呀 发布时间:2023-05-19 09:07:04
文本特征提取
作用:对文本数据进行特征化
(句子、短语、单词、字母)一般选用单词作为特征值
方法一:CountVectorizer
sklearn.feature_extraction.text.CountVectorizer(stop_words=[])
返回词频矩阵(统计每个样本特征词出现的个数)
CountVectorizer.fit_transform(X)
X:文本或者包含文本字符串的可迭代对象
返回值:返回sparse矩阵
CountVectorizer.inverse_transform(X)
X:array数组或者sparse矩阵
返回值:转换之前的数据格式
CountVectorizer.get_feature_names()
返回值:单词列表
代码展示:
from sklearn.feature_extraction.text import CountVectorizer
def count_demo():
#文本特征抽取
data=["life is short, i like like python","life is too long,i dislike python"]
#1、实例化一个转换器类
transfer=CountVectorizer()
#2、调用fit_transform()
result=transfer.fit_transform(data)
print("result:\n",result.toarray())
print("特征名字:\n", transfer.get_feature_names())
return None
方法二:TfidfVectorizer
关键词:在某一个类别的文章中,出现的次数很多,但是在其他类别的文章中出现的次数很少称为关键词
Tf-idf文本特征提取
①TF-IDF的主要思想是:如果某个词或短语在一篇文章中出现的概率高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。
②TF-IDF作用:用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。
公式
①词频(term frequency,tf)指的是某一个给定的词语在该文件中出现的频率
②逆向文档频率(inverse document frequency,idf)是一个词语普遍重要性的度量。某一特定词语的idf,可以由总文件数目除以包含该词语之文件数目,再将得到的商取以10为底的对数得到
tfidf = tf * idf
输出的结果可以理解为重要程度
API
sklearn.feature_extraction.text.TfidfVectorizer(stop_words=None,...)
返回词的权重矩阵
TfidfVectorizer.fit_transform(X)
X:文本或者包含文本字符串的可迭代对象
返回值:返回sparse矩阵
TfidfVectorizer.inverse_transform(X)
X:array数组或者sparse矩阵
返回值:转换之前数据格式
TfidfVectorizer.get_feature_names()
返回值:单词列表
中文分词+特征提取
from sklearn.feature_extraction.text import TfidfVectorizer
import jieba
def cut_word(text):
#中文分词
#jieba.cut(text)返回的是生成器对象,用list强转成列表
word=list(jieba.cut(text))
#转成字符串
words=" ".join(word)
return words
def tfidf_demo():
data = ["今天很残酷,明天更残酷,后天会很美好,但绝大多数人都死在明天晚上,却见不到后天的太阳,所以我们干什么都要坚持",
"注重自己的名声,努力工作、与人为善、遵守诺言,这样对你们的事业非常有帮助",
"服务是全世界最贵的产品,所以最佳的服务就是不要服务,最好的服务就是不需要服务"]
data_new = []
# 将中文文本进行分词
for sentence in data:
data_new.append(cut_word(sentence))
# 1、实例化一个转换器类
transfer = TfidfVectorizer()
# 2、调用fit_transform()
result = transfer.fit_transform(data_new) # 得到词频矩阵 是一个sparse矩阵
print("result:\n", result.toarray()) # 将sparse矩阵转化为二维数组
print("特征名字:\n", transfer.get_feature_names())
return None
来源:https://blog.csdn.net/David_house/article/details/128971480


猜你喜欢
- 今天的第二个作品,哈哈哈哈,搞起来感觉还挺有意思的,不过代码里纸牌J,Q,K,A几个数字被我替换成了11,12,13,14......主要是
- CentOS7默认数据库是mariadb, 但是 好多用的都是mysql ,但是CentOS7的yum源中默认好像是没有mysql的。上一篇
- 1. dbm UNIX键-值数据库dbm是面向DBM数据库的一个前端,DBM数据库使用简单的字符串值作为键来访问包含字符串的记录。dbm使用
- PIL vs PillowPIL: Python Imaging Library,是python的图像处理库。由于PIL不兼容setupto
- 本文是对《Python Qt GUI快速编程》的第9章的扩展对话框例子Find and replace用Python3+PyQt5+Qt D
- 引子vuejs 是一个入门简单的框架,具有使用简单,扩展方便的特点。随着webpack的流行,vuejs也推出了自己的load,vue-lo
- 目录一、图示二、准备三、一个简单服务器应用四、向服务器发送图片五、最终关键yolov5调用代码:一、图示客户端请求输入一段视频或者一个视频流
- function.js<!--function getObject(objectId) { &nbs
- 先准备好安装软件。从官网下载最新的pycharm版本:https://www.jetbrains.com/pycharm/download/
- 前言: 首先刚开始知道要书写一个这样的功能我的内心是比较崩溃的 完全没有思路, 然后就打开官网的文档进行观
- 这一篇笔记介绍 Django 系统 model 的外键处理,ForeignKey 以及相应的处理方法。这是一种一对多的字段类型,表示两张表之
- 1 unittest框架unittest 是python 的单元测试框架,它主要有以下作用:提供用例组织与执行:当你的测试用例只有几条时,可
- 使用Keras训练好的模型用来直接进行预测,这个时候我们该怎么做呢?【我这里使用的就是一个图片分类网络】现在让我来说说怎么样使用已经训练好的
- python replace函数替换无效问题str = "hello,china!"str.replace("
- 4款JavaScript放大镜特效脚本。准确的说,Anythingzoomer和Bezoom才是正宗的放大镜特效,当鼠标悬浮在图片上时,能放
- pytorch保存数据pytorch保存数据的格式为.t7文件或者.pth文件,t7文件是沿用torch7中读取模型权重的方式。而pth文件
- xbox series和ps5发售以来,国内黄牛价格一直居高不下。虽然海外amazon上ps5补货很少而且基本撑不过一分钟,但是xbox s
- 一、安装环境gym是用于开发和比较强化学习算法的工具包,在python中安装gym库和其中子场景都较为简便。安装gym:pip instal
- python中random.sample()方法可以随机地从指定列表中提取出N个不同的元素,但在实践中发现,当N的值比较大的时候,该方法执行
- Python-OpenCV环境的配置看上一篇OpenCV环境的配置本篇主要介绍一下OpenCV的基本使用和相关函数的介绍。以下所有操作都基于