文本特征抽取

作用:对文本数据进行特征值化

类:sklearn.feature_extraction.text.CountVectorizer

1.CountVectorizer语法

• CountVectorizer(max_df=1.0,min_df=1,…)

•  返回词频矩阵

•CountVectorizer.fit_transform(X,y)

•X:文本或者包含文本字符串的可迭代对象

•返回值:返回sparse矩阵

•CountVectorizer.inverse_transform(X)

•X:array数组或者sparse矩阵

返回值:转换之前数据格式

•CountVectorizer.get_feature_names()

•返回值:单词列表

2.流程和例子

from sklearn.feature_extraction.text import CountVectorizerdef conuntvec():"""对文本进行特征值化:return: None"""cv = CountVectorizer()data = cv.fit_transform(["life is short,i like python","life is too long,i dislike python"])print(cv.get_feature_names())# 将sparse矩阵转换为·数组print(data.toarray())return Noneif __name__ == '__main__':conuntvec()

结果:

['dislike', 'is', 'life', 'like', 'long', 'python', 'short', 'too']
[[0 1 1 1 0 1 1 0][1 1 1 0 1 1 0 1]]

第一行,打印出   统计所有文章当中所有的词,重复的只看做一次   (词的列表)

 注意: 对于单个的英文字母直接进行放弃,不进行统计  (因为它是没有分类的依据的)

数据数组:, 类似于统计的次数,对每篇文章,在词的列表里面进行统计每个词出现的次数

数据数组的第一行,第一个小数组:对应的输入的数据,以逗号分隔开,

例如第一句话是:"life is short,i like python",    对应词的列表,出现几次值就为几

 3. 文本特征抽取: 统计次数 Count()   ,可用于文本分类,情感分析

4.

(1)对于中文特征值化要,按照指定的格式提前分好词,例如 

     中文文本以空格分开

from sklearn.feature_extraction.text import CountVectorizerdef countvec():"""对中文文本进行特征值化:return: None"""cv = CountVectorizer()data = cv.fit_transform(["人生 苦短 我 喜欢 Python Python","人生 漫长 不用 Python"])print(cv.get_feature_names())print(data.toarray())return Noneif __name__ == '__main__':countvec()

结果:  代表的意思同英文一样,统计出次数

['python', '不用', '人生', '喜欢', '漫长', '苦短']
[[2 0 1 1 0 1][1 1 1 0 1 0]]

(2)可以使用jieba库进行分词

利用jieba库做中文特征抽取,  例子


from sklearn.feature_extraction.text import CountVectorizer
import jiebadef cutword():content1 = jieba.lcut("今天很残酷,明天更残酷,后天很美好,但绝对大部分是死在明天晚上,""所以每个人不要放弃今天。")content2 = jieba.lcut("我们看到的从很远星系来的光是在几百万年之前发出的,""这样当我们看到宇宙时,我们是在看它的过去。")content3 = jieba.lcut("如果只用一种方式了解某样事物,你就不会真正了解它。""了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。")# 把分词后的列表转换成字符串c1 = ' '.join(content1)c2 = ' '.join(content2)c3 = ' '.join(content3)return c1, c2, c3def chinesevec():"""对一段文本使用jieba分词后组成有空格的格式的字符串进行文本特征抽取:return: None"""c1, c2, c3 = cutword()cv = CountVectorizer()data = cv.fit_transform([c1, c2, c3])print(cv.get_feature_names())print(data.toarray())return Noneif __name__ == '__main__':chinesevec()

抽取的结果: 完成了中文特征抽取,文本特征值化

['一种', '不会', '不要', '之前', '了解', '事物', '今天', '光是在', '几百万年', '发出', '取决于',
'只用', '后天', '含义', '大部分', '如何', '如果', '宇宙', '我们', '所以', '放弃', '方式', '明天','星系', '晚上', '某样', '残酷', '每个', '看到', '真正', '秘密', '绝对', '美好', '联系', '过
去', '这样']
[[0 0 1 0 0 0 2 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 2 0 1 0 2 1 0 0 0 1 1 0 0 0][0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 3 0 0 0 0 1 0 0 0 0 2 0 0 0 0 0 1 1][1 1 0 0 4 3 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 2 1 0 0 1 0 0]]

机器学习(3.文本数据的特征抽取(第一种))相关推荐

  1. 机器学习(4.文本数据的特征抽取(第二种TfidfVectorizer(TF-IDF)))

    TF-IDF TF-IDF的主要思想是:如果某个词或短语在一篇文章中出现的概率高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类. TF-IDF作用:用以评估一字词对 ...

  2. NLP中文本数据扩增的几种方法【一】单词替换

    和图像数据增强不同,NLP中文本数据增强比较少见.图像的一些增强操作,如图像旋转.灰度处理等等都不会改变图像的语义,语义不变变换的存在使得增广成为计算机视觉研究中必不可少的工具.但在NLP中进行数据增 ...

  3. 机器学习入门-文本数据-使用聚类增加文本的标签属性

    通过对特征做一个kmeans聚类,将聚类的结果做为文本的标签值,可以使得样本的特征更多 我们从sklearn.cluster中导入Kmeans建立模型进行聚类 代码: 第一步:使用Dataframe格 ...

  4. R语言机器学习与大数据可视化暨Python文本挖掘与自然语言处理核心技术研修

    中国通信工业协会通信和信息技术创新人才培养工程项目办公室 通人办[2017] 第45号 "R语言机器学习与大数据可视化"暨"Python文本挖掘与自然语言处理" ...

  5. “R语言机器学习与大数据可视化”暨“Python文本挖掘与自然语言处理”核心技术高级研修班的通知

    中国通信工业协会通信和信息技术创新人才培养工程项目办公室 通人办[2017] 第45号 "R语言机器学习与大数据可视化"暨"Python文本挖掘与自然语言处理" ...

  6. 情感分析中文本数据预处理

    读数据 直接获取文件内容 # 获取文件内容 一个文件中有很多行信息,每一行是一个序列 def getData(file):f = open(file,'r')raw_data = f.readline ...

  7. Android页面数据传递的两种方式

    在android中实现页面中数据的传递有两种方式: 1:第一种数据传递的方式是通过inputExtra方法来进行数据的传递的 2:第二中方法是通过bundle的方法来实现数据的传递的 接下来我们首先来 ...

  8. 03_数据的特征抽取,sklearn特征抽取API,字典特征抽取DictVectorizer,文本特征抽取CountVectorizer,TF-IDF(TfidfVectorizer),详细案例

    数据的特征抽取 A:特征抽取实例演示 通过演示得出结论: 特征抽取针对非连续型数据 特征抽取对文本等进行特征值化 注:特征值化是为了计算机更好的去理解数据. B:sklearn特征抽取API skle ...

  9. 文本数据的机器学习自动分类方法

    来源:http://blog.csdn.net/jdbc/article/details/50586042 本文为第一部分,着重介绍文本预处理以及特征抽取的方法. 随着互联网技术的迅速发展与普及,如何 ...

最新文章

  1. 如何移植行情软件的指标到千发股票自动交易软件?
  2. PyQt5 技术篇-调用字体对话框(QFontDialog)获取字体,控件设置字体。
  3. php linux下保存文件路径怎么写,linux下php导入带图片的word文档转为html,图片保存下来生成路径。...
  4. asp.net操作Excel总结
  5. SAP UI5 应用开发教程之二十四 - 如何使用 OData 数据模型
  6. Maven工程 报 Diamond types are not supported at language level ‘5‘
  7. java 发展方向_Java程序员的发展方向有哪些
  8. [ROS-Beginner]1.安装与配置ROS环境
  9. 《初级会计电算化实用教程(金蝶KIS专业版)》一1.5 课后习题
  10. Google Code checkout v8 方法
  11. java面试死神之蛇形遍历
  12. 相对寻址方式与变址寻址方式的区别与联系
  13. R语言使用逻辑回归分类算法
  14. LDAP 和 LDAP3 的对比、接口调用(2)
  15. 助力中国 DevOps 运动,ONES 携手 DevOps 社区举办第12届 Meetup
  16. LK光流金字塔算法原理及C++实现
  17. 7个地方可以帮助你快速寻找到你需要的代码
  18. 第4课:Scratchjr运动指令
  19. 罗永浩退出聊天宝股东行列 实际控制人变更为王威
  20. 初二计算机考试知识点操作题,初中信息技术考试所有操作题步骤.docx

热门文章

  1. 牛客题霸 NC9 二叉树中是否存在节点和为指定值的路径
  2. Vue + Element UI + Spring Boot——易班优课YOOC课群在线测试自动答题解决方案(十)问题管理页面
  3. Vue + Element UI——搜索框DEMO
  4. Spring Boot——读取.properties配置文件解决方案
  5. I NEED A OFFER!
  6. linux压缩和打包的区别,Linux中的压缩和打包
  7. 【项目】springboot中使用kaptcha生成验证码,登录时密码加盐处理
  8. 软件工程概论 课堂练习【静态结构建模——画出相应的对象模型】
  9. Bootstrap4+MySQL前后端综合实训-Day06-PM【MD5加码-生成32位md5码、ResultData.java、分页查询用户数据、添加用户按钮的实现】
  10. Kotlin实战指南二:变量、常量、静态常量