一种半结构化文本数据的规则引擎系统及前置接入方法与流程

文档序号:17587109发布日期:2019-05-03 21:25阅读:388来源:国知局
一种半结构化文本数据的规则引擎系统及前置接入方法与流程

本发明涉及计算机科学软件信息技术领域,特别是涉及一种半结构化文本数据的规则引擎系统及前置接入方法。



背景技术:

规则引擎近年来被广泛应用于泛金融及反欺诈领域,帮助监控和发现目标客户群体中的异常、风险、商机等。在数据层面,支撑传统规则引擎的,大多为用户行为(如登录、注册、浏览、收藏、消费等)数据、企业财务数据等,这类数据大多有着结构化、可度量的特性。例如用户行为数据就离不开次数、频率、价格、时间等概念。然而在面对处理互联网上爬取的大量非结构化、半结构化数据时,传统的规则引擎面临难以量化文本信息的挑战。因为传统的规则引擎,其底层存储通常是结构化的数据表,指标或规则的配置则依赖于这些字段。然而,在非结构化或者半结构化数据领域中,数据存在多源、多类型、异构特质,由此给传统规则引擎带来的问题有以下2点:

1.不同来源的字段存在精度不同、字段类型不兼容的情况:比如企业注册资本字段,a数据源采用万元做单位、取小数点后4位;b数据源用元做单位,取小数点后2位;

2.基于json格式的数据有着较复杂的数据结构,使得与关系型数据库数据的字段联合使用时,存在格式一致性转换的难点。



技术实现要素:

针对上述现有技术的不足,本发明提供了一种半结构化文本数据的规则引擎系统及前置接入方法,对多来源数据接入后,进行多元易购。

为了解决上述技术问题,本发明采用了如下的技术方案:

一种半结构化文本数据的规则引擎系统,包括数据融合层、数据筛选层、数据标准化层以及指标运算层;

所述指标运算层包括指标配置模块和指标运算模块,所述数据融合层包括数据接入模块;所述指标配置模块用于定义指标所需要引用的相关字段对象,包括指标的条件及规则的设定;所述数据接入模块与外部数据库地址连接,用以认证外部数据库的host,port,database信息,所述数据接入模块根据指标配置模块设置的相关字段对象读取外部数据库的数据;

所述数据筛选层包括m个基于自选条件的数据筛选器,用于对数据融合层读取的数据进行筛选,通过设置n个条件的“与/或”逻辑来配置数据筛选器;其中,m、n均为不小于1的正整数;

所述数据标准化层包括数据标准化模块,用于将筛选后的数据的数据类型标准化为指标运算层所需要的类型;

所述指标运算层的指标运算模块用于规则引擎执行规则,将标准化后的数据根据指标配置模块设定的规则进行运算。

作为优化,所述数据接入模块采用与数据库直连的方式与外部数据库地址连接。

作为优化,所述外部数据库的类型包括关系型数据库、非关系型数据库,elasticsearch、数据仓库、本文文件。

作为优化,所述数据筛选器的条件包括筛选字段和字段值域区间。

作为优化,所述数据标准化模块为基于graphql的模块。

一种半结构化文本数据的规则引擎系统的前置接入方法,在所述数据融合层进行,包括以下步骤:

s1、定义逻辑块:在指标配置模块中定义逻辑块的对象类型,并用相关字段描述逻辑块的对象特征;

s2、配置指标所需的相关字段集合:根据不同的场景所需指标涉及的内容,将各个逻辑块中与涉及的内容有关的相关字段配置成相关字段集合;

s3、读取数据库信息:将数据接入模块与外部数据库地址连接,用以认证外部数据库的host,port,database信息;

s4、确认相关字段涉及的数据库并读取与相关字段匹配的数据:根据指标配置模块所配置的指标所需的相关字段集合与数据接入模块连接的外部数据库的相关字段进行匹配,确定相关字段涉及的数据库,读取数据库中与相关字段匹配的数据。

作为优化,还包括以下步骤:s5、确定最小相关字段集合:将涉及的数据库中的相关字段集合求并集,即可得到每个数据库需要抽取的最小相关字段集合。

作为优化,所述逻辑块可以包含其他已定义的逻辑块。

本发明的有益效果是:

本系统可以根据不同的场景在指标配置模块中设置不同的指标,并根据指标设置相关字段集合,读取不同数据库的信息,兼容精度、类型不同的字段。

附图说明

图1为本发明一种半结构化文本数据的规则引擎系统的系统结构图。

图2为本发明一种半结构化文本数据的规则引擎系统的前置接入方法的方法流程图。

图3为数据筛选层进行数据筛选的方法示意图。

具体实施方式

下面结合附图对本发明作进一步的详细说明。

一种半结构化文本数据的规则引擎系统,包括数据融合层、数据筛选层、数据标准化层以及指标运算层;指标运算层包括指标配置模块和指标运算模块,数据融合层包括数据接入模块;指标配置模块用于定义指标所需要引用的相关字段对象,包括指标的条件及规则的设定;数据接入模块与外部数据库地址连接,用以认证外部数据库的host,port,database信息,数据接入模块根据指标配置模块设置的相关字段对象读取数据库的数据。数据接入模块根据指标配置模块配置的指标的条件读取外部数据库的数据。其中,数据接入模块的配置是独立于指标配置模块之外的,在数据融合层内可以作为单独的模块被灵活调用。本实施例中,数据接入模块采用与外部数据库直连的方式与数据库地址连接。外部数据库的类型包括关系型数据库、非关系型数据库,elasticsearch、数据仓库、本文文件。

数据筛选层包括m个基于自选条件的数据筛选器,用于对数据融合层读取的数据进行筛选,通过设置n个条件的“与/或”逻辑来配置数据筛选器;其中,m、n均为不小于1的正整数。本实施例中,数据筛选器是通过筛选数据融合层读取的数据的字段和字段值域区间对初步数据进行精简的。例如,规则a只对数据融合层读取的数据的部分值域起作用,这时就需要一个数据筛选器来筛选符合值域需求的那部分记录,亦或需要一个数据筛选器逻辑组合来达成筛选目标。如图3所示,有三个条件,分别为f1<10、“失信”inf2以及f3<f4,通过设置(f1<10)and(“失信”inf2)or(f3<f4)来配置数据筛选器,数据融合层读取的数据通过配置的数据筛选器得到筛选后的数据。例如,数据融合层读取的数据有10个,其中,有8个数据的字段长度大于5,数据筛选器的条件是选择字段长度不大于5的数据,则,得到的筛选后的数据为字段不大于5的2个数据。

数据标准化层包括数据标准化模块,用于将筛选后的数据的数据类型标准化为指标运算层所需要的类型。本实施例中,数据标准化模块为基于graphql的模块。

graphql是一种标准化的语言,本实施例中,将筛选后的数据的数据类型通过graphql标准化工具将数据格式转化为json格式,由于json格式的数据有着较复杂的数据结构,使得与关系型数据库数据的字段联合使用时,存在格式一致性转换的难点,因此将所有数据通过graphql标准化工具解决了后续数据运算存在格式难转换的问题。graphql标准化工具是已经现有的技术,这里就不在赘述了。

graphql定义了以下几种类型的数据:

·标量类型,囊括了以下几种基础数据类型的规范化:

int:有符号32位整数

float:有符号双精度浮点值

string:utf-8字符序列

boolean:布尔值

id:唯一标识符

指标运算层的指标运算模块用于规则引擎执行规则,将标准化后的数据根据指标配置模块设定的规则进行运算。

规则引擎系统的前置数据具体接入方法包括以下步骤,在数据融合层进行:

s1、定义逻辑块:在指标配置模块中定义逻辑块的类型,并用相关字段描述逻辑块的特征,其中,逻辑块可以包含其他已经定义的逻辑块。例如,需要某企业的判决文书(judgedoc)进行判断,定义逻辑块:

其中,litigant描述了判决文书中涉案当事人的相关信息、涉案类别以及判决结果;lawsuit则描述了判决文书涉及的相关金额和判决金额信息,judgedoc则描述了包含了litigant、lawsuit及判决文书的时间信息。符号”!”表示该字段必须非空,符号”[]”则表示返回的结果为列表类型。judgedoc逻辑块包含了litigant逻辑块与lawsuit逻辑块。

s2、配置指标所需的相关字段集合:根据不同的场景所需指标涉及的内容,将各个逻辑块中与涉及的内容有关的相关字段配置成相关字段集合。

例如,配置【指标a】:“判决文书中,1年内主体累计涉及的金额”时,判断可能会用到的字段有:

·litigant.name,当事人名称

·lawsuit.amount,涉案金额

·trialdate,判决时间

则定义该指标所需相关字段集合为:

s3、读取数据库信息:将数据接入模块与外部数据库地址连接,用以认证外部数据库的host,port,database信息。本实施例中,数据接入模块采用与外部数据库直连的方式与数据库地址连接。

s4、确认相关字段涉及的数据库并读取与相关字段匹配的数据:根据指标配置模块所配置的指标所需的相关字段集合与数据接入模块连接的外部数据库的相关字段进行匹配,确定相关字段涉及的数据库,读取数据库中与相关字段匹配的数据。

此时数据接入模块读取的数据有多个。

例如【指标a】有关的数据中,“trialdate”的数据可能会有:“2010/04/30”、“2012-11-30t00:00:00”、“2016.09.30”、“2018-10-31t00:00:00”。

在数据筛选层设置数据筛选器,例如数据筛选器的条件为trialdate>2015.12.31,则经过筛选的“trialdate”为“2016.09.30”、“2018-10-31t00:00:00”。

在数据标准化层对“trialdate”进行标准化,“2016.09.30”转化为“2016-09-30t00:00:00”。最后在指标运算层的指标运算模块中进行运算,最后得到与【指标a】有关的数据如下:

本实施例中,还包括以下步骤:s5、确定最小相关字段集合:将涉及的数据库中的相关字段集合求并集,即可得到每个数据库需要抽取的最小相关字段集合。例如有s1,s2,s3这3个数据源,f11、f12、f13为相关字段集合,f11、f12属于s1,f13属于s3,则,f11、f12、f13组成的并集就是最小相关字段集合。最小相关字段可以为下次引用同样的指标时做准备,减少搜寻外部数据库的时间。

最后应说明的是:本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等统计数的范围之内,则本发明也意图包含这些改动和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1