关于关键词提取
关键词提取(Key Word Extraction)
主要有以下方法:
- 基于统计:tf-idf, TextRank
- 基于词分布:
- LDA:采用贝叶斯学派的方法对分布信息拟合
- LSA/LSI:采用SVD的方法暴力破解
- Rake、Topic-Model
TF-IDF
TF-IDF(注意:这里不是减号)是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度
。
思想由来
蜜蜂养殖
在文档A 中出现的频次高,一个
在所有文档中出现的频次都高;那么文档A 大概率重点为 蜜蜂养殖
而非 一个
。
字词的重要性随着它在文件中出现的次数
成正比 增加,但同时会随着它在 语料库
中出现的频率成反比 下降。
本质基于词袋模型(Bag-of-Words)。
用处
TF-IDF 加权的各种形式常被搜索引擎
应用,作为文件与用户查询之间 相关程度的度量或评级。
名词/概念解释
- TF(Term Frequency),词频,表示一个词在一个文档中出现的次数。
- DF(Document Frequency),表示整个语料库中 含有某个词的 文档个数。
- IDF(Inverse Document Frequency),逆文档频率,其计算公式为:
I D F = l o g ( 语 料 库 中 文 档 总 数 包 含 该 词 的 文 档 数 + 1 ) IDF = log(\frac{语料库中文档总数}{包含该词的文档数+1}) IDF=log(包含该词的文档数+1语料库中文档总数)
+1 的作用是确保分母不为零。采用的是拉普拉斯平滑
,增强算法的健壮性
。
缺点
- 不能反映词汇组织结构
TF-IDF基于词袋模型(Bag-of-Words),把文章表示成词汇的集合,由于集合中词汇元素之间的顺序位置
与集合内容无关,所以TF-IDF指标不能有效反映文章内部的词汇组织结构。
TextRank
TextRank 基于 PageRank(网页排名算法)
LDA
LDA是一种文档主题生成模型
,根据词的共现信息分析,拟合出 词–文档–主题 三层结构的分布,进而将词、文本都映射到一个语义空间中。
所谓生成模型,就是说,我们认为一篇文章的每个词都是通过“以一定概率选择了某个主题,并从这个主题中以一定概率选择某个词语” 这样一个过程得到文档到主题服从多项式分布,主题到词服从多项式分布。
LDA是一种非监督机器学习技术,可以用来识别大规模文档集或语料库中潜藏的主题信息。
它采用了词袋的方法,这种方法将每一篇文档视为一个词频向量,从而将文本信息转化为了易于建模的数字信息。
但是词袋方法没有考虑词与词之间的顺序,这简化了问题的复杂性,同时也为模型的改进提供了契机。
每一篇文档代表了一些主题所构成的一个概率分布,而每一个主题又代表了很多单词所构成的一个概率分布。
LSA/LSI
Rake
Rake:Rapid Automatic Keyword Extraction。
Rake算法引入了一个degree(度)的概念,并且对词和短语不做任何区分。
因此,它实际上是不仅仅是在提取关键词,也是在提取关键短语
。
degree 是图论中的一个概念。
在一张图上,任一顶点的degree(度)是指与该顶点相关联的 边的条数。
在Rake算法中,一个词的degree其实就是它在整个文档中的非重复共现词
的数量。
特点
- 不需要一整个语料库的支持。相比于TF-IDF,这是一个很大的优势。
输入参数有三个:
- 停用词表(stop words)
- 段落分割符
- 词语分割符
针对同一种语言,这三个参数事实上是一样的。
使用Rake算法进行关键词(短语)提取的过程如下:
1、从输入文本中获取候选关键词(candidate keywords)
2、计算所有候选关键词的得分,公式如下:
score = sum(deg(w)/freq(w))
3、拼接候选关键词(以同样的顺序相邻出现两次),获取带有停用词的关键词
4、输出得分最高的前T个候选关键词作为关键词,作者的做法是输出前三分之一
Rake算法的实现,请点击:https://github.com/zelandiya/RAKE-tutorial
-
binzeng:学习笔记 — 关键词提取
https://www.jianshu.com/p/837539f116d8