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)