关键词提取

基于 TF-IDF 算法的关键词抽取

1.什么是TF-IDF呢?

TF(Term Frequency)词频
IDF(Inverse Document Frequency)逆文档频率,表示一个词的大小与常见词的反比
假如我们需要通过计算机来找到文本的关键词如何查找呢,一般是统计出现最高词语的频率也就是TF词频。但是在统计词语的过程中通常会遇到如下问题—最高出现的词汇可能是”停用词”,如”的”,”是”,”在”,在文本当中有的词的重要性是不同的,假如我们统计词频发现这五个词的频率最高,如”中国”、”土地”、”房子”、”蜜蜂”、”养殖”,其中中国、土地这些词汇经常出现而蜜蜂、养殖等词语不常出现。如果某个词比较少见,但是它在这篇文章中多次出现,那么它很可能就反映了这篇文章的特性,正是我们所需要的关键词。
所以我们需要对文本词语进行一个权重处理,给蜜蜂、养殖等词语高权重,而”是”、”在”、”的”、”中国”等词语低权重等方法来处理文本。
知道了"词频"(TF)和"逆文档频率"(IDF)以后,将这两个值相乘,就得到了一个词的TF-IDF值。某个词对文章的重要性越高,它的TF-IDF值就越大。所以,排在最前面的几个词,就是这篇文章的关键词。

2.如何进行TF-IDF算法?

第一步,计算词频。
TF=某词在文章中出现的次数,考虑到文章有长短之分,为了便于不同文章的比较,进行"词频"标准化。
TF = 某词在文章中出现的次数/文章的总次数
第二步,计算逆文档频率。
这时,需要一个语料库(corpus),用来模拟语言的使用环境。
逆文档频率(IDF)=log(语料库的文档总数/包含该词的文档数+1)
如果一个词越常见,那么分母就越大,逆文档频率就越小越接近0。分母之所以要加1,是为了避免分母为0(即所有文档都不包含该词)。log表示对得到的值取对数。
第三步,计算TF-IDF。
TF-IDF=TF*IDF
可以看到,TF-IDF与一个词在文档中的出现次数成正比,与该词在整个语言中的出现次数成反比。所以,自动提取关键词的算法就很清楚了,就是计算出文档的每个词的TF-IDF值,然后按降序排列,取排在最前面的几个词。

基于TextRank算法关键词提取

简单介绍PageRank

PageRank是google搜索引擎进行网页排名的算法,是用来计算网页重要性的,它将每一个网页看作一个节点,将网页之间的链接看作是节点之间的有向边,网页的重要性取决于链接到它的网页数量以及这些网页的重要性。其中它主要根据两点来进行网页排名1.指向该A网页的其他网页数量2.指向该A网页的其他网页质量

它的计算公式为:
在这里插入图片描述
其中PR(A)指的是网页(A)的排名,Ti是存在到A的链接的网页。C(Ti)是网页Ti中存在的链接的数量。d是阻尼系数,一般定义为用户随机点击链接的概率,根据工程经验一般取0.85。而(1-d)代表着不考虑入站链接的情况下随机进入一个页面的概率。
d阻尼系数:现实网络中,由于存在出链度数为0,即不链接到任何网页的页面,但是很多网页可以访问它。鉴于这类情况,PageRank公式需要进行修正,修正的方法是,在简单公式的基础上增加阻尼系数。

TextRank原理

TextRank与PageRank相同,不过TextRank是以词为节点,建立起连接关系,而且TextRank当中是无向图而PageRank当中是有向图。
在TextRank当中建立了共现关系,其主要思路是设置一个滑动窗口,其中默认大小为5,也就是最多出现5个词然后给五个词进行窗口滑动建立起无向图的关系连接。

基于TextRank提取关键词的主要步骤:

(1)把给定的文本T按照完整句子进行分割;

(2)对于每个句子,进行分词和词性标注处理,并过滤掉停用词,只保留指定词性的单词,如名词、动词、形容词等。这些词形成候选关键词;

(3)构建候选关键词图G = (V,E),其中V为节点集,由(2)生成的候选关键词组成,然后采用共现关系(co-occurrence)构造任两点之间的边,两个节点之间存在边仅当它们对应的词汇在长度为K的窗口中共现;

(4)根据PageRank原理中的衡量重要性的公式,初始化各节点的权重,然后迭代计算各节点的权重,直至收敛;

(5)对节点权重进行倒序排序,从而得到最重要的T个单词,作为候选关键词;

(6)由(5)得到最重要的T个单词,在原始文本中进行标记,若形成相邻词组,则组合成多词关键词。例如,文本中有句子“Matlab code for plotting ambiguity function”,如果“Matlab”和“code”均属于候选关键词,则组合成“Matlab code”加入关键词序列。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值