关键词提取就是从文本里面把跟这篇文章意义最相关的一些词语抽取出来,在文献检索、自动文摘、文本聚类/分类等方面有着重要的应用。
关键词提取算法一般分为有监督和无监督两类
有监督的关键词提取方法主要是通过分类的方式进行,通过构建一个较为丰富和完善的词表,然后判断每个文档与词表中每个词的匹配程度,以类似打标签的方式,达到关键词提取的效果。优点是精度较高,缺点是需要大批量的标注数据,人工成本过高,并且词表需要及时维护。
相比较而言,无监督的方法对数据的要求低,既不需要一张人工生成,维护的词表,也不需要人工标注语料辅助训练。目前比较常用的关键词提取算法都是基于无监督算法。如TF-IDF算法,TextRank算法和主题模型算法(包括LSA,LSI,LDA等)
1.TF-IDF算法
TF-IDF是一种数值统计方法,用于反映一个词对于预料中某篇文档的重要性,它的主要思想为:如果某个词在一篇文档中出现的频率高,即TF高;并且在其他文档中很少出现,即IDF高,则认为这个词具有很好的类别区分能力。
TF为词频,表示词t在文档d中出现的频率:tf(word)= (word在文档中出现的次数)/ (文档总词数)
IDF常用的计算公式如下:|D|为文档集中的总文档数,|Di|为文档中出现词i的文档数量。分母加1是采用了拉普拉斯平滑,避免有部分新的词没有在语料库中出现过从而导致分母为零的情况。
2.TextRank算法
此种算法的一个重要特点是可以脱离语料库的背景,仅对单篇文档进行分析就可以提取该文档的关键词。基本思想来源于Google的PageRank算法。这种算法是1997年,Google创始人拉里.佩奇和谢尔盖.布林在构建早期的搜索系统原型时提出的一种链接分析算法,基本思想有两条:
1)链接数量。一个网页被越多的其他网页链接,说明这个网页越重要
2)链接质量。一个网页被一个越高权值的网页链接,也能表明这个网页越重要
TextRank 用于关键词提取的算法如下:
(1)把给定的文本 T 按照完整句子进行分割,即:
(2)对于每个句子,进行分词和词性标注处理,并过滤掉停用词,只保留指定词性的单词,如名词、动词、形容词,其中
ti,j 是保留后的候选关键词。
(3)构建候选关键词图 G = (V,E),其中 V 为节点集,由(2)生成的候选关键词组成,然后采用共现关系(Co-Occurrence)构造任两点之间的边,两个节点之间存在边仅当它们对应的词汇在长度为 K 的窗口中共现,K 表示窗口大小,即最多共现 K 个单词。
(4)根据 TextRank 的公式,迭代传播各节点的权重,直至收敛。
(5)对节点权重进行倒序排序,从而得到最重要的 T 个单词,作为候选关键词。
(6)由(5)得到最重要的 T 个单词,在原始文本中进行标记,若形成相邻词组,则组合成多词关键词。
下面主要通过jieba包里的analyse函数实现这两种关键词提取算法:
jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
sentence:待提取的文本语料
topK:返回 TF/IDF 权重最大的关键词个数,默认值为 20
withWeight:是否需要返回关键词权重值,默认值为 False
allowPOS:仅包括指定词性的词,默认值为空,即不筛选
以上就是本篇文章【NLP之关键词提取】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/news/9036.html 资讯 企业新闻 行情 企业黄页 同类资讯 首页 网站地图 返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多