关键词提取-TFIDF(一)
admin
2023-08-16 20:52:18
0

系列文章
✓ 词向量
✗ Adam,sgd
✗ 梯度消失和梯度爆炸
✗ 初始化的方法
✗ 过拟合&欠拟合
✗ 评价&损失函数的说明
✗ 深度学习模型及常用任务说明
✗ RNN的时间复杂度
✗ neo4j图数据库
分词、词向量
【关键词提取-TFIDF(一)】关键词提取-TFIDF(一)
文章图片

TfidfVectorizer
基本介绍

  • TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
  • 比如:为了获得一篇文档的关键词,我们可以如下进行
  • 对给定文档,我们进行"词频"(Term Frequency,缩写为TF)
  • 给每个词计算一个权重,这个权重叫做"逆文档频率"(Inverse Document Frequency,缩写为IDF),它的大小与一个词的常见程度成反比。
算法明细
  • 基本步骤
    • 1、计算词频。考虑到文章有长短之分,为了便于不同文章的比较,进行"词频"标准化。

      词频:TF = 文章中某词出现的频数

      词频标准化:关键词提取-TFIDF(一)
      文章图片
    • 2、计算逆文档频率。如果一个词越常见,那么分母就越大,逆文档频率就越小越接近0。

      逆文档频率:关键词提取-TFIDF(一)
      文章图片

      其中,语料库(corpus),是用来模拟语言的使用环境。
    • 3、计算TF-IDF。可以看到,TF-IDF与一个词在文档中的出现次数成正比,与该词在整个语言中的出现次数成反比
      $TF-IDF = TF * IDF$
算法优缺点
  • 优点:
    • TF-IDF算法的优点是简单快速,结果比较符合实际情况。
  • 缺点
    • 单纯以"词频"衡量一个词的重要性,不够全面,有时重要的词可能出现次数并不多。
    • 这种算法无法体现词的位置信息,出现位置靠前的词与出现位置靠后的词,都被视为重要性相同,这是不正确的。
    • 对于文档中出现次数较少的重要人名、地名信息提取效果不佳
应用场景
  • 应用场景简介
    • 1)搜索引擎;
    • 2)关键词提取;
    • 3)文本相似性;
    • 4)文本摘要
可执行实例
# python:3.8 # sklearn:0.23.1 # 1、CountVectorizer 的作用是将文本文档转换为计数的稀疏矩阵 from sklearn.feature_extraction.text import CountVectorizer corpus = [ 'This is the first document.', 'This document is the second document.', 'And this is the third one.', 'Is this the first document?', ] vectorizer = CountVectorizer() X = vectorizer.fit_transform(corpus) # 查看每个单词的位置 print(vectorizer.get_feature_names()) #['and', 'document', 'first', 'is', 'one', 'second', 'the', 'third', 'this'] # 查看结果 print(X.toarray()) # [[0 1 1 1 0 0 1 0 1] #[0 2 0 1 0 1 1 0 1] #[1 0 0 1 1 0 1 1 1] #[0 1 1 1 0 0 1 0 1]]# 2、TfidfTransformer:使用计算 tf-idf from sklearn.feature_extraction.text import TfidfTransformer transform = TfidfTransformer() Y = transform.fit_transform(X) print(Y.toarray())# 输出tfidf的值 # [[0.0.46979139 0.58028582 0.38408524 0.0. 0.38408524 0.0.38408524] #[0.0.68762360.0.28108867 0.0.53864762 0.28108867 0.0.28108867] #[0.51184851 0.0.0.26710379 0.51184851 0. 0.26710379 0.51184851 0.26710379] #[0.0.46979139 0.58028582 0.38408524 0.0. 0.38408524 0.0.38408524]]# 3、TfidfVectorizer:TfidfVectorizer 相当于 CountVectorizer 和 TfidfTransformer 的结合使用 from sklearn.feature_extraction.text import TfidfVectorizer corpus = [ 'This is the first document.', 'This document is the second document.', 'And this is the third one.', 'Is this the first document?', ] vectorizer = TfidfVectorizer() #构建一个计算词频(TF) X = vectorizer.fit_transform(corpus) print(vectorizer.get_feature_names()) # ['and', 'document', 'first', 'is', 'one', 'second', 'the', 'third', 'this'] print(X.shape) # (4, 9)

参数项说明
  • CountVectorizer
关键词提取-TFIDF(一)
文章图片

  • TfidfTransformer
关键词提取-TFIDF(一)
文章图片

  • 从函数上来看,咱也可以发现有TfidfVectorizer=CountVectorizer + TfidfTransformer哈
  • TfidfVectorizer
关键词提取-TFIDF(一)
文章图片

相关内容

热门资讯

超... 本文目录导航: 超级云计算是什么 怎么做难看的PPT 1、...
谢... 本文目录导航: 请问云主机是什么 云主机有什么好处 具体的教程,谢谢! 云...
w... 本文目录导航: wps是什么意思 ppt的新配置designer和morp...
大... 本文目录导航: 大专学什么专业务工率高? 未来十年务工率最高的几大专业都是...
软... 本文目录导航: 软件技术专升本可以报什么专业 云计算专升本可以报医学吗 ...
云... 本文目录导航: 云计算务工前景 云计算务工方向及前景怎样样 ...
学... 本文目录导航: 学云计算进去无能嘛 云计算技术与运行是干什么的 ...
中... 本文目录导航: 如何了解云计算,中国的云计算产业开展现状如何 云计算未来几...
云... 本文目录导航: 云计算1+x证书含金量 云计算须要考什么证书 ...
云... 本文目录导航: 云计算股票龙头股票有哪些? 普通云计算概念龙头股有哪些?...
大... 本文目录导航: 大专云计算技术运行务工方向 大专毕业证上是物联网,实践学习...
大... 本文目录导航: 大数据云计算有必要升本吗 内蒙古大专云计算技术与运行专业升...
9... 本文目录导航: 99%学霸假期逆袭必看网站 99%学霸假期逆袭必看网站 ...
云... 本文目录导航: 云计算属于哪个专业 云计算属于什么专业 计...
计... 本文目录导航: 计算机二级MSOffice上机操作题及答案 想做一篇关于解...
A... 本文目录导航: AI能否会彻底扭转上流职业市场,如律师、会计师和医师? A...
人... 本文目录导航: 人工智能芯片产业链有哪些? 更多本行业钻研剖析详见前瞻产业...
人... 本文目录导航: 人工智能会带来哪些风险? 或许有一天,人工智能机器人将取代...
a... 本文目录导航: ai智能写作软件哪个好 ai智能写作软件有哪些?ai智能对...
自... 本文目录导航: 自考本科计算机专业难吗 自考计算机专业须要考哪些科目 ...