NLP:基于textrank4zh库对文本实现提取文本关键词、文本关键短语和文本摘要

NLP:基于textrank4zh库对文本实现提取文本关键词、文本关键短语和文本摘要


输出结果

关键词:
故宫
0.030737773083470445
镜头
0.026154204788274925
吸烟
0.02464630557740873
网友
0.0223623041596296
规定
0.021749817200586608
工作
0.021491249428577667
禁止
0.02028752723934755
景区
0.019314322943705477
炫耀
0.018931429709004036
称
0.01849004576313802
表示
0.017926862026642076
全面
0.016033284719331194
通报
0.016033284719331194
全市
0.01573736890057259
带有
0.014258600922955385
挑衅
0.014258600922955385
单位
0.012633705830118174
设立
0.012318056112472466
男子
0.012219070984211678
黑名单
0.011988917420401994

关键短语:
禁止吸烟

摘要:
10 0.12507418731273198
视频在网络上传播开来,不少网友担心故宫的安危,称一旦发生火情,后果不堪设想,有网友表示,这样的行为应该被旅游景区拉近黑名单,建议终身禁止进入任何景区和各种场馆
0 0.12010154061801917
今天一大早,两位男子在故宫抽烟对镜头炫耀的视频在网络上传播,引发网友愤怒
6 0.10828312286511374
而视频中两人也表示知道有故宫禁止吸烟的规定

设计思路

后期更新……

核心代码

def analyze Found at: textrank4zh.TextRank4Keyword

def analyze(self, text,
    window=2,
    lower=False,
    vertex_source='all_filters',
    edge_source='no_stop_words',
    pagerank_config={'alpha':0.85}):
    """分析文本

    Keyword arguments:
    text       --  文本内容,字符串。
    window     --  窗口大小,int,用来构造单词之间的边。默
     认值为2。
    lower      --  是否将文本转换为小写。默认为False。
    vertex_source   --  选择使用words_no_filter,
     words_no_stop_words, words_all_filters中的哪一个来构
     造pagerank对应的图中的节点。
    默认值为`'all_filters'`,可选值为`'no_filter',
     'no_stop_words', 'all_filters'`。关键词也来自
     `vertex_source`。
    edge_source     --  选择使用words_no_filter,
     words_no_stop_words, words_all_filters中的哪一个来构
     造pagerank对应的图中的节点之间的边。
    默认值为`'no_stop_words'`,可选值为`'no_filter',
     'no_stop_words', 'all_filters'`。边的构造要结合`window`参
     数。
    """
    # self.text = util.as_text(text)
    self.text = text
    self.word_index = {}
    self.index_word = {}
    self.keywords = []
    self.graph = None
    result = self.seg.segment(text=text, lower=lower)
    self.sentences = result.sentences
    self.words_no_filter = result.words_no_filter
    self.words_no_stop_words = result.
     words_no_stop_words
    self.words_all_filters = result.words_all_filters
    util.debug(20 * '*')
    util.debug('self.sentences in TextRank4Keyword:\n', '
     || '.join(self.sentences))
    util.debug('self.words_no_filter in
     TextRank4Keyword:\n', self.words_no_filter)
    util.debug('self.words_no_stop_words in
     TextRank4Keyword:\n', self.words_no_stop_words)
    util.debug('self.words_all_filters in
     TextRank4Keyword:\n', self.words_all_filters)
    options = ['no_filter', 'no_stop_words', 'all_filters']
    if vertex_source in options:
        _vertex_source = result['words_' + vertex_source]
    else:
        _vertex_source = result['words_all_filters']
    if edge_source in options:
        _edge_source = result['words_' + edge_source]
    else:
        _edge_source = result['words_no_stop_words']
    self.keywords = util.sort_words(_vertex_source,
     _edge_source, window=window,
     pagerank_config=pagerank_config)
(0)

相关推荐