主题关键词:能够体现文本内容主题的关键词
一、TF-IDF模型
词频(TF)= 某个词在文本中出现的次数/该文本中总词数
或者一种变种的计算方法
词频(TF)= 某个词在文本中出现的次数/该文本中出现次数最多的词其出现的次数
逆向文档频(IDF)= log(语料库中所有文档总数/(包含某词的文档数+1))
注意
– 为了避免分母为0,所以在分母上加1
– 所指的词个数,一定时刨除了停用词的计算,甚至时专门的词表
– 这里的log,可以取log10、log2甚至时log e,根据实际效果调整
应用场景
– 计算出文章中每个词的TF-IDF值之后,进行排序,选取其中值最高的几个作为关键字。
– 计算出每篇文章的关键词,从中各选取相同个数的关键词,合并成一个集合,计算每篇文章对于这个集合中的词的词频,生成两篇文章各自的词频向量,进而通过欧氏距离或余弦距离求出两个向量的余弦相似度,值越大就表示越相似。
二、TextRank算法
TextRank算法:一种非监督式的主题抽取算法,不依赖于其他语料,直接从文本中抽取主题词。
PageRank算法:网页排名算法,核心思想就是一个网页的重要程度取决于它的网页数量以及这些网页的重要程度,即每一个网页的重要程度都是通过其他网页来实现的,而它的重要程度又反过来影响它外链中的网页重要程度。
– 如果一个网页被很多其他网页链接到的话说明这个网页比较重要,也就是PageRank值会相对较高。
– 如果一个PageRank值很高的网页链接到一个其他的网页,那么被链接到的网页的PageRank值会相应地因此而提高。
基于TextRank的关键词提取
关键词抽取的任务就是从一段给定的文本中自动抽取出若干有意义的词语或词组,TextRank算法是利用局部词汇之间的关系(共现窗口)对后续关键词进行排序,直接从文本本身抽取。其主要步骤如下:
1. 把给定的文本
T
按照完整句子进行分割,即
T
=
[
s
1
,
s
2
,
.
.
.
,
s
n
]
2. 对于每个句子
S
i
,进行分词和词性标注处理,并过滤掉停用词,只保留指定词性的单词,如名词、动词、形容词,即
S
i
=
[
t
i
,
1
,
t
i
,
2
,
.
.
.
,
t
i
,
n
]
,其中
t
i
,
j
是保留后的候选关键词。
3. 构建候选关键词图
G
=
(
V
,
E
)
,其中
V
为节点集,由(2)生成的候选关键词组成,然后采用共现关系(co-occurrence)构造任两点之间的边,两个节点之间存在边仅当它们对应的词汇在长度为K的窗口中共现,
K
表示窗口大小,即最多共现
K
<script type=”math/tex” id=”MathJax-Element-351″>K</script>个单词。
4. 根据PageRank的计算公式,迭代传播各节点的权重,直至收敛。
5. 对节点权重进行倒序排序,从而得到最重要的T个单词,作为候选关键词。
6. 由(5)得到最重要的T个单词,在原始文本中进行标记,若形成相邻词组,则组合成多词关键词。例如,文本中有句子“Matlab code for plotting ambiguity function”,如果“Matlab”和“code”均属于候选关键词,则组合成“Matlab code”加入关键词序列。
三、LDA主题模型
核心思想:认为每一篇文档Doc都是由多个主题Topic组成,而每一个主题Topic由多个词Word组成。
通过对语料库D中所有文档进行分词或者抽词处理之后,通过模型训练,得到两个概率矩阵:一是每一个Doc对应K个Topic的概率;二是每一个Topic对应N个词组成的词表的概率。