jieba库中基于 TextRank 算法的关键词抽取——源代码分析(八)

2021SC@SDUSC
2021SC@SDUSC
在之前的博客中已经详细分析了jieba中用于提取关键词的TextRank算法的源代码分析,但是比较零碎,我们现在可以使用例子来更好地了解TextRank算法源代码的工作原理以及一些可能忽略掉的细节。
例如下面这段话(选自人民日报微博):
【夜读:过得充实的人,都有这六个好习惯】①读书:不断追求成长和进步;②运动:保持积极的身心状态;③培养兴趣:爱好让生活丰富有趣;④制定计划:让目标成就更好的自己;⑤自省:拥有自我更新的能力,完善和提高自己;⑥保持好心态;始终保持空杯心态,接纳和学习更多东西。
如果我们对其使用Text Rank算法,那么第一步就是分词。

首先使用到方法中的这段源代码:

 def textrank(self, sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'), withFlag=False):
        """
        Extract keywords from sentence using TextRank algorithm.
        Parameter:
            - topK: return how many top keywords. `None` for all possible words.
            - withWeight: if True, return a list of (word, weight);
                          if False, return a list of words.
            - allowPOS: the allowed POS list eg. ['ns', 'n', 'vn', 'v'].
                        if the POS of w is not in this list, it will be filtered.
            - withFlag: if True, return a list of pair(word, weight) like posseg.cut
                        if False, return a list of words
        """
        self.pos_filt = frozenset(allowPOS)
        g = UndirectWeightedGraph()
        cm = defaultdict(int)
        words = tuple(self.tokenizer.cut(sentence))
上一篇:show processlist结果中status状态总结


下一篇:HTML5中 基本用法及属性 韩俊强的博客