Skip to content

关键词提取 & 文本摘要

Sean edited this page Sep 14, 2018 · 1 revision

实现方式

主要基于textrank实现,textrank可以完成两个任务:

  • 关键词提取
  • 文本摘要

textrank关键词提取步骤

  • 对文本进行分词,去停用词,为了提升效果也进行词性标注去除停用词性,剩下的词作为候选关键词
  • 构建候选关键词的有向图 G = (V, E) , V为关键词节点,E为关键词之间构成的边,边的确定是由共现关系确定的:两个词之间存在边仅当它们在滑动窗口中共现
  • 根据textrank计算公式迭代计算各节点的权重直至收敛
  • 对节点权重进行逆序排序,选取topk作为关键词

textrank文本摘要计算步骤

  • 对分本进行分句(一般以标点分割),然后对每个句子去停用词
  • 构建图 G = (V, E) , V为句子节点,句子之间是否存在边有它们的相似度决定,如果相似度大于给定阈值则存在边
  • 根据textrank计算公式迭代计算直至收敛
  • 对节点权重进行逆序排序,选取topk作为摘要

调用接口

import xmnlp
xmnlp.set_stopword('./stopword.txt') # 设置用户自定义停用词

doc = """自然语言处理: 是人工智能和语言学领域的分支学科。
在这此领域中探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。
 
自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算
机程序更易于处理的形式。"""

print('keyphrase: ')
for p in xmnlp.keyphrase(doc):
    print(''.join(p))
print('keyword: ')
print(xmnlp.keyword(doc, k=5))