限定域文本语料的短语挖掘(Phrase Mining)

一只小狐狸带你解锁NLP/ML/DL秘籍

正文来源:丁香园大数据

前言

短语挖掘(Phrase Mining)的目的在于从大量的文本语料中提取出高质量的短语,是NLP领域中基础任务之一。短语挖掘主要解决专业领域(如医疗、科技等)的专业词典不足的问题,减少人工整理成本。

 

大家都知道,jieba分词是中文分词领域比较好的工具[1,2],其在分词时使用的方法是根据已统计的词库,利用前缀词典对句子切分,根据所有切分的结果构建有向无环图的方式寻找最优的切分路径。对于存在未登录词其使用的方式是根据序列标注的结果,使用Viterbi算法计算最优的状态序列。使用jieba分词可以解决一些普适化的需求,但是对于某些特定的专业领域,要达到较好的分词要求,需要整理一批质量较高的专业领域词典。但是呢,我们可用到的数据往往是大量无标注的文本,如果人工去整理成本会很高,所以我们可以通过什么方法可以自动提取一些高质量的短语呢(●'◡'●)?

 

医疗领域为例,丁香园大数据团队是一个处理医疗大数据的团队,每天要处理大量的医疗文本数据,例如论坛文本,医学论文,诊断报告等(里面会不会也有小夕的数据呢????)。这些专业医疗领域的数据和平时日常的数据有很大的不同,会有大量我们听起来怕怕的专业术语⊙﹏⊙∥,抽取的高质量的短语无疑对优化检索内容,taxonomy construction构建上下位层次结构、主题模型等等都非常的重要。

无监督抽取方法

根据丁香园log数据汇总发现,很多疾病词和症状词来源于一些特定词的排列组合,比方说牛奶过敏,急性鼻炎,是一些NN和形容词/动词的组合,其实就是浅层句法分析的结果,例如:"新生儿急性鼻炎应该如何治疗",coreNLP给出的结果如下图所示:

             

其中新生儿急性鼻炎是一个名词短语(NP),是由NN + JJ + NN组成的,传统的方式是根据POS规则模版[3]对phrase进行提取。但是在实际操作过程中又会存在一些问题,比方说"如何治疗花粉过敏"这句话中的Phrase应该是花粉过敏,但是治疗和花粉合并成了动词短语。但是如果要穷尽所有的POS pattern,并不是一件容易的事情,而且pattern之间可能会存在一些冲突,于是pattern之间排序又成了另一个坑┑( ̄Д  ̄)┍。

2012年Matrix67提出了《互联网时代的社会语言学:基于SNS的文本数据挖掘》一种基于统计学角度的新词挖掘算法,通过计算凝固度和左右临字信息熵抽取新词,效果灰常不错o(* ̄▽ ̄*)ブ。

《西游记》抽取结果如下所示:

行者,八戒,师傅,三藏,大圣,唐僧,沙僧,和尚,菩萨,怎么,长老,老孙,两个,甚么,国王,徒弟...

《资本论》抽取结果:

资本,生产,价值,劳动,商品,货币,部分,工人,形式,价格,利润,我们,作为,剩余价值,过程...

可以用在丁香论坛的医患对话日志上却差强人意,这个方法抽取大量用户俗语

可以,如果,治疗,需要,医生,情况,建议,检查,什么,这个,问题,现在,症状,目前,或者,医院...

于是考虑去除停用词后再试一试,发现效果确实有所改善,算法找到一些靠谱的词汇比方说肝硬化,肝癌,拉肚子,大便不成型,痔疮出血,红色小疙瘩...。可是呢,这样的操作对出现频率低的短语不是很友好,很有可能被阈值过滤掉,人工给定阈值,没有一个很好的参照标准,数据中可能会存在很多的噪音,无法较好的筛选出有用的短语。

2014年韩家炜团队的学生Ahmed El-Kishky提出一种基于频繁模式挖掘和统计的方法TopMine,无监督的对语料进行Phrase Mining。这项工作的主要目的是对文本进行主题挖掘。在这篇论文中将主题挖掘分为两个步骤,第一步根据Phrase Mining抽取的结果对文本进行分割,第二部根据分割后的文本约束Topic模型。在Phrase Mining中,根据上下文信息衡量合并后的score,判断是否对token进行合并,伪代码如下所示:

             

通过给定阈值的方式进行迭代,其中score作为判断合并条件计算公式如下所示:

             

其举了一个很有意思的例子,比方说:Markov Blanket Feature Selection for Support Vector Machines这句话来说如果只根据Vector可能只会把文章划分为数学或者物理Topic中,但是显然Support Vector Machines是一个整体,根据支撑向量机可以将其划分为计算机的主题下:

             

Kavita Ganesan2018年提出《How to incorporate phrases into Word2Vec – a text mining approach》和2019年苏神给出了一个无监督挖掘方案《分享一次专业领域词汇的监督挖掘》有相似之处,只不过苏神再基础上加入一些平行语料,根据停用词确定phrase边界,用PMI等设定阈值方式抽取新词,进行分词,并构建词向量模型。选取一些种子词汇作为初始词,根据抽取新词的词向量计算种子词之间的相似度,设定阈值的方式将相似度高的词加入到候选集中,对于无监督短语挖掘是一种比较新颖的思路,因为词向量包含丰富的上下文语义信息,通过上下文信息计算相似度,将新词进行聚类,这种方式可以较好的筛选出一些高质量的phrase。但是在第一步分词时,根据阈值所发现的新词边界不好控制,会存在大量噪音,比方说,在《西游记》中会抽取出,行者笑道,那妖精,的和尚等词汇,所以在最后一步需要加入了一些规则进行过滤。

弱/远程监督抽取方法

韩家炜团队关于Phrase Mining团队的三部曲,刚才已经简单的介绍了其中之一TopMine,其主要目的是对语料库中的文本Topic进行挖掘,其中利用Phrase Mining的方法对文本进行分割。其另外两部SegPhrase和AutoPhrase分别使用弱监督和远程监督的方式对phrase进行抽取并进行质量监测。

SegPhrase

韩教授的学生刘佳硉认为TopMine的方法是完全无监督的,那么是不是选用一些少量的带标签的数据,可能会在很大程度上提高抽取结果。其认为高质量的短语是可以优化分词结果的,而高质量的分词结果也可以优化phrase抽取的结果,将分词和高质量短语相结合。

             

原始计算频率时,并没有考虑真正分词的结果,只是统计词出现的频率,例如support vector machine出现了在预料中出现了100次,但是根据分词结果进行修正(rectified)后,其只出现了80次,同样的vector machine修正后只出现了6次。那么vector machine不算是一个phrase。

例如:A standard feature vector machine learning setup is used to describe在这句话中,存在vector machine但是根据上下文语义进行分词时,其分词结果应该是feature vector和machine learning

于是接下来的工作中,根据频繁短语监测生成短语候选集,再根据人工筛选出的高质量的短语使用RandomForest构建分类器模型,实验中发现选择200-300个数据就可以满足分类结果。其中特征选取如下表所示:

这篇论文在当时的效果不错,但是存在一个缺点,文中说300个标记词汇就够了,那么这300个标记数据应该如何选取?需要人工的去选择一些高质量的短语去构造分类器,如果在一些特定的领域则需要一些专业领域人士对领域内的数据进行筛选。所以韩教授的学生商静波提出了一种远监督方法AutoPhrase自动的对短语进行挖掘。

AutoPhrase

2017年韩教授的学生商静波提出一种远程监督的方法进行Phrase Mining,AutoPhrase使用wiki或Freebase等数据构建高质量词典,代替SegPhrase人工打标签的过程。其在技术上以下两个创新点。

Robust Positive-Only Distant Training:使用wiki和freebase作为显眼数据,根据知识库中的相关数据构建Positive Phrases,根据领域内的文本生成Negative Phrases,构建分类器后根据预测的结果减少负标签带来的噪音问题。

POS-Guided Phrasal Segmentation:使用POS词性标注的结果,引导短语分词,利用POS的浅层句法分析的结果优化Phrase boundaries。

             

如上图所示,根据frequent n-gram抽取phrase Candidates根据远程监督的方式,根据wikipedia进行过滤筛选出Positive Pool和Noisy Negative Pool,对于Positive Pool来说,其信源比较准确,于是Positive Pool的抽取结果肯定是置信度极高的,而Negative Pool是存在噪音的,因为可能有一些Phrase不存在WikiPedia中,因此文中提到用一种集成学习的方式降低噪音。

             

构建多组基本的分类器,分别从Positive Pool和Negative Pool中随机抽取出K个candidates全部,而在负样本中存在perturbed training set见图中的δ,为了尽可能低的降低训练误差的基础分类器,构建一颗未进行剪枝的决策树的方式,当在perturbed training set中没有两个positive和negative phrase共享相同的特征值时,我们认为此时的决策树可以达到100%的训练准确率。最后通过ranking的方式输出排序的结果。这种方法的结果Segphrase相比有着显著的提升。

 

开始搞事情

看了很多的方法,磨拳擦掌开始搞一个属于自己的Phrase mining了,借鉴之前的方法,发现很多都是从统计学角度构建一批先验知识,比方说计算语料中的PMI和一些KL散度等等进行抽取。但是如果获得的数据是一些短文本数据,又将如何提取这些特征呢?我们直接用AutoPhrase的方法套用?仿佛又不是很合适,首先,无法保证分词的效果;其次,stanford POS的浅层句法分析的结果并不适用于所有领域,比如花粉过敏。

根据丁香园本身的业务需求和之前提到的一些方法对特征和分类器模型进行了修改,并没有使用stanford提供的浅层句法分析的结果,而是根据知识库目前现有的一些医疗数据构建了n-gram模型作为特征,再借鉴远监督的方式根据知识库中已有的词库数据,进行词性标注,统计词性标注的结果作为特征,再根据bert构建的字向量作为分割的特征。

同样类似于AutoPhrase的方式构建数据集,Positive Pool中的数据来源于目前知识库已有的医疗数据,Negative Pool中的数据来自N-gram随机选取的非库中的数据,再根据一些规则和N-gram的概率等阈值信息简单的过滤了一些负样本中的脏数据。使用gbdt(Gradient Boosting Decision Tree)构建分类器模型。目前抽取效果如下所示:

             

在抽取结果中可以看到,一句话中可以抽取多个phrase,对于分词来讲,不同方式组合phrase会生成不同的分词格式,根据score阈值进行过滤,根据phrase抽取结果,查询所有的抽取组合,根据组合结果不同,通过phrase长度和个数进行约束,公式如下所示:

下图为最后输出排序的结果:

总结

这篇文章调研了关于Phrase Mining构建的方法来解决在特定专业领域中存在未登录词和个性化分词问题。 Phrase Mining只是将非结构化文本转化为半结构化文本的第一步,之后还需要在其基础上进行实体链接和知识图谱的构建。Phrase Mining可以根据数据的不断扩充对模型不断的优化,在其优化的同时,也对后续任务有着决定性的帮助。

  • 跨平台NLP/ML文章索引

  • 万万没想到,我的炼丹炉坏了

  • 词搜索引擎--项词典与倒排索引优化

  • 如何与GPU服务器优雅交互

不要忘了关注小夕~星标⭐小夕哦~

参考文献

[1] 结巴分词2--基于前缀词典及动态规划实现分词

[2] 结巴分词3--基于汉字成词能力的HMM模型识别未登录词

[3] http://www.nltk.org/howto/chunk.html

[4] Scalable Topical Phrase Mining from Text Corpora

[5] Mining Quality Phrases from Massive Text Corpora

[6] Automated Phrase Mining from Massive Text Corpora

[7] TruePIE: Discovering Reliable Patterns in Pattern-Based Information Extraction

[8] 中文基本复合名词短语语义关系体系及知识库构建

[9] How to incorporate phrases into Word2Vec – a text mining approach

你的每一个“在看”我都当成了喜欢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480901.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文浅尝 | Hike: A Hybrid Human-Machine Method for Entity Alignment

Zhuang Y,Li G, Zhong Z, et al. Hike: A Hybrid Human-Machine Method for Entity Alignmentin Large-Scale Knowledge Bases[C]// ACM, 2017:1917-1926. ( CIKM 2017 )论文链接:http://dbgroup.cs.tsinghua.edu.cn/ligl/crowdalign.pdfMotivation随着语义网络的迅…

TCC分布式实现原理及分布式应用如何保证高可用

一、业务场景介绍 咱们先来看看业务场景,假设你现在有一个电商系统,里面有一个支付订单的场景。 那对一个订单支付之后,我们需要做下面的步骤: 更改订单的状态为“已支付”扣减商品库存给会员增加积分创建销售出库单通知仓库发货…

IJCAI 2018:中科院计算所:增强对话生成一致性的序列到序列模型

IJCAI 2018:中科院计算所:增强对话生成一致性的序列到序列模型文章来源:企鹅号 - 读芯术你和“懂AI”之间,只差了一篇论文号外!又一拨顶会论文干货来袭!2018年6月9-10日,代表学术界和工业界的顶…

一时学习一时爽,持续学习持续爽

一只小狐狸带你解锁NLP/ML/DL秘籍作者:小鹿鹿鹿 net~net~你围棋下的这么好,斗地主应该也不错吧不敢当不敢当但是人家柯洁才得了欢乐斗地主全国第一呢那让老夫也学习学习吧~巴拉巴拉小魔仙Training。。。net net stop!你怎么斗地主还没学会&am…

基于“大中台+小前台”思想的电商系统总体架构设计

一、架构总原则 1. 大中台小前台的架构思路 2. 业务中台采用领域驱动设计(DDD),在其上构建业务能力SAAS,持续不断进行迭代演进。 3. 平台化定位,进行了业务隔离设计,方便一套系统支撑不同玩法的业务类型和便…

论文写作葵花宝典

一只小狐狸带你解锁NLP/DL/ML秘籍作者:小鹿鹿鹿论文写作套路老板说:写论文是有套路的老板说:introduction写好了,论文就成功了一半老板说:你的motivation是什么,contribution又是啥?小夕说&…

李涓子 | 机器智能加速器:大数据环境下知识工程的机遇和挑战

本文转载自公众号:数据派THU。 导读:知识图谱已经成为推动人工智能发展的核心驱动力之一。本文选自清华大学计算机科学与技术系教授、清华-青岛数据科学研究院科技大数据研究中心主任李涓子老师于201…

【HTML/CSS】CSS盒模型及其理解

1 盒模型 概念:CSS盒模型本质是一个盒子,包括:外边距margin、边框border、内边距padding、内容content 分类:标准盒模型(W3C)和怪异盒模型(IE) 标准盒模型:width的值就是…

Netty异步非阻塞事件驱动及原理详解

本文基于 Netty 4.1 展开介绍相关理论模型、使用场景、基本组件、整体架构,知其然且知其所以然,希望给大家在实际开发实践、学习开源项目方面提供参考。 Netty 是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服…

文本预处理跑得慢?抱抱脸团队又放福利,1GB文本语料分词只需20s!

一只小狐狸带你解锁NLP/DL/ML秘籍正文素材来源:量子位缘起BERTBERT带来的并不是只有一大波paper和嗷嗷上线,还带火了一个NLP团队——Huggingface(中文译作抱抱脸)。抱抱脸团队是一个创业团队。他们的Transformers是github上最火的…

基于深度学习的FAQ问答系统

| 导语 问答系统是信息检索的一种高级形式,能够更加准确地理解用户用自然语言提出的问题,并通过检索语料库、知识图谱或问答知识库返回简洁、准确的匹配答案。相较于搜索引擎,问答系统能更好地理解用户提问的真实意图, 进一步能更有效地满足用…

基于SpringBoot2.x、SpringCloud和SpringCloudAlibaba的企业级微服务敏捷开发系统架构

一、项目总体架构图 二、功能介绍 2.1、统一认证功能 支持oauth2的四种模式登录 支持用户名、密码加图形验证码登录 支持手机号加密码登录 支持openId登录 支持第三方系统单点登录 2.2、分布式系统基础支撑 服务注册发现、路由与负载均衡 服务降级与熔断 服务限流(url/方法级别…

征文通知 | 2018年全国知识图谱与语义计算大会

2018年全国知识图谱与语义计算大会China Conference on Knowledge Graph and Semantic Computing (CCKS 2018)2018年8月15日-18日,天津征稿截止: 2018年5月18日全国知识图谱与语义计算大会(CCKS: China Conference on Knowledge Graph and Semantic Comp…

如何让聊天机器人懂情感?这是一篇来自清华的论文

原载:Paperweekly作者:黄民烈,清华大学老师关注自然语言处理、人机对话情感分析等方向aihuangtsinghua.edu.cn当你悲伤的时候,机器人可以安慰你;当你高兴的时候,机器人为你高兴。悲你所悲,喜你所…

戴着口罩也要开心过年吖!

一只小狐狸带你解锁NLP/ML/DL秘籍素材来源于网络新的一年????就要到来了作为超(bu)高(shan)智(yan)商(ci)的程序员如何向亲朋好友证明我们是人群中最靓的仔呢小夕为你准备了专属程序员的新春祝福~~普天同庆for (;;) { print("鼠年快乐"); }(满屏的新年…

【HTML/CSS】margin塌陷和合并问题

1 margin塌陷问题 1.1 示例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>margin塌陷</title…

集群、分布式、微服务的概念及异同

一、什么是集群&#xff1f; 集群是指将多台服务器集中在一起&#xff0c;每台服务器都实现相同的业务&#xff0c;做相同的事&#xff1b;但是每台服务器并不是缺一不可&#xff0c;存在的主要作用是缓解并发能力和单点故障转移问题。 集群主要具有以下特征&#xff1a;&…

论文浅尝 | Complex Embeddings for Simple Link Prediction

The ́o Trouillon, Johannes Welb, Sebastian Riedel, ÉricGaussier, Guillaume Bouchard . Complex Embeddings for Simple Link Prediction. In Proceedings of the 33ndInternational Conference on Machine Learning, pages 2071– 2080 (ICML2016)论文链接&#xff1a;…

详解医学顶刊《柳叶刀》最新发表新型冠状病毒研究论文

我是夕小瑶&#xff0c;一只热爱科研的小狐狸作者&#xff1a;夕小瑶&#xff0c;小鹿鹿鹿&#xff0c;QvQ前言新型冠状病毒&#xff08;2019-nCoV&#xff09;的突发恰逢春节&#xff0c;千家万户都对疫情十分关注。令人心痛的是&#xff0c;病毒带来的不止有病痛&#xff0c;…

AI学习笔记--人机对话的四种形态

AI学习笔记--人机对话的四种形态 ><div class"show-content-free"><p>最近在筹备转行 AI PM 由于之前的产品线也有做过类似 AI 的智能客服产品&#xff0c;所以打算先从人机对话这个角度入手。</p><p>以下文章结合了一些 case&#xff0c…