CountVectorizer()函数

CountVectorizer()函数只考虑每个单词出现的频率;然后构成一个特征矩阵,每一行表示一个训练文本的词频统计结果。其思想是,先根据所有训练文本,不考虑其出现顺序,只将训练文本中每个出现过的词汇单独视为一列特征,构成一个词汇表(vocabulary list),该方法又称为词袋法(Bag of Words)

我们举一个例子:

from sklearn.feature_extraction.text import CountVectorizer,TfidfVectorizertexts=["orange banana apple grape","banana apple apple","grape", 'orange apple']
cv = CountVectorizer()
cv_fit=cv.fit_transform(texts)
print(cv.vocabulary_)
print(cv_fit)
print(cv_fit.toarray())

输出如下:

{'orange': 3, 'banana': 1, 'apple': 0, 'grape': 2} #这里是根据首字母顺序,将texts变量中所有单词进行排序,apple首字母为a所以                                                                          # 排第一,banana首字母为b所以排第二
  (0, 2)    1   # (0, 2)  1 中0表示第一个字符串"orange banana apple grape";2对应上面的'grape': 2;1表示出现次数1。整体理                       # 解为第一字符串顺序为二的词语在出现次数为1
  (0, 0)    1
  (0, 1)    1
  (0, 3)    1
  (1, 0)    2
  (1, 1)    1
  (2, 2)    1
  (3, 0)    1
  (3, 3)    1
[[1 1 1 1]     # 第一个字符串,排名0,1,2,3词汇(apple,banana,grape,orange)出现的频率都为1
 [2 1 0 0]    #第二个字符串,排名0,1,2,3词汇(apple,banana,grape,orange)出现的频率为2,1,00
 [0 0 1 0]
 [1 0 0 1]]

TfidfVectorizer()函数

TfidfVectorizer()基于tf-idf算法。此算法包括两部分tf和idf,两者相乘得到tf-idf算法。

tf算法统计某训练文本中,某个词的出现次数,计算公式如下:

 或 

idf算法,用于调整词频的权重系数,如果一个词越常见,那么分母就越大,逆文档频率就越小越接近0。

tf-idf算法=tf算法 * idf算法。

我们依旧采用上面的例子:

from sklearn.feature_extraction.text import CountVectorizer,TfidfVectorizertexts=["orange banana apple grape","banana apple apple","grape", 'orange apple']
cv = TfidfVectorizer()
cv_fit=cv.fit_transform(texts)
print(cv.vocabulary_)
print(cv_fit)
print(cv_fit.toarray())

输出如下:

{'orange': 3, 'banana': 1, 'apple': 0, 'grape': 2}
  (0, 3)    0.5230350301866413 #(0,3)表示第一个字符串的orange词语,其TF=1/4,IDF中总样本和包含有改词的文档数,目                                                    # 前也不知道是如何得出,望有知道的人能评论告之。最后得出结果0.5230350301866413
  (0, 1)    0.5230350301866413
  (0, 0)    0.423441934145613
  (0, 2)    0.5230350301866413
  (1, 1)    0.5254635733493682
  (1, 0)    0.8508160982744233
  (2, 2)    1.0
  (3, 3)    0.7772211620785797
  (3, 0)    0.6292275146695526
[[0.42344193 0.52303503 0.52303503 0.52303503]
 [0.8508161  0.52546357 0.         0.        ]
 [0.         0.         1.         0.        ]
 [0.62922751 0.         0.         0.77722116]]

sklearn基础(一)文本特征提取函数CountVectorizer()和TfidfVectorizer()相关推荐

  1. Python文本特征提取 DictVectorizer CountVectorizer TfidfVectorizer 附代码详解

    文章目录 DictVectorizer 对使用字典储存的数据进行特征提取与向量化 CountVectorizer / TfidfVectorizer 处理无特殊数据结构存储的数据 词袋模型(Bag o ...

  2. 自然语言典型工具TextBlob、Gensim、Polyglot,关键词抽取(jieba、TF-IDF、textrank)和特征提取(CountVectorizer、TfidfVectorizer)

    一.自然语言处理的典型工具 自然语言处理的三项基本技术为单词切分.句法分析.语义理解. 1. TextBlob TextBlob是自然语言处理的python库.它为常见的自然语言处理提供一个简单地AP ...

  3. NLP基础--文本特征提取中文分词word2vec原理

    文章目录 1. 文本特征提取 1.1 词集模型 1.2 BOW(Bag of Words)词袋模型 1.3 TF-IDF 2. 中文分词 2.1 基于词典匹配的分词方法 2.1.1 正向最大匹配(MM ...

  4. NLP中的语言模型及文本特征提取算法

    本文以基本语言模型为逻辑主线,漫谈NLP中两个核心问题,即文本表示(Text Representation)与文本特征提取(Feature Engineering).通过本文你会发现,NLP的一部分经 ...

  5. python实现sklearn的基本操作流程,sklearn预处理方法,sklearn基础算法的使用,以及sklearn模型的选择方法。

    python实现sklearn的基本操作流程,sklearn预处理方法,sklearn基础算法的使用,以及sklearn模型的选择方法. 一.数据的获取与分析 1.读取数据 2.分析数据 二.数据的预 ...

  6. sklearn之pipeline:pipeline函数/make_pipeline函数的简介及其区别联系、使用技巧、案例应用之详细攻略

    sklearn之pipeline:pipeline函数/make_pipeline函数的简介及其区别联系.使用技巧.案例应用之详细攻略 目录 sklearn.pipeline函数简介 1.Why pi ...

  7. Python 文本特征提取

    文章目录 一.字典特征抽取 二.文本特征数值的统计 英文文本 中文文本 Tf-idf 一.字典特征抽取 使用到的API DictVectorizer(sparse=True) from sklearn ...

  8. sklearn基础篇(一)-- datasets数据集

    sklearn的数据集库datasets提供很多不同的数据集,主要包含以下几大类:         1. 通用数据集         2. 真实世界中的数据集         3. 样本生成器     ...

  9. 字典特征提取,文本特征提取。

    文章目录 1 定义 2. 字典特征提取API 3. 字典特征提取案例: 1.实现效果: 2.实现代码 4. 文本特征提取 1. 方法 2. 英文案例 1. 实现效果 2.流程 3. 中文案例 使用到的 ...

最新文章

  1. Java单元测试之JUnit4详解
  2. 《javascript高级程序设计》笔记:原型图解
  3. 用php打出前一天的时间格式,[php]用PHP打印出前一天的时间格式
  4. Flask爱家租房--城区信息
  5. unas 下 Transmission 下载使用体会
  6. 2018看得见的未来:数字化医疗发展三大看点
  7. 阿里云服务器添加CDN
  8. 无数次踩坑安装AWVS
  9. 什么是promise?
  10. lightdm .service: Start request repeated too quickly. grub正常,不显示登录和桌面 Endeavour
  11. 文献阅读-10X单细胞揭示肿瘤浸润性T细胞的泛癌单细胞图谱
  12. 基于正点原子触摸屏ui设计_基于黄金比例ui%C9%B8的设计系统
  13. C语言——副作用(side effects)和序列点(sequence points)
  14. 使用cmake调试“Could NOT find Boost (missing: iostreams program_options system“
  15. 作为面试官被放鸽子的50个理由,论如何放面试官的鸽子
  16. EDA Verilog语言 期末考试0基础预习笔记(数字系统设计)PART4——EDA填空题
  17. Ubuntu系统解压文件后乱码解决方法
  18. Unity 3D俄罗斯方块
  19. 浙大计算机学院采访,浙大计算机学院副教授给你来上课
  20. 街舞瘦身操(有慢动作分解)视频全集

热门文章

  1. Minecraft 1.12.2模组开发(十八) 自定义附魔
  2. 各大自媒体平台的收益情况汇总
  3. 【京东电商网站主界面仿写——CSS第一部分】
  4. 明基发布T系列智能商务投影机
  5. 内存测试内存检测工具
  6. 20170627总结
  7. 群晖同步数据到天翼网盘
  8. Android 配置文件锁设置
  9. 【历史上的今天】5 月 23 日:Java 正式发布;晶体管的共同发明者出生
  10. 【CuteJavaScript】GraphQL真香入门教程