博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关键词提取
阅读量:5081 次
发布时间:2019-06-13

本文共 1302 字,大约阅读时间需要 4 分钟。

关键词抽取算法主要分为两类:

1. 有监督学习算法

   将关键词抽取过程视为二分类问题, 先抽取出候选词,然后对于每一个候选词划定标签,要么关键词、要么不是关键词,然后训练关键词抽取分类器。当新来一篇文章时,抽取所有的候选词,然后利用训练好的分类器抽取候选词,对各个候选词进行分类,最终将标签为关键词的候选词作为关键词;

2.  无监督学习算法

  先抽取候选词,然后对各个候选词进行打分,然后输出topk个分值最高的候选词作为关键词。根据打分的策略不同,有不同的算法,比如TFIDF,TEXTRank算法等。

下面分别对应用于关键词抽取的两个无监督算法 TFIDF和 TextRank进行分析:

TF-IDF

tf-idf的主要思想是:如果某一个词在一篇文档中出现的频率高,也即TF高,表示词频,词t在文档d中出现的频率;而在其它文档中很少出现,那么IDF高,表示语料库中包含t的文档的数目的倒数。最后TFIDF=TF×IDF

TF = count(t)/count(d)

IDF = num(corpus)/num(t)+1, 其中num(corpus)表示语料库中corpus中文档的总数, num(t)表示包含t的文档的数目

应用于关键词抽取的算法步骤:

1. 首先进行分词和词性标注, 将满足指定词性的词作为候选词;

2. 分别计算每个词的tf-idf值;

3.根据每个词的tf-idf值进行降序排列,并输出指定个数的词汇作为可能的关键词;

TextRank

算法类似于pageRank, pageRank通过互联网的超链接关系来确定一个网页的排名,其公式是通过一种投票的思想来设计的;如果需要知道哪些网页链接到网页A,也就是首先得到网页A的入链,然后通过入链给网页指向网页A的时候,那么网页A的投票来计算网页A的PR值。当某些高质量的网页指向网页A的时候,那么网页A的PR值会因为这些高质量的投票而变大,而网页A被较少网页指向或被一些PR值较低的网页指向的时候,A的PR值也不会很大

将文本中的语法单元视为图中的节点,如果两个语法单元存在一定语法关系(例如共现),则两个语法单元在图中就会有一条边相互连接,通过一定的迭代次数,最终不同的节点会有不同的权重,权重高的语法单元可以作为关键词

TextRank用于关键词提取的算法如下

1. 将给定的文本T按照句子进行分割,即 T=[S1, S2, ..., Sm]

2. 对于每个句子Si, 进行分词和词性标注处理,并过滤掉停用词,只保留指定词性的单词

3. 构建候选关键词图G=(V, E),其中V为节点集, 由2生成的候选关键词组成, 然后采用共现关系构建任两点之间的边,两个节点之间存在边仅当对应的词汇在长度为K的窗口中出现,K表示窗口大小,即最多共现K个词

4. 迭代传播各个节点的权重,直至收敛。

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

6. 由5得到的结果, 在原始文本进行标记,若形成相邻词组,则组合成多词关键词

 

转载于:https://www.cnblogs.com/xz824/p/8568036.html

你可能感兴趣的文章
转化课-计算机基础及上网过程
查看>>
android dialog使用自定义布局 设置窗体大小位置
查看>>
ionic2+ 基础
查看>>
互联网模式下我们更加应该“专注”
查看>>
myeclipse集成jdk、tomcat8、maven、svn
查看>>
查询消除重复行
查看>>
Win 10 文件浏览器无法打开
查看>>
HDU 1212 Big Number(C++ 大数取模)(java 大数类运用)
查看>>
-bash: xx: command not found 在有yum源情况下处理
查看>>
[leetcode]Minimum Path Sum
查看>>
内存管理 浅析 内存管理/内存优化技巧
查看>>
hiho1079 线段树区间改动离散化
查看>>
【BZOJ 5222】[Lydsy2017省队十连测]怪题
查看>>
第二次作业
查看>>
【input】 失去焦点时 显示默认值 focus blur ★★★★★
查看>>
Java跟Javac,package与import
查看>>
day-12 python实现简单线性回归和多元线性回归算法
查看>>
Json格式的字符串转换为正常显示的日期格式
查看>>
[转]使用 Razor 进行递归操作
查看>>
[转]Android xxx is not translated in yyy, zzz 的解决方法
查看>>