TextRank的简单实现
- 切分文章:把给定的文本使用标点或者空格切分成若干个句子;
Text = [S1, S2, ... Sn]
-
保留关键词:对于每个句子,进行分词和词性标注处理,并过滤掉停用词,只保留指定词性的单词,如名词、动词、形容词,即,其中是保留后的候选关键词。 Si = [W1, W2, ... Wn]
-
选择共现窗口大小n;
-
根据共现窗口,重新生成Text内的所有句子的关键词列表
-
[W1,W2,...Wn], [W2,W3,...Wn+1],...
-
计算每个词之间的共现度,也就是置信度。
-
初始化词共现方阵M与均值矩阵U U = [1/n,1/n,... 1/n] Un = α (M * Un-1) + (1-α)U0
-
根据上面公式,迭代传播各节点的权重,直至收敛。
-
对节点权重进行倒序排序,从而得到最重要的N个单词,作为候选关键词。在原始文本中进行标记,若形成相邻词组,则组合成多词关键词。例如,文本中有句子“中国人民站起来了”,如果“中国”和“人民”均属于候选关键词,则组合成“中国人民”加入关键词序列。