之前的《关键词抽取——结巴分词》一文仅仅利用了jiaba中的tfidf 与 textrank 进行关键词抽取,最近对以英文为主的新闻评论进行关键词提取时,这两种方法各有各的差:tfidf因为算法的限制,提取到的关键词不是很让人满意;jieba里面的textrank输出的是只针对中文语料的结果,对纯英文输入返回空值,根据源码猜测原因,可能是在处理时加入分词,将英文过滤掉了?(有待考究)。因此重新对“关键词提取”进行了有关论文的阅读,Python中新的模块——rake的应用以及主题模型的尝试。

一、理论梳理

文档的关键词集合应该具备完备性、确定性、独立性,即关键词的全体能够覆盖文档的主题信息,每个关键词应能表达准确的额意义,同时关键词间应具有一定的差异性。

(参考自基于文档主题结构的关键词抽取方法研究)

利用文档内部信息或外部信息进行关键词抽取的方式:

  1. 基于文档内部信息,利用文档的词聚类算法构建文档主题,进行关键词抽取。该方法仅利用文档内部信息,通过度量文档中词与词之间的相似度,利用聚类的方法构建文档主题,并根据不同主题在文档中的重要性进行关键词抽取。
  2. 基于文档外部结构,利用隐含主题模型构建文档主题,进行关键词抽取。针对基于文档内部信息通过聚类算法进行关键词抽取受限于文档主题提供信息不足的缺点,利用隐含主题模型构建文档主题,进行关键词抽取。
  3. 综合利用隐含主题模型和文档结构信息进行关键词抽取。

基于词聚类的关键词抽取主要包括以下步骤:

  1. 候选词选取。首先,需要将停用词去掉,为关键词抽取选取合适的候选词。
  2. 计算候选词之间的语义相似度。
  3. 根据语义相似度对候选词进行聚类。
  4. 选取每个聚类中心词,在文档中选取合适的关键词。

具体方式举例:

TFIDF根据每个词在文档中的TFIDF值来计算其重要性;
TexkRank基于图的方法;

LDA则是根据文档和单词的主题分布相似度来计算单词的重要性。

无监督的抽取方法又可细化为:

  • 基于统计:统计词频,位置等信息,计算句子权值,选取权值高的句子作为文摘
  • 基于图模型:构建拓扑结构图,textrank、lexrank
  • 基于潜在语义:使用主题模型,挖掘词句隐藏信息
  • 基于整数规划:将文摘问题转为整数规划问题,求全局最优解

微博 关键词抽取流程由以下几步组成:

  1. 根据输入查询通过新浪API获取微博集合;
  2. 利用中文分词系统对微博进行分词;
  3. 利用微博权重分析系统和单词权重分析系统计算微博中每个词的权重;
  4. 采用第5章的方法,利用翻译概率模型产生微博集合的关键词列表;
  5. 利用可视化系统将关键词列表进行可视化,并输出为关键词可视化图片呈现 给用户。

二、RAKE

Python实现:Github: python-rake

NLP keyword extraction tutorial with RAKE and Maui

论文Automatic Keyword Extraction from Individual Documents

其中介绍了RAKE在准确率和效率方面均优于textrank

import RAKEresult =''' '''
Rake = RAKE.Rake(RAKE.SmartStopList())
keywords = Rake.run(result)
print(keywords)

结果比较惊艳,主要以短语的输出为主。

三、基于隐含主题模型构建主题的方法

LDA:Latent Dirichlet allocation

一种基于LDA模型的关键词抽取方法

四、其他

基于HMM的加权Textrank单文档的关键词抽取算法

补充关键词抽取:RAKE,LDA等相关推荐

  1. 【NLP基础】英文关键词抽取RAKE算法

    每天给你送来NLP技术干货! 来自:ChallengeHub 1 RAKE简介 RAKE英文全称为Rapid Automatic keyword extraction,中文称为快速自动关键字提取,是一 ...

  2. 开箱即用!中文关键词抽取(Keyphrase Extraction),基于LDA与PageRank(TextRank, TPR, Salience Rank, Single TPR)

    Keyphrase Extraction Algorithm 项目地址:https://github.com/JackHCC/Chinese-Keyphrase-Extraction 无监督学习:中文 ...

  3. 快速上手关键词抽取的算法

    前言 在自然语言处理领域,我们有一种类型的问题是如何在一堆文本中提取出核心词/句子.而无论是对于长文本还是短文本,往往几个关键词就可以代表整个文本的主题思想.同时,在很多推荐系统中,由于无法直接就整体 ...

  4. 简单NLP分析套路(2)----分词,词频,命名实体识别与关键词抽取

    文章大纲 中文分词技术 评测参考 云服务 哈工大语言云 ltp 基于深度学习方法的中文分词 一个领域细分的中文分词工具包(北大最新开源) 信息检索与关键词提取 TF-IDF TEXTRANK word ...

  5. NLP_learning 中文基本任务与处理(分词、停用词、词性标注、语句依存分析、关键词抽取、命名实体识别)介绍、jieba工具库

    文章目录 1.分词 2.停用词和N-gram 停用词 N-gram 3. 更多任务(词性标注.依赖分析.NER.关键词抽取) 词性标注 句法依存分析 命名实体识别 关键词抽取 4. jieba工具库使 ...

  6. 乱炖“简书交友”数据之代码(2):关键词抽取、Word2Vec词向量

    继续更新出来本系列的代码:乱炖数据之2700余篇"简书交友"专题文章数据的花式玩法 在乱炖"简书交友"数据之代码(1)一文里,主要涉及结构化数据的分析,文本挖掘 ...

  7. 自然语言处理实战项目2-文本关键词抽取和关键词分值评估

    大家好,我是微学AI,今天给大家带来自然语言处理实战项目2-文本关键词抽取和关键词分值评估.关键词抽取是自然语言处理中的重要任务,也是基础任务. 一.关键词抽取传统方法 1.基于统计的方法: 基于统计 ...

  8. 全网最全的文本关键词抽取包括有监督和无监督方法

    GitHub代码链接:https://github.com/Tony0726/Keyword-Extraction.git 数据集:https://github.com/yuewang-cuhk/TA ...

  9. 【NLP】python中英文关键词抽取技术总结

    [NLP]python中英文关键词抽取技术总结 无论是在中文还是英文中关键词抽取技术都是有着很重要的应用价值和分析价值,下面在python环境中分别针对中文和英文介绍几种常用的关键词抽取方法. 1. ...

最新文章

  1. Spring 详解(三):AOP 面向切面的编程
  2. TabControl控件和TabPage的使用
  3. C++后端向JS前端转换
  4. 如何在Python中针对一个值检查多个变量?
  5. lucene-5.3.1配置(win7x64)
  6. SpringBoot SimpleCacheConfiguration的自动配置原理
  7. 省市区 / 三级联动
  8. ubuntu linux开机启动自动加载ko驱动程序_一文讲透 CentOS 开机流程
  9. asp.net应用程序级别跟踪
  10. 台式计算机如何连接投影仪,台式机PC怎样与投影仪连接
  11. keil出现同一个宏定义赋值在多个文件中结果不一致问题
  12. 网络硬盘 excel服务器,Excel Server Tutorial
  13. html编码后台转换,HTML编码转换、HTML部分实体
  14. 以人工智能和大数据为核心的第四次工业革命已经悄然而至
  15. 夜神模拟器链接不上ADB问题
  16. word/wps 插入图片变糊
  17. 裴蜀定理、拓展欧几里得及其证明
  18. Python 练习实例100例—3
  19. “燕云十六将”之毛毛杜倩(7)
  20. java架构师视频,附源代码

热门文章

  1. MD5信息摘要算法解析
  2. [Emacs] 使用w3m上网
  3. java class cast_Java异常ClassCastException
  4. Python format函数——学习笔记
  5. 【全年汇总】2023年CCF数据库/数据挖掘/内容检索会议截稿时间汇总(持续更新)
  6. MBP内置分页插件使用
  7. 关于网络知识的50个问答题,你能答对几个?
  8. Endpoint Antivirus破解版|ESET Endpoint Antivirus中文破解版(附激活授权文件)下载 v7.1.2045.5
  9. TP-LINK Mini系列无线路由器设置指南(三)——Repeater模式
  10. 【NOI Online 2022 提高组 B】【洛谷 P8252】讨论 题解