TF-IDF算法(Term Frequency-Inverse document Frequency,词频–逆文档频次算法)是一种基于统计的计算方法,常用于评估在一个文档集中一个词对某份文档的重要程度。这种作用显然很符合关键词抽取的需求,一个词对文档越重要,那就越可能是文档的关键词,人们常将TF-IDF算法应用于关键词提取中。
从算法的名称就可以看出,TF-IDF算法由两部分组成:TF算法以及IDF算法。TF算法是统计一个词在一篇文档中出现的频次,其基本思想是,一个词在文档中出现的次数越多,则其对文档的表达能力也就越强。而IDF算法则是统计一个词在文档集的多少个文档中出现,其基本的思想是,如果一个词在越少的文档中出现,则其对文档的区分能力也就越强。
其他算法的关键词提取都要基于一个现成的语料库。如在TF-IDF中需要统计每个词在语料库中的多少个文档有出现过,也就是逆文档频率;主题模型的关键词提取算法则是要通过对大规模文档的学习,来发现文档的隐含主题。而TextRank算法则是可以脱离语料库的背景,仅对单篇文档进行分析就可以提取该文档的关键词。这也是TextRank算法的一个重要特点。TextRank算法最早用于文档的自动摘要,基于句子维度的分析,利用TextRank对每个句子进行打分,挑选出分数最高的n个句子作为文档的关键句,以达到自动摘要的效果。
LSA(Latent Semantic Analysis,潜在语义分析)和LSI(Latent Semantic Index,潜在语义索引),二者通常被认为是同一种算法,只是应用的场景略有不同,LSA是在需要构建的相关任务中的叫法。可以说,LSA和LSI都是对文档的潜在语义进行分析,但是潜在语义索引在分析后,还会利用分析的结果建立相关的索引。
LSA的主要步骤如下:
- 使用BOW模型将每个文档表示为向量;
- 将所有的文档词向量拼接起来构成词–文档矩阵(m×n);
- 对词–文档矩阵进行奇异值分解(SVD)操作([m×r]·[r×r]·[r×n]);
- 根据SVD的结果,将词–文档矩阵映射到一个更低维度k([m×k]·[k×k]·[k×n],0<k<r)的近似SVD结果,每个词和文档都可以表示为k个主题构成的空间中的一个点,通过计算每个词和文档的相似度(相似度计算可以通过余弦相似度或者是KL相似度进行),可以得到每个文档中对每个词的相似度结果,取相似度最高的一个词即为文档的关键词。
LDA根据词的共现信息的分析,拟合出词–文档–主题的分布,进而将词、文本都映射到一个语义空间中。
结合吉布斯采样的LDA模型训练过程一般如下:
- 随机初始化,对语料中每篇文档中的每个词w,随机地赋予一个topic编号z。
- 重新扫描语料库,对每个词w按照吉布斯采样公式重新采样它的topic,在语料中进行更新。
- 重复以上语料库的重新采样过程直到吉布斯采样收敛。
- 统计语料库的topic-word共现频率矩阵,该矩阵就是LDA的模型。
经过以上的步骤,就得到一个训练好的LDA模型,接下来就可以按照一定的方式针对新文档的topic进行预估,具体步骤如下:
- 随机初始化,对当前文档中的每个词w,随机地赋一个topic编号z。
- 重新扫描当前文档,按照吉布斯采样公式,重新采样它的topic。
- 重复以上过程直到吉布斯采样收敛。
- 统计文档中的topic分布即为预估结果。
通过上面LSA或者是LDA算法,我们得到了文档对主题的分布和主题对词的分布,接下来就是要利用这些信息来对关键词进行抽取。在我们得到主题对词的分布后,也据此得到词对主题的分布。接下来,就可以通过这个分布信息计算文档与词的相似性,继而得到文档最相似的词列表,最后就可以得到文档的关键词。
训练一个关键词提取算法需要以下几个步骤:
1)加载已有的文档数据集。
2)加载停用词表。
3)对数据集中的文档进行分词。
4)根据停用词表,过滤干扰词。
5)根据数据集训练算法。
而根据训练好的关键词提取算法对新文档进行关键词提取要经过以下环节:
1)对新文档进行分词。
2)根据停用词表,过滤干扰词。
3)根据训练好的算法提取关键词。
以上就是本篇文章【NLP-关键词提取】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/quote/3201.html 行业 资讯 企业新闻 行情 企业黄页 同类资讯 网站地图 返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多