Tempo数据挖掘平台是对数据的深度探索,发掘数据价值:图形化拖曳式的数据挖掘建模工具,开箱即用的内置机器学习算法,让业务人员快速进行数据模型构建与优化,完成数据深层次价值的探索与挖掘。更多详细介绍尽在网站内部,今天我们着重给大家介绍其中文本挖掘之信息抽取。

Tempo数据挖掘工具

1     信息抽取

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

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

2     算法原理

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

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

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

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

模板Trie树匹配示例

1 模板Trie树匹配示例

3       利用Tempo数据挖掘平台实现信息抽取

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

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

信息抽取流程

2 信息抽取流程

第一步,数据准备

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

id

短信文本

1

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

2

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

3

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

 

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

 

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

Tempo数据挖掘-信息抽取节点参数界面

3信息抽取节点参数界面

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

规则模板文件

<W:1-10><W:1-10><W:1-10>借款截止<F:date>逾期共计<F:float><D:rmb_>      机构_6,还款日期_8:date,金额_10:double

<W:1-10><W:1-25>还款<F:float><D:rmb_>      机构_2,金额_6:double

<W:1-10><W:1-25><W:1-10>借款<F:float>逾期      机构_6,金额_8:double

      槽位词典文件为:

槽位词典文件

 

<D:return_还款>

还款

还钱

<D:rmb_>

美元

欧元

<D:hasbeen_>

已在

已经

 
 
 

      可忽略词文件为:

可忽略词文件

 

 
 
 

 

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

Tempo数据挖掘-文本信息抽取流程

4文本信息抽取流程图

第三步:开始信息抽取

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

Tempo数据挖掘-文本信息抽取结果

5文本信息抽取结果表

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