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

标签:Python,sklearn,文本,特征提取
0
投稿

猜你喜欢

  • python matplotlib库直方图绘制详解

    2023-01-19 06:38:34
  • Mysql的复合索引如何生效

    2024-01-26 06:53:17
  • 你知道怎么在淘宝里进行投诉吗?

    2008-06-04 12:00:00
  • python+selenium实现163邮箱自动登陆的方法

    2021-01-24 08:05:15
  • 在图片上显示左右箭头类似翻页的代码

    2024-04-19 09:48:20
  • win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法

    2023-02-12 14:02:00
  • LyScript实现计算片段Hash并写出Excel的示例代码

    2021-11-20 18:41:45
  • Python中Json使用示例详解

    2021-01-17 00:43:43
  • Python爬虫基于lxml解决数据编码乱码问题

    2021-09-11 23:48:44
  • python实现简易云音乐播放器

    2021-07-02 10:13:43
  • 怎么让按钮更容易被点击

    2007-08-22 09:07:00
  • Vue项目中keepAlive的使用说明(超级实用版)

    2024-05-02 16:34:02
  • 解决python线程卡死的问题

    2023-08-03 05:58:27
  • 发工资啦!教你用Python实现邮箱自动群发工资条

    2023-10-12 19:11:17
  • Golang 使用http Client下载文件的实现方法

    2023-07-21 07:32:23
  • Python使用正则表达式过滤或替换HTML标签的方法详解

    2023-02-08 10:49:52
  • TensorFlow搭建神经网络最佳实践

    2021-03-11 18:59:26
  • python re.sub()替换正则的匹配内容方法

    2022-09-13 08:10:30
  • 详解PHP合并多个PDF文件的方法

    2023-06-15 07:05:22
  • 浅谈Python中数据解析

    2021-07-02 20:47:00
  • asp之家 网络编程 m.aspxhome.com