sklearn-文本特征抽取

概述

对 文本数据 进行特征抽取,即:统计各个词出现的次数

应用场景

比如文章分类、是否垃圾邮件、自然语言处理中的情感分析等

导入包

sklearn.feature_extraction.text

类

CountVectorizer()
参数

无

返回值

返回对象

将 文本 转成 数字特征

fit_transform(X)
参数
  • X:字符串 或者 包含字符串的迭代器
    如:['Well I wonder could it be','When I was dreaming about you baby']
返回值
  • 返回sparse(节约内存,方便处理)
    调用toarray()将sparse结构转成array

返回类别名称

get_feature_names()
返回值

类别名称,list类型

例子

# coding=utf-8
from sklearn.feature_extraction.text import CountVectorizer

# 实例化
vector=CountVectorizer()

# 调用fit_transform输入并转换数据
data=vector.fit_transform(['Every night in my dreams','I see you','You have come to show you go on'])
# 打印结果
print(vector.get_feature_names())
# 返回sparse类型
print(data)
# 转成array类型
print(data.toarray())

打印结果:

['come', 'dreams', 'every', 'go', 'have', 'in', 'my', 'night', 'on', 'see', 'show', 'to', 'you']
  (0, 1)        1
  (0, 6)        1
  (0, 5)        1
  (0, 7)        1
  (0, 2)        1
  (1, 12)       1
  (1, 9)        1
  (2, 8)        1
  (2, 3)        1
  (2, 10)       1
  (2, 11)       1
  (2, 0)        1
  (2, 4)        1
  (2, 12)       2
[[0 1 1 0 0 1 1 1 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 1 0 0 1]
 [1 0 0 1 1 0 0 0 1 0 1 1 2]]

解释:

  1. 列表['Every night in my dreams','I see you','You have come to show you go on']的每一个元素表示一篇文章

  2. 统计各文章的词出现的次数
    没出现的记为0,出现1次的记为1,出现2次的记为2

  3. 单个字母不统计,一般单个字母没有意义

转换成之前的数据格式

inverse_transform(X)
参数
  • X:调用fit_transform(X)返回的结果,array 或者 sparse矩阵
返回值

转换成之前的数据格式


原文出处:/show_1EF3Qgz2xHpc.html