关键词提取算法一般也能分为有监督和无监督。

1、有监督的关键词提取算法主要是通过分类的方式进行的,通过构建一个较为丰富和完善的词表,然后通过判断每个文档与词表中每个词的匹配程度,以类似打标签的方式,达到关键词提取的效果。有监督的方法能够获取到较高的精度,但缺点是需要大批量的标注数据,人工成本过高。另外,会有大量的信息出现,一个固定的词表有时很难将信息的内容表达出来。

2、而无监督的方法对数据要求低,受到了大家的青睐。目前较常用的是:TF-IDF算法,TextRank算法和主题模型算法(包括LSA,LSI,LDA等)。

1、TF-IDF算法

TF算法是统计一个词在一篇文档中出现的频次,其基本思想是,一个词在文档中出现的词数越多,则其对文档的表达能力也就越强。

tf(word)=(word在文档中出现的次数)/(文档总次数)

IDF算法则是统计一个词在文档集的多少个文档中出现,其基本思想是,如果一个词在越少的文档中出现,则其对文档的区分能力也就越强。

idf(word)=log((文档集中总文档数)/(1+(文档集中出现词word的文档数量)))

分母加1是采用了拉普拉斯平滑,避免有部分新的词没有再语料库中出现过而导致分母为零。

TF-IDF=TF*IDF

2、TextRank

该算法可以脱离语料库的背景,仅对单篇文档进行分析就可以提取该文档的关键词。

该算法最早用于文档的自动摘要,基于句子维度的分析,利用TextRank对每个句子进行打分,挑选出分数最高的n个句子作为文档的关键句,以达到自动摘要的效果。

TextRank起源于PageRank算法,后者是一种网页排名算法,其基本思想有两条:

(1)链接数量。一个网页被越多的其它网页链接,说明这个网页越重要。

(2)链接质量。一个网页被一个越高权值的网页链接,也能表面这个网页越重要。

计算每个句子给它链接句的贡献是,不是通过平均分配的方式,而是通过计算权重占总权重的比例来分配。在这里,权重就是两个句子之间的相似度,相似度的计算可以采用编辑距离、余弦相似度等。在对一篇文档进行自动摘要是,默认每个语句和其它所以句子都是有链接关系的,也就是一个有向完全图。

paddlenlp 主题词提取 主题词提取算法_权重

当TextRank应用到关键字抽取时,与应用到自动摘要中时有两点不同:(1)词与词之间的关联没有权重,(2)每个词不是与文档中所有词都有链接。

当TextRank应用在关键词提取中时,学者们提出了一个窗口的概念。在窗口中的词相互间都有链接关系。得到了链接关系,就可以套用TextRank的公式,对每个词的得分进行计算。最后选择得分最高的n个词作为文档的关键词。

3、主题模型

如一篇讲动物的文章,通篇介绍了许多的动物,但文中并没有显式的出现动物二字,这种情况下,前面两种算法显然不能提取出动物这个隐含的主题信息,这时就需要用到主题模型。

主题模型认为在词与文档之间没有直接的联系,它们应当还有一个维度将它们串联起来,将这个维度称为主题。每个文档都应该对应着一个或多个的主题,而每个主题都会有对应的词分布,通过主题,就可以得到每个文档的词分布。

P(word | doc)=P(word | topic)*P(topic | doc)

在一个已知的数据集中,每个词和文档对应的P(word | doc)都是已知的。

3.1 LSA(潜在语义分析)/LSI(潜在语义索引)

二者通常被认为是同一种算法,只是应用的场景越有不同,LSA是在需要构建的相关任务中的叫法。可以说,LSA和LSI都是对文档的潜在语义进行分析,但是潜在语义索引在分析后,还会利用分析的结果建立相关的索引。

LSA的主要步骤:

(1)使用BOW模型将每个文档表示为向量;

(2)将所有的文档词向量拼接起来构成词-文档矩阵(m*n)

(3)对词-文档矩阵进行奇异值分解(SVD)操作([m*r].[r*r].[r*n])

(4)根据SVD结果,将词-文档矩阵映射到一个更低维度k([m*k].[k*k].[k*n],0<k<r)的近似SVD结果,每个词和文档都可以表示为k个主题构成的空间中的一个点。通过计算每个词和文档的相似度。可以得到每个文档中对每个词的相似度结果,取相似度最高的一个词即为文档的关键词。

LSA的优点:

可以映射到低维的空间,并在有限利用文本语义信息的同时,大大降低计算的代价,提高分析质量。

缺点:

SVD的计算复杂度非常高,特征空间维度较大,计算效率十分低下;

LSA得到的分布信息是基于已有数据集的,当一个新的文档进入到已有的特征空间时,需要对整个空间重新训练,以得到加入新文档后对应的分布信息;

LSA对词的频率分布不敏感、物理解释性薄弱的问题。

3.2 LDA算法

该算法的理论基础是贝叶斯理论。

LDA 算法假设文档中主题的先验分布和主题中词的先验分布都服从狄利克雷分布。

结合吉布斯采样的LDA模型训练过程:

(1)随机初始化,对语料中每篇文档中的每个词w,随机的赋予一个topic编号z。

(2)重新扫描语料库,对每个词w按照吉布斯采样公式重新采样它的topic,在语料中进行更新。

(3)重复以上语料库的重新采样过程知道吉布斯采样收敛。

(4)统计语料库的topic-word共现频率矩阵,该矩阵就是LDA的模型。

在我们得到主题对词的分布后,也据此得到词对主题的分布。接下来,就可以通过这个分布信息计算文档与词的相似性,继而得到文档最相似的词列表,最后就可以得到文档的关键词。