NLP-关键词抽取的几种算法

匿名 (未验证) 提交于 2019-12-02 22:56:40

TextRank


PageRank的思想是这样的:
求解网页的重要性就是求解有向图中节点的重要性,或者说节点的权重。图中节点的重要性和节点的入度有关,越多的其他节点连接到该节点说明该节点的重要性越大。因此,节点的重要性与节点的入度有关。考虑到存在没有入度的节点,增加了阻尼系数来保证所有的节点都有大于0的重要性。试验结果表明,0.85的阻尼系数,迭代100多次就可以收敛到一个稳定的值。
所以PageRank的公式:

TextRank从PageRank改进而来,比PageRank多了一个参数:节点之间边的权重,不同的是TextRank算法构造了一个无向图。公式如下:

文本分词后的词汇相当于有向图中的节点,节点之间的边则通过词共现关系构建。给节点指定任意初值,迭代传播节点之间的权重,直到收敛。
优点:仅用单个文档就可以抽取其本身的关键词,不需要使用多篇文档训练
缺点:


TF-IDF


TF-IDF=TF*IDF

TF(Term Frequency)

Term Frequency:词频,顾名思义,TF的基本思想是词在文档中出现的次数越多,越能代表该文档。由于同一个词语在长文件里可能会比短文件有更高的词频,所以需要对词频进行归一化处理。
而有些通用词在每个文档中都出现很多次,但不能表示任一文档的含义,所以引入IDF。
Inverse Document Frequency:逆文档频率。

IDF的思想是:对于某一文档中的词,如果在该文档中出现次数很多,而在其他文档中出现次数很少或不出现,则该词的区分能力越高。
分母加一是考虑到包含词条的文档数为0的情况,对公式进行拉普拉斯平滑处理。
某文档内的高频词,以及该词在文档集中的低文档频率,得到的TF-IDF值更高。因此,TF-IDF可以过滤掉通用词,只保留重要的词语。
TF-IDF是一种基于统计的关键词抽取算法,词语的关键程度跟词语在文档中出现的次数有关。
优点:简单快捷,结果比较符合实际情况。
缺点:单纯以词频衡量一个词的重要性,不够全面,有时重要的词可能出现次数不多,而且忽略了词序和词义的重要性。


LDA


对于LDA的理解源于一篇通俗易懂的博客戏说从Unigram model 到LDA再到BTM博客使用了上帝掷骰子这一个比喻来解释LDA,非常通俗有趣。从无主题文档,单主题文档,多主题文档到LDA,上帝掷骰子的难度逐步增加。
如果要深入理解LDA,可以参考52nlp-LDA八卦



参考了《Python自然语言处理实战:核心技术与算法》
书籍github地址

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!