一、提取关键字技术简介
关键字提取技术一般也可以分为有监督和无监督两类。
有监督的关键词提取方法主要是通过分类的方式进行的,通过构建一个比较丰富完善的词表,然后通过判断每个文档与词表中每个词的匹配程度,以类似打标签的方式,达到关键词提取效果。有监督的方法能够获得较高的精度,但是缺点缺点是需要大批量的标注数据,人工成本高。
无监督的关键字提取方法对数据的要求就低多了。既不需要一张人工生成、维护的词表,也不需要人工标准语料辅助训练。因此,无监督的方法在关键词提取领域的应用更受到大家的青睐。
二、常用的关键词提取算法
目前常用的无监督关键词提取算法,分别是TF-IDF算法、TextRank算法和主题模型算法(包括LSA、LSI、LDA等)。
- TF-IDF算法
TF-IDF(Term Frequency-Inverse Document Frequency,词频-逆文档频次算法)是一种基于统计的计算方法,常用于评估在一个文档集中一个词对某份文档的重要程度。
TF-IDF = TF*IDF
TF-IDF由两部分组成:TF算法、IDF算法。
TF算法是统计一个词在一篇文档中出现的频次,其基本思想是一个词在文档中出现的次数越多,则其对文档的表达能力能力也就越强。
IDF算法是一个词在文档集的多少个文档中出现,其基本思想是如果一个词在越少的文档中出现,则其对文档的区分能力也就越强。
例如:一篇文档为“世界献血日,学校团体、献血服务志愿者等可到血液中心参观检验加工过程,我们会对检验结果进行公示,同时血液的价格也将进行公示。”
1)对上面文档中的文本进行分词,文档的总词数是30,其中“献血”、“血液”、“进行”、“公示”等词出现的频率均为2。
根据TF公式:
TF(献血)=n(献血)/n(总词数)=2/30≈0.067
TF(献血) = TF(血液) =TF(进行)= TF(公示) ≈0.067
实际上“献血”、“血液”对这篇文档来说更重要,此时需要IDF出场了。从词频、逆文档词频两个角度对词的重要性进行衡量。
2)假设文档集有1000篇文档,其中出现“献血”、“血液”、“进行”、“公示”的文档数分别是10、15、100、50,
根据IDF公式:
IDF(献血)=log(1000/10)=2
同理可得,IDF(血液)=1.824,IDF(进行)=1,IDF(公示)=1.301。
3)根据TF-IDF公式计算每个词的IF-IDF值
TF-IDF(献血) =TF(献血)*IDF(献血)≈0.134
TF-IDF(血液) =TF(血液)*IDF(血液)≈0.122
TF-IDF(进行) =TF(进行)*IDF(进行)≈0.067
TF-IDF(公示) =TF(公示)*IDF(公示)≈0.087
由此可知,“献血”的TF-IDF值最高,为最合适这篇文档的关键词,关键词数量不止一个,可以根据TF-IDF值由大到小排序取前n个作为关键词。
2、TextRank算法
TextRank算法有一个重要的特点是可以脱离语料库的背景,仅对单文档进行分析就可以提取该文档的关键词。
TF-IDF算法、主题模型算法都要基于一个现成的语料库。例如在TF-IDF中需要统计每个词的语料库的多少个文档有出现过,也就是逆文档频率(IDF);主题模型的关键词提取算法则是要通过对大规模文档的学习,来发现文档的学习,来发现文档的隐含主题
3、主题模型算法