注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《分布式机器学习实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】

文章目录

  • 自然语言处理系列五
    • 新词发现与短语提取
      • 短语提取
  • 总结

自然语言处理系列五

新词发现与短语提取

新词发现是一个非常重要的NLP课题。在处理文本对象时,非常关键的问题在于“切词”这个环节,几乎所有的后续结果都依赖第一步的切词。因此切词的准确性在很大程度上影响着后续的处理,切词结果的不同,也就影响了特征的提取,跟数据挖掘一样,特征提取的好坏特别重要,不论用什么算法,特征好数据好结果才会好。
短语提取是指从文章中提取典型的、有代表性的短语,期望能够表达文章的关键内容。关键短语抽取对于文章理解、搜索、分类、聚类都很重要。而高质量的关键短语抽取算法,还能有效助力构建知识图谱。
本章对新词发现和短语提取的算法原理进行介绍,并用开源工具代码演示其功能。

之前我们已经介绍过新词发现的算法原理进行介绍,并用开源工具代码演示其功能。
自然语言处理系列四——新词发现与短语提取——新词发现
接下来开始对短语提取的算法原理进行介绍,并用开源工具代码演示其功能。

短语提取

短语提取是指从文章中提取典型的、有代表性的短语,期望能够表达文章的关键内容。短语抽取对于文章理解、搜索、分类、聚类都很重要。而高质量的短语抽取算法,还能有效助力构建知识图谱。常见的短语提取方法分为无监督 (unsupervised)和有监督 (supervised)。整体抽取流程则分为2个步骤:(1) candidate generation,得到候选短语集合;(2) keyphrase scoring,对候选短语进行打分。

  1. 无监督方法
    无监督的方法由于其不需要数据标注及普适性,得到了大范围的应用。
    1)基于统计的方法
    基于TFIDF的方法是最基本的版本,在得到候选短语集合的基础上(如,利用POS tags抽取noun phrases (NP)),使用term frequency, inverse document frequency对候选短语进行打分,选择高分短语作为关键短语。YAKE除了利用term frequency, term position,还利用了更多基于统计学的特征,希望能更好地表示短语的上下文信息和短语在文章中发挥的作用。
    2)基于图网络的方法
    TextRank是第一个基于图网络的关键短语抽取算法。该方法首先根据POS tags抽取候选短语,然后使用候选短语作为节点,创建图网络。两个候选短语如果共现于一定的窗口内,则在节点之间创建一条边,建立节点间的关联。使用PageRank算法更新该图网络,直至达到收敛条件。此后,各种基于图网络的改进算法不断被提出,该类算法也逐渐成为无监督关键短语抽取中应用最广泛的算法。SingleRank在TextRank之上为节点间的边引入了权重。PositionRank通过引入短语的位置信息,创建一个biased weighted PageRank,从而提供了更准确的关键短语抽取能力。
    3)基于embedding的方法
    这类方法利用embedding来表达文章和短语在各个层次的信息(如:字、语法、语义等)。EmbedRank首先利用POS tags抽取候选短语,然后计算候选短语embedding和文章embedding的cosine similarity,利用相似度将候选短语排序,得到关键的短语。

  2. 有监督方法
    虽然需要花费很多精力进行数据标注,但有监督方法在各个特定任务和数据集上,通常能够取得更好的效果。
    1)传统的方法
    KEA是较早期的算法,利用特征向量表示候选短语,如:tf-idf分数和初次出现在文章中的位置信息,使用Naïve Bayes作为分类,对候选短语进行打分和分类。CeKE在对学术论文进行关键短语抽取时,通过使用论文的引用关系,引入更多特征信息,从而进一步提升了效果。RankingSVM使用learning to rank来建模该问题,将训练过程抽象为拟合ranking函数。TopicCoRank是无监督方法TopicRank的有监督扩展。该方法在basic topic graph之外,结合了第二个图网络。
    CRF是序列标注的经典算法,利用语言学、文章结果等各种来源特征表示文章,通过序列标注,得到文章的关键短语。
    2)基于深度学习的方法
    RNN使用了双层RNN结构,通过两层hidden layer来表征信息,并且利用序列标注的 方法,输出最终的结果。CopyRNN使用encoder-decoder结构进行关键短语抽取。首先,训练数据被转换为text-keyphrase pairs,然后训练基于RNN的encoder-decoder网络,学习从源数据 (sentence)到目标数据 (keyphrase)的映射关系。CorrRNN同样适用encoder-decoder结构,但是额外引入了两种限制条件:
    (1)Keyphrases应该尽量覆盖文章的多个不同话题;
    (2) Keyphrases应该彼此之间尽量不一样,保证多样性。
    短语提取是NLP的一个基础任务,对于内容理解、搜索、推荐等各种下游任务,都非常重要。统计学、语法、句法、语义等多来源特征被引入和使用,用来抽取候选短语和对短语进行打分。随着预训练模型的发展,各种知识图谱的构建,更多外部知识和信息能够被引入,从而促进短语提取算法的效果提升。同时,更好的短语提取系统又能反哺各项任务,比如:知识图谱的构建,最终整体形成闭环,促进各项技术的进步。

  3. HanLP工具的短语提取代码示例
    HanLP工具提供了短语提取的功能,代码如下:

package com.chongdianleme.job;
import com.hankcs.hanlp.HanLP;
import org.apache.commons.lang3.StringUtils;
import java.util.List;
/*** Created by 充电了么App - 陈敬雷* 充电了么App官网:http://chongdianleme.com/* 充电了么App - 专注上班族职业技能提升充电学习的在线教育平台* HanLP短语提取功能,开源地址:https://github.com/hankcs/HanLP
*/
public class PhraseExtract {public static void main(String[] args) {String content = "分布式机器学习实战(人工智能科学与技术丛书)作者陈敬雷,责任编辑赵佳霓,此书深入浅出,逐步讲解分布式机器学习的框架及应用配套个性化推荐算法系统、人脸识别、对话机器人等实战项目,并有以下名人陈兴茂,梅一多,杨正洪,刘冬冬,龙旭东联袂推荐:" +"——陈兴茂 猎聘CTO\n" +"——梅一多 博士 上海市青年拔尖人才,中基凌云科技有限公司联合创始人\n" +"——杨正洪 博士 中央财经大学财税大数据实验室首席科学家\n" +"——刘冬冬 首席数据官联盟创始人\n" +"——龙旭东 北京掌游智慧科技有限公司董事长";List<String> phraseList = extractPhrase(content,6);System.out.println(StringUtils.join(phraseList,","));}/*** HanLP短语提取* @param content* @return*/public static List<String> extractPhrase(String content,int size){List<String> phraseList = HanLP.extractPhrase(content, size);return phraseList;}
}

总结

此文章有对应的配套视频,其它更多精彩文章请大家下载充电了么app,可获取千万免费好课和文章,配套新书教材请看陈敬雷新书:《分布式机器学习实战》(人工智能科学与技术丛书)

【新书介绍】
《分布式机器学习实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】
新书特色:深入浅出,逐步讲解分布式机器学习的框架及应用配套个性化推荐算法系统、人脸识别、对话机器人等实战项目

【新书介绍视频】
分布式机器学习实战(人工智能科学与技术丛书)新书【陈敬雷】

视频特色:重点对新书进行介绍,最新前沿技术热点剖析,技术职业规划建议!听完此课你对人工智能领域将有一个崭新的技术视野!职业发展也将有更加清晰的认识!

【精品课程】
《分布式机器学习实战》大数据人工智能AI专家级精品课程

【免费体验视频】:
人工智能百万年薪成长路线/从Python到最新热点技术

从Python编程零基础小白入门到人工智能高级实战系列课

视频特色: 本系列专家级精品课有对应的配套书籍《分布式机器学习实战》,精品课和书籍可以互补式学习,彼此相互补充,大大提高了学习效率。本系列课和书籍是以分布式机器学习为主线,并对其依赖的大数据技术做了详细介绍,之后对目前主流的分布式机器学习框架和算法进行重点讲解,本系列课和书籍侧重实战,最后讲几个工业级的系统实战项目给大家。 课程核心内容有互联网公司大数据和人工智能那些事、大数据算法系统架构、大数据基础、Python编程、Java编程、Scala编程、Docker容器、Mahout分布式机器学习平台、Spark分布式机器学习平台、分布式深度学习框架和神经网络算法、自然语言处理算法、工业级完整系统实战(推荐算法系统实战、人脸识别实战、对话机器人实战)、就业/面试技巧/职业生涯规划/职业晋升指导等内容。

【充电了么公司介绍】

充电了么App是专注上班族职业培训充电学习的在线教育平台。

专注工作职业技能提升和学习,提高工作效率,带来经济效益!今天你充电了么?

充电了么官网
http://www.chongdianleme.com/

充电了么App官网下载地址
https://a.app.qq.com/o/simple.jsp?pkgname=com.charged.app

功能特色如下:

【全行业职位】 - 专注职场上班族职业技能提升

覆盖所有行业和职位,不管你是上班族,高管,还是创业都有你要学习的视频和文章。其中大数据智能AI、区块链、深度学习是互联网一线工业级的实战经验。

除了专业技能学习,还有通用职场技能,比如企业管理、股权激励和设计、职业生涯规划、社交礼仪、沟通技巧、演讲技巧、开会技巧、发邮件技巧、工作压力如何放松、人脉关系等等,全方位提高你的专业水平和整体素质。

【牛人课堂】 - 学习牛人的工作经验

1.智能个性化引擎:

海量视频课程,覆盖所有行业、所有职位,通过不同行业职位的技能词偏好挖掘分析,智能匹配你目前职位最感兴趣的技能学习课程。

2.听课全网搜索

输入关键词搜索海量视频课程,应有尽有,总有适合你的课程。

3.听课播放详情

视频播放详情,除了播放当前视频,更有相关视频课程和文章阅读,对某个技能知识点强化,让你轻松成为某个领域的资深专家。

【精品阅读】 - 技能文章兴趣阅读

1.个性化阅读引擎:

千万级文章阅读,覆盖所有行业、所有职位,通过不同行业职位的技能词偏好挖掘分析,智能匹配你目前职位最感兴趣的技能学习文章。

2.阅读全网搜索

输入关键词搜索海量文章阅读,应有尽有,总有你感兴趣的技能学习文章。

【机器人老师】 - 个人提升趣味学习

基于搜索引擎和智能深度学习训练,为您打造更懂你的机器人老师,用自然语言和机器人老师聊天学习,寓教于乐,高效学习,快乐人生。

【精短课程】 - 高效学习知识

海量精短牛人课程,满足你的时间碎片化学习,快速提高某个技能知识点。

上一篇:自然语言处理系列四》新词发现与短语提取》新词发现
下一篇:自然语言处理系列六》中文分词》中文分词原理

自然语言处理系列五》新词发现与短语提取》短语提取相关推荐

  1. Python自然语言处理相,新词发现,主题模型,隐马尔模型词性标注,Word2Vec,情感分析...

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 代码环境:python --version 3.5.2 tensorflow keras 代码 ...

  2. NLP:自然语言处理技术之词语级别相关术语解释(如上位词/WordNet)、基于词汇层面的词法分析六大任务(分词/词性标注/词干提取-词形还原/新词发现/形态分析/拼写校正)的简介及其应用

    NLP:自然语言处理技术之词语级别相关术语解释(如上位词/WordNet).基于词汇层面的词法分析(Lexical Analysis)六大任务(分词/词性标注/词干提取-词形还原/新词发现/形态分析/ ...

  3. 无监督构建词库:更快更好的新词发现算法

    作者丨苏剑林 单位丨追一科技 研究方向丨NLP,神经网络 个人主页丨kexue.fm 新词发现是 NLP 的基础任务之一,主要是希望通过无监督发掘一些语言特征(主要是统计特征),来判断一批语料中哪些字 ...

  4. 切切切词!新词发现算法TopWORDS的原理及实现|实在智能AI+RPA学院

    切切切词!新词发现算法TopWORDS的原理及实现|实在智能AI+RPA学院 一.介绍 TopWORDS [参考文献1]是发表在PNAS的一种新词发现算法,它在没有任何先验知识的条件下,快速地从大规模 ...

  5. 新词发现:中文新词识别技术简介

    一.前言 新词识别,也可称为未登录词识别,严格来说,新词是指随时代发展而新出现或旧词新用的词,如:给力.山寨等:而未登录词是在词典中未存在的词,但实际使用中,两者并没有严格的区分,下文均以新词指代. ...

  6. 数学之美系列五 -- 简单之美:布尔代数和搜索引擎的索引

    数学之美系列五 -- 简单之美:布尔代数和搜索引擎的索引 [建立一个搜索引擎大致需要做这样几件事:自动下载尽可能多的网页:建立快速有效的索引:根据相关性对网页进行公平准确的排序.我们在介绍 Googl ...

  7. 智能路由器-OpenWRT 系列五 (NAS-SMB家庭共享)

    NAS是我觉得家里必不可少的一台设备,NAS 全称 Network Attached Storage,即网络附加存储服务器,它通过自身的操作系统和 SMB/NFS/CIFS/FTP 等多种通信协议来给 ...

  8. 深入剖析Redis系列(五) - Redis数据结构之字符串

    前言 字符串类型 是 Redis 最基础的数据结构.字符串类型 的值实际可以是 字符串(简单 和 复杂 的字符串,例如 JSON.XML).数字(整数.浮点数),甚至是 二进制(图片.音频.视频),但 ...

  9. Docker系列五~docker安装php-fpm

    Docker系列五 docker安装php-fpm 访问PHP镜像库地址: https://hub.docker.com/_/php?tab=tags 选择合适的版本 php-fpm镜像主要是提供ph ...

  10. ONNX系列五 --- 在C#中使用可移植的ONNX AI模型

    目录 安装和导入ONNX运行时 载入ONNX模型 使用ONNX运行时进行预测 摘要和后续步骤 参考文献 下载源547.1 KB 系列文章列表如下: ONNX系列一 --- 带有ONNX的便携式神经网络 ...

最新文章

  1. linux 文件管理 教程,Linux文件管理
  2. OpenCV代码提取:遍历指定目录下指定文件的实现
  3. 第四十四节,subprocess系统命令模块
  4. MySQL输入密码后闪退的解决方法
  5. Python 搜狗站长平台批量添加域名+批量提交链接 过验证码 IP限制
  6. 首届UBDC全域大数据峰会:未来的数据一定是全域数据
  7. setinterval 会被销毁吗_链信全国城市节点竞价活动完美收官,第一批节点总计销毁516600个CCT!...
  8. 数据结构 - 二叉排序树BST(创建、遍历、删除节点)
  9. 福师计算机在线作业一2,福师《计算机》在线作业二答案.doc
  10. 敏捷结果:项目开发中的一些想法和疑问
  11. 枚举求解:试把一个正整数n拆分为若干个(不少于2个)连续正整数之和。例如:n=15,有3种拆分:15=1+2+3+4+5,15=4+5+6,15=7+8。 对于给定的正整数n,求出所有符合这种拆分要求
  12. 【译】前端框架技术选型 React vs. Vue (vs. Angular)
  13. 连锁百货企业数据系统整理解决方案
  14. android PopupWindow 显示问题
  15. Vue项目部署到SpringBoot工程下
  16. java中怎么创建单列模式,java中的3种方式创建的单例模式
  17. VBScript教程-第二章. 运行脚本
  18. api 二次 开发 禅道_二次开发机制 - 禅道开源版使用帮助 - 禅道开源项目管理软件...
  19. Spring publishevent事件处理
  20. 什么品牌的蓝牙耳机音质好?四款高音质蓝牙耳机推荐

热门文章

  1. 对序列化器、“对象”的理解
  2. html自动增加文本框,html创建文本框
  3. echarts中如何设置geo3D地图背景图片,以及geo3D中如何使用effectScatter属性
  4. Hibernate 映射关系 ---One2One 主键关联
  5. STM32F103_study59_The punctual atoms(Input capture experimentInput to capture experimental theoreti)
  6. 解决win7共享文件夹无法访问
  7. 【SEO网络推广】会被百度K站的原因
  8. MySQL内存表的特性与使用介绍 -- 简明现代魔法
  9. PGM-Explainer
  10. 【硬核技术文】研发绩效,AI算法的完美舞台