当前位置:   article > 正文

NLP自然语言处理:关键词提取_nlp自然语言 重点提取

nlp自然语言 重点提取

 

 

 

基于 TF-IDF 算法的关键词抽取

import jieba.analyse

  • jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
    • sentence 为待提取的文本
    • topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
    • withWeight 为是否一并返回关键词权重值,默认值为 False
    • allowPOS 仅包括指定词性的词,默认值为空,即不筛选

提取例子:

  1. import jieba.analyse as analyse
  2. import pandas as pd
  3. df = pd.read_csv('./origin_data/technology_news.csv')
  4. df = df.dropna()
  5. lines = df.content.values.tolist()
  6. content = "".join(lines)
  7. print(" ".join(analyse.extract_tags(content, topK=30, withWeight=False, allowPOS=())))

 

基于 TextRank 算法的关键词抽取

  • jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v')) 直接使用,接口相同,注意默认过滤词性。
  • jieba.analyse.TextRank() 新建自定义 TextRank 实例

算法论文:http://web.eecs.umich.edu/~mihalcea/papers/mihalcea.emnlp04.pdf

基本思想:

  • 将待抽取关键词的文本进行分词
  • 以固定窗口大小(默认为5,通过span属性调整),词之间的共现关系,构建图
  • 计算图中节点的PageRank,注意是无向带权图

TextRank的核心就是PageRank,PageRank介绍:https://www.jianshu.com/p/f6d66ab97332

提取例子:

  1. import jieba.analyse as analyse
  2. import pandas as pd
  3. df = pd.read_csv("./origin_data/military_news.csv", encoding='utf-8')
  4. df = df.dropna()
  5. lines=df.content.values.tolist()
  6. content = "".join(lines)
  7. print(" ".join(analyse.textrank(content, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'))))
  8. print("---------------------我是分割线----------------")
  9. print(" ".join(analyse.textrank(content, topK=20, withWeight=False, allowPOS=('ns', 'n'))))

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/348521
推荐阅读
相关标签
  

闽ICP备14008679号