数据分析

信息抽取


 

1、信息抽取

信息抽取的定义为:从自然语言文本中抽取指定类型的实体、关系、事件等事实信息,并形成结构化数据输出的文本处理技术。

信息抽取有许多不同的用途,一种典型的应用是使用信息抽取面向特定任务的结构化信息,互联网的快速发展产生了海量的信息,由于文本数据的多样性和异构性,对这些的信息进行检索和处理受到很大的限制,而信息抽取则致力于将这些信息转化成结构化的数据,满足搜索引擎和数据挖掘等相关应用。另一种典型的应用是特定目标信息的发现和识别(如发现与“人工智能”相关的新闻)。在现在的Web中,相关的信息往往被无关的信息的淹没,而信息抽取技术可以发现并整理蕴含在海量信息中的特定目标信息,为正确决策提供大量的相关情报,大大降低需要的人工成本。

2、算法原理

语言的表述通常具有规律性,对于相似意图的描述一般会有固定的表达模式,对这些固定表达模式进行泛化即可抽象出语言表述对应的模板。如我们常说“我 吃 苹果”和“我 吃 梨”,那么通过泛化表述语句中的不同部分,就可以抽象出相应的语言表述模板“我 吃 [FOOD]”,其中[FOOD]称为泛化槽位,即在槽位中填上其他的词(如“西瓜”),就可以生成新的语句“我 吃 西瓜”。很显然,槽位的填充是要满足一定约束的,如[FOOD]槽位应该填充食物相关的词才是符合语义的,这些约束就是所谓的规则。

规则模板引擎我们期望实现的是简单匹配所以我们对于文法的设计尽可能的简化,定义模板的元字符为四类:泛化槽位、固定词、通配符、注册函数。例如我们构造了一个识别建筑物地址的模板:

[D:ner_street][F:num]号[W:1-6][D:building]

很显然,构造该模板如图1是基于如下的先验知识进行的:我们经常有长安路26号宏远大厦这样的表述,所以长安路可以被泛化为槽位,以便其他街道的名称也能适用,同理大厦被归集到[D:building]的槽位词典中;至于多少号的数字可以通过数字识别的注册函数实现;而大厦的名称比较多样化,索性就用通配符匹配大厦前面的1-6个字节实现。

 

图1 模板Trie树匹配示例

3、利用实现信息抽取

文本挖掘算法模块提供了丰富的文本挖掘功能节点,能够覆盖整个文本挖掘的生命周期,它在兼顾专业性的同时保持非常友好的易用性。友好的图形化操作界面,使用鼠标即可完成数据挖掘全过程;便捷的参数设置窗口,使模型的构建更加灵活;自定义词典、配置文件均为明文,可满足不同业务场景的个性化需求。  

金融机构向客户发送的短信是文本形式的,需要从这些文本短信中分析出用户是否出现逾期记录,逾期行为的具体信息,如逾期时间、逾期金额、借款机构等。以金融信贷短信的信息抽取为例子,我们讲如何利用信息抽取节点从金融信贷短信中抽取出逾期金额、时间、借款机构等结构化信息点。抽取过程可分为下面三部分:

图2 信息抽取流程

 

第一步,数据准备

在使用信息抽取算法时,需要将短信文本整理为可读取的文件格式,关系数据库表或者txt、 csv等文本文件。我们整理的数据格式如下表:

id

短信文本

1

【华严法务】尊敬的客户,您在闪电平台借款截止2016年07月28日逾期共计1000元。若您还款困难,请立即联系客服为您协调解决。回复TD退订。

2

【信而富】尊敬的客户,您的借款已逾期,需还款520.50元。请前往微信公众号“信而富现金贷”还款,避免产生更多延迟还款服务费及不良的信用影响。点滴信用,成就未来!

3

【靠谱鸟】尊敬的客户,您在更美贷借款1000逾期未还,我司将上报全国诚信系统并起诉至法院,请转告尽快还款电话4008986985,回复TD退订

 

第二步:构建信息抽取模型

 

这一步是最重要的一步,打开信息抽取节点,配置模版文件、槽位文件、可略词文件。我们的目的是抽取,日期、逾期金额、贷款机构。

图3信息抽取节点参数界面

 

分别点击下载模版文件、槽位文件、可略词文件。下载完成后本地会出现三个txt文件,以第一条短信为例,我们看一下如何配置这三个文件,第一条的文本短信内容为:“【华严法务】尊敬的客户,您在闪电平台借款截止2016年07月28日逾期共计1000元。若您还款困难,请立即联系客服为您协调解决。回复TD退订。”,目的是抽取日期,逾期金额,贷款机构。因为同一金融机构发送的短信信息格式相对固定,通过模板基于元字符匹配并提取文本中的可变字符,以上短信中红字部分均为可变字符,这些可变字符正好对应我们想要抽取的贷款机构,逾期金额和日期。首先我们抽取贷款机构,短信中贷款机构出现的上下文为“在XXXX借款”,因为我们无法判定用户在什么平台上借款,所以匹配“闪电平台”用任意字符匹配,我们就可以使用匹配出闪电平台,接着通过内置的注册函数匹配日期。最后我们匹配逾期金额,逾期金额出现的上下文为“逾期共计1000元”我们的目的是把“1000”抽取出来,逾期金额一般为数字,因此用[F:num]匹配数字,一般只有在“元”,或者“块”,“美元”等词前面出现的数字才为金额。所以在[F:num]后增加槽位。应此最终的匹配模板为:“【】在借款截止逾期共计 机构_6,还款日期_8:date,金额_10:double”。模板信息主要包含两部分内容,其中“【】在借款截止逾期共计”为规则模板,“机构_6,还款日期_8:date,金额_10:double”为抽取的结构化信息,两个字符串以Tab键间隔。“机构_6”表示抽取的信息字段名为“机构”值在第6个槽位,槽位索引从1开始,一个元字符代表一个槽位。“还款日期_8”表示抽取的信息字段名为“还款日期”值在第8个槽位,“date”表示输出类型为日期型;“金额_10”表示抽取的信息字段名“金额”值在第10个槽位,“double”表示输出的金额格式为double类型。以上短信文件信息抽取最终的规则模板文件为:

 

规则模板文件

【】在借款截止逾期共计      机构_6,还款日期_8:date,金额_10:double

【】还款      机构_2,金额_6:double

【】在借款逾期      机构_6,金额_8:double

 

槽位词典文件为:

槽位词典文件


 

还款

还钱

 

美元

欧元

 

已在

已经




 

可忽略词文件为:

可忽略词文件





 

将这三个文件分别上传到对应为目录下。算法在校验规则模版文件、槽位文件、可略词文件合法完成后会根据以上文件构建规则模版树和槽位树,把构造的对象分发到分布式节点上供各节点对文本分布式信息抽取。

 

图4文本信息抽取流程图

第三步:开始信息抽取

信息抽取是基于Spark集群中的RDD数据实现文本信息抽取,基于RDD分布式遍历每一条文本,通过分发到各节点的信息抽取模型实现对文本信息抽取的原子操作。抽取结果如下图

图5文本信息抽取结果表

 

以上是数据小编对基于数据挖掘工具的文本挖掘中信息抽取的详细介绍,想要了解更多数据挖掘平台功能的小伙伴,欢迎您来电咨询或试用我们的产品,我们将竭诚为您服务!


010-57237675

北京市丰台区总部基地十六区18号楼丰恒大厦13层

北京市海淀区学院路天工大厦

深圳市南山区粤海街道TCL大厦A-902







官方微信

关于我们

数据服务

数据分析

新闻动态

技术支持: 企强网络 | 管理登录