输入关键字 抓取所有网页(无监督算法的文本关键词抽取流程及流程)
优采云 发布时间: 2021-10-08 12:12输入关键字 抓取所有网页(无监督算法的文本关键词抽取流程及流程)
第一部分:介绍
第二部分:TF-IDF关键词提取
第三部分:TextRank关键词 提取
第四部分:算法实现
第五部分:总结
背景:最近的一个实验室项目需要从关键词中提取文本,所以对关键词的提取算法做了一些研究,这里总结一下。本文文章首先总结了关键词提取算法,介绍了常用的TF-IDF算法和TextRank算法,最后结合Python jieba库源码讲解了算法的实现.
第一部分:介绍
关键词 抽取是文本挖掘领域中非常重要的一部分。通过提取文本关键词,可以窥探整个文本的主题,进一步应用于文本推荐或文本搜索。
文本提取算法大致可以分为有监督和无监督两种:
监督算法将关键词抽取问题转化为判断每个候选关键词是否为关键词的二元分类问题。它需要一个标记为 关键词 的文档集合来训练分类模型。然而,标记训练集非常耗时费力,因此更常用无监督算法。
无监督算法不需要手动标记的训练集。它通过一些方法找出文本中较重要的词为关键词,并提取关键词。衡量单词重要性的方法有很多:基于文本统计特征、基于词图模型和基于主题模型。TF-IDF、TextRank 和 LDA 是这些不同方法的代表。无监督文本提取过程如下:
第二部分:TF-IDF关键词提取
TF-IDF是提取关键词的最基本、最容易理解的方法。判断一个词在另一篇文章文章中是否重要,一个容易想到的就是词频。重要的词在文章中经常出现的频率很高;但另一方面,它不是出现的次数。越多的词一定是重要的,因为有些词在各种文章中出现的频率很高,那么它的重要性肯定没有那些只出现在某个文章中的词那么重要。从统计学的角度来看,就是对生僻词给予更大的权重,同时降低生词的权重。IDF(Inverse Document Frequency)就是这样一个权重,TF指的是词频。TF和IDF的计算公式如下:
一个词的IDF值是根据语料库计算出来的。如果一个词在语料库中比较常见,那么分母就越大,IDF越小,越接近于0。分母加1的原因是为了防止分母为0(即所有文档不收录这个词)。
最后得到TF-IDF值:
可以看出,TF-IDF与一个词在文档中的出现次数成正比,与该词在整个语料中的出现次数成反比。一个词的TF-IDF值很高,说明这个词比较少见,但是在这个文章中出现了很多次,那么这个词很可能就是我们需要的关键词。
引用阮一峰前辈对文章TF-IDF和余弦相似度的应用(一):自动提取关键词-来自阮一峰博客的例子:
<p>以文章《中国养蜂》为例,“蜜蜂”和“养”这两个词的TF-IDF值都非常高。其实作为这个文章的关键词也是很适合看的。另外,虽然文章中的“China”这个词出现的频率不低,“bee”和“farming”都低,但是因为它经常出现在整个语料库中,所以IDF值很低,所以不会作为文章 的