textRank算法

textRank算法思想基于谷歌的pageRank算法,一种用于文本的基于图的排序算法,用于为文本生成关键字和摘要

pageRank用来计算网页的重要性,整个网络的所有网页可以看作是一张有向图,网页作为节点,如果A网页中存在B网页的链接,那么一条有向边从A节点(网页)指向B节点(网页)。

textRank算法_第1张图片

假设形成这样一张图,可以用矩阵来表示这张图的链入链出的关系:

S = $$ \begin{matrix} & A & B & C & D & E \\ A & 0 & 0 & 1 & 0 & 0 \\ B & 1/2 & 0 & 0 & 1/2 & 0 \\ C & 0 & 1/2 & 0 & 0 & 1/2 \\ D & 1/3 & 0 & 1/3 & 0 & 1/3 \\ E & 1/2 & 1/2 & 0 & 0 & 0 \\ \end{matrix} \tag{1} $$    (看起来成了马尔可夫转移矩阵)

下面公式计算网页的重要性

 

 PR_{i} = (1-d) + d * \sum_{(J,I)\in E}{(PR_j/O_j)}    

PRi 是网页i的重要性,d是阻尼系数(一般取0.85),E是所有指向网页i的入链的集合,Oj是网页j的出链总数.

但是在初始情况下,PRj并不知道,所以需要给每个PR设置一个初始值(比如为1),然后使用公式多次迭代至收敛得到结果。

 

textRank

textRank通过吧文本分割成若干单元(词或句子、段落),建立图模型,利用投票机制对文本中单元进行排序,只利用单篇文档信息就能进行关键词的提取、文本摘要。相较于 LDA、HMM 等模型, TextRank不需要事先对多篇文档进行学习训练。

textRank处理文本数据的主要步骤:

1、将文本拆分成句子,并对句子进行分词,词性标注,去停用词,得到句子和单词的集合。

2、构建关键词图,节点为集合中的每个词,根据共现关系构造节点之间的边。设置窗口大小k(即在大小为k的窗口中,最多共现k个词),在一个窗口内,共现的任意两个词之间即存在一条无向边,在所有窗口的共现次数作为权值。

3、根据公式迭代至收敛得出各词的重要性

其中Wji作为权值(词i和词j的共现次数)

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(数据挖掘,文本分析)