关键词提取概述
关键词是能够表达文档中心内容的词语,一段话中通常有一个或者多个关键词。关键词提取常用于信息检索、系统汇集以供读者检阅。关键词提取是文本挖掘领域的一个分支,是文本检索、文档比较、摘要生成、文档分类和聚类等文本挖掘研究的基础性工作。
从算法的角度来看,关键词提取算法主要有两类:无监督关键词提取方法和有监督关键词提取方法。
-
无监督关键词提取方法
不需要人工标注的语料,利用某些方法发现文本中比较重要的词作为关键词,进行关键词提取。该方法的思想是先抽取出候选词,然后对各个候选词进行打分,然后输出分值最高的个候选词作为关键词。
- 不同的打分策略对应不同的算法,例如 TF-IDF,TextRank,LDA 等算法。
- 主要提取方法分为三类:
- 基于统计特征的关键词提取(TF,TF-IDF),思想是利用文档中词语的统计信息抽取文档的关键词。
- 基于词图模型的关键词提取(PageRank,TextRank),思想:首先要构建文档的语言网络图,然后对语言进行网络图分析,在这个图上寻找具有重要作用的词或者短语,这些短语就是文档的关键词。
- 基于主题模型的关键词提取(LDA),思想:利用主题模型中关于主题分布的性质进行关键词提取。
-
有监督关键词提取方法
将关键词抽取过程视为二分类问题,先提取出候选词,然后对于每个候选词划定标签,要么是关键词,要么不是关键词,然后训练关键词抽取分类器。当新来一篇文档时,提取出所有的候选词,然后利用训练好的关键词提取分类器,对各个候选词进行分类,最终将标签为关键词的候选词作为关键词。
两种方法对比:
- 无监督方法不需要人工标注,更加快捷,但无法有效综合利用多种信息 对候选关键词排序,所以效果无法与有监督方法媲美。
- 有监督方法可以通过训练学习调节多种信息对于判断关键词的影响程度,因此效果更优,有监督的文本关键词提取算法需要高昂的人工成本,因此现有的文本关键词提取主要采用适用性较强的无监督关键词提取。
关键词提取常用工具包
jieba
立志做最好的 Python 中文分词组件(但显然还差很远,关键词提取自带词典很弱、不支持短语提取)。Github 仓库 https://github.com/fxsjy/jieba
- jieba 提取关键词
sentence="教你如何用 jieba 提取关键词"
import jieba.analyse
jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=