首页> 中国专利> 基于Antlr4的大数据特征提取匹配方法

基于Antlr4的大数据特征提取匹配方法

摘要

本发明提供了一种基于Antlr4的大数据特征提取匹配方法。首先使用Flink Stream API从实时Kafka流中读取多源异构的业务数据,进行预处理;然后,构造一个ANTLRInputStream流,分别调用使用Antlr4工具转换后的词法分析器LogicLexer、语法分析器LogicParser进行解析,生成语法树,再以访问者模式去遍历生成的语法树并返回相应的值,完成对输入数据的特征提取匹配。本发明基于大数据平台,使用Antlr4语法分析器完成对海量数据高效且准确的特征提取匹配,能够满足大数据对数据处理的要求。

著录项

  • 公开/公告号CN115965008A

    专利类型发明专利

  • 公开/公告日2023-04-14

    原文格式PDF

  • 申请/专利权人 电信科学技术第十研究所有限公司;

    申请/专利号CN202211473564.8

  • 发明设计人 姬新苗;尹述峰;高翔;张立泽清;

    申请日2022-11-22

  • 分类号G06F40/253;G06F40/205;G06F40/151;G06F16/901;G06F16/903;G06F16/906;

  • 代理机构西安凯多思知识产权代理事务所(普通合伙);

  • 代理人范倩

  • 地址 710061 陕西省西安市雁塔区雁塔西路6号

  • 入库时间 2023-06-19 19:28:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-05-02

    实质审查的生效 IPC(主分类):G06F40/253 专利申请号:2022114735648 申请日:20221122

    实质审查的生效

说明书

技术领域

本发明属大数据处理技术领域,具体涉及一种基于Antlr4的大数据特征提取匹配方法。

背景技术

大数据背景下,面对的数据源种类繁多、格式各异、数量巨大,怎么高效的从海量数据中挖掘出数据的价值,是大数据处理领域的一个重要研究方向。基于Antlr4语法分析器进行数据特征匹配是一个很常用的方法,但是要将语法分析器和大数据结合起来使用,并且满足数据处理的实时性、高效性,且单节点一定时间内要处理更多的数据,这些问题都会使得处理变得异常复杂。

虽然Antlr4几乎能够处理任何语法,但是在面对实际业务场景时仍然存在需要改进的地方。在实际业务场景中,由于业务场景繁多且数据源种类各种各异,数据量巨大,业务流程复杂,手工编写特征匹配配置文件的操作方式非常繁琐,效率低下且人力成本超标,同时数据处理的延迟性很高,导致数据的最终利用价值很低。

发明内容

为了克服现有技术的不足,本发明提供一种基于Antlr4的大数据特征提取匹配方法。首先使用Flink Stream API从实时Kafka流中读取多源异构的业务数据,进行预处理;然后,构造一个ANTLRInputStream流,分别调用使用Antlr4工具转换后的词法分析器LogicLexer、语法分析器LogicParser进行解析,生成语法树,再以访问者模式去遍历生成的语法树并返回值,完成对输入数据的特征提取匹配。本发明结合计算处理引擎,使用Antlr4语法分析器完成对海量数据高效且准确的特征提取匹配,能够满足大数据对数据处理的要求。

一种基于Antlr4的大数据特征提取匹配方法,其特征在于步骤如下:

步骤1:使用Flink Stream API从实时Kafka流中读取多源异构的业务数据,对该数据的每一条记录进行预处理,保证同一类型的业务数据字段格式和命名编码统一,并为不同的业务数据赋予不同的业务编码;

所述的预处理具体包括:将日期统一成yyyyMMddHHmmss格式,将IP地址统一成以点分十进制的格式,去掉MAC地址冒号并大写,性别编码统一成1代表男2代表女,将身份证号码统一至18位,将经纬度坐标系统一成WGS84坐标系,将经纬度统一至小数点后6位,将geohash统一为12位,将国内手机号统一为11位,国际号码统一加前缀00,将IMEI统一为15位,去掉URL头部,用户名统一用半角表示;

步骤2:对步骤1处理过的每一条数据的每一个字段,构造一个ANTLRInputStream流,调用词法分析器LogicLexer对构造的流进行分析,得到若干记号流TokenStream,调用语法分析器LogicParser对记号流进行解析,生成语法树,然后以访问者模式去遍历生成的语法树,返回相应的值,完成对输入数据的特征提取匹配;

所述的词法分析器LogicLexer是指使用Antlr4工具将语法文件Logic.g4中的词法操作规则转换后的程序;

所述的语法分析器LogicParser是指使用Antlr4工具将语法文件Logic.g4中的语法操作规则转换后的程序;

所述的语法文件Logic.g4中的词法操作规则包括value操作规则和标识符操作规则,其中,标识符操作包括识别词法定义中的标识符信息、匹配并丢掉空白字符、匹配并丢掉注释功能;

value操作包括:构建一个ValueString对象,将string对象和stringValue对象互相转换,将string对象转化为short、int、long、double、boolean类型,字符串对象进行拼接,将string对象转化为ISO-8859-1编码、unicode编码,将string对象由unicode编码转化为gbk编码,对string对象进行比较;构建一个ValueBool对象,将布尔对象转化为shortValue、intValue、longValue、doubleValue、booleanValue、stringValue类型,bool对象进行比较,bool对象进行逻辑与和逻辑或比较运算,bool对象取非,bool值对象成字节数组;构建一个ValueFloat对象,float对象进行加减乘除运算,float对象转化为布尔类型;构建一个ValueInt对象,int对象进行加减乘除运算,int对象之间进行逻辑与和逻辑或比较运算,对int对象取非,将int对象转化为布尔类型,将int对象转化成字节数组;构建一个ValueLong对象,long对象进行加减乘除运算,long对象进行逻辑与和逻辑或比较运算,long对象取非,long对象转化为布尔类型,long对象转化成字节数组;构建一个ValueNull对象,判断输入对象是否是null,将null对象转化为布尔类型,将null对象转化为空;

所述的语法文件Logic.g4中的语法操作规则包括Expr操作规则和fun操作规则,其中,fun操作包括:判断表达式是否为空;取格式为yyyyMMddhhmmss的表达式中的日期;表达式复制;将表达式转化成拼音;从身份证号表达式中提取生日和性别;选择满足条件的表达式;对表达式进行日期格式转化;分割表达式;替换表达式中的字符串;截取表达式中的字符串;表达式URL解码;删除表达式头部的字符串;表达式中的经纬度转化成WGS84坐标系的经纬度;拼接表达式;删除表达式中的0;截取表达式中的字符串;计算表达式经度和表达式纬度的geohash;

Expr操作包括:表达式模式匹配;判断表达式是否为数字;判断表达式是否存在于其他表达式中;判断表达式是否以其他表达式结尾;判断表达式是否包含其他表达式;两个表达式进行大小判断;表达式取非;两个表达式之间逻辑与运算;两个表达式之间逻辑或运算;定义表达式的匹配格式;定义字段编码表达式匹配格式;定义配配置文件中需要进行特征匹配的匹配格式;定义配配置文件中需要进行条件判断的匹配格式;value操作;fun操作。

本发明的有益效果是:由于利用了实时Kafka流多源异构数据,能够实现不同来源数据的处理和提取,在预处理环节对数据进行了归一化处理,且对数据进行了分类并编码,使数据匹配从针对某一个数据变成针对某一类数据,减少繁琐的人工介入和重复性劳动;由于使用了Antlr4进行适配提取,充分利用了Antlr4支持左递归的特性,能够在运行时以动态方式对语法执行分析,简化匹配过程中需要的语法规则;由于将Antlr4和Kafka、Flink等大数据实时计算处理引擎结合起来,提高了数据的实时性,使数据能快速且正确的被处理,可以快速广泛的应用于各种业务场景中。

附图说明

图1是本发明基于Antlr4的大数据特征提取匹配方法流程图。

具体实施方式

下面结合附图和实施例对本发明进一步说明,本发明包括但不仅限于下述实施例。

如图1所示,本发明提供了一种基于Antlr4的大数据特征提取匹配方法,其具体实现过程如下:

步骤1:使用Flink Stream API从实时Kafka流中读取多源异构的业务数据,对该数据的每一条记录进行预处理,保证同一类型的业务数据字段格式和命名编码统一,并为不同的业务数据赋予不同的业务编码;

所述的预处理具体包括:将日期统一成yyyyMMddHHmmss格式,将IP地址统一成以点分十进制的格式,去掉MAC地址冒号并大写,性别编码统一成1代表男2代表女,将身份证号码统一至18位,将经纬度坐标系统一成WGS84坐标系,将经纬度统一至小数点后6位,将geohash统一为12位,将国内手机号统一为11位,国际号码统一加前缀00,将IMEI统一为15位,去掉URL头部,用户名统一用半角表示;

步骤2:对步骤1处理过的每一条数据的每一个字段,构造一个ANTLRInputStream流,调用词法分析器LogicLexer对构造的流进行分析,得到若干记号流TokenStream,调用语法分析器LogicParser对记号流进行解析,生成语法树,然后以访问者模式去遍历生成的语法树,返回相应的值,完成对输入数据的特征提取匹配;

所述的词法分析器LogicLexer是指使用Antlr4工具将语法文件Logic.g4中的词法操作规则转换后的程序;

所述的语法分析器LogicParser是指使用Antlr4工具将语法文件Logic.g4中的语法操作规则转换后的程序;

所述的语法文件Logic.g4中的词法操作规则包括value操作规则和标识符操作规则,其中,标识符操作包括识别词法定义中的标识符信息、匹配并丢掉空白字符、匹配并丢掉注释功能;

value操作包括:构建一个ValueString对象,将string对象和stringValue对象互相转换,将string对象转化为short、int、long、double、boolean类型,字符串对象进行拼接,将string对象转化为ISO-8859-1编码、unicode编码,将string对象由unicode编码转化为gbk编码,对string对象进行比较;构建一个ValueBool对象,将布尔对象转化为shortValue、intValue、longValue、doubleValue、booleanValue、stringValue类型,bool对象进行比较,bool对象进行逻辑与和逻辑或比较运算,bool对象取非,bool值对象成字节数组;构建一个ValueFloat对象,float对象进行加减乘除运算,float对象转化为布尔类型;构建一个ValueInt对象,int对象进行加减乘除运算,int对象之间进行逻辑与和逻辑或比较运算,对int对象取非,将int对象转化为布尔类型,将int对象转化成字节数组;构建一个ValueLong对象,long对象进行加减乘除运算,long对象进行逻辑与和逻辑或比较运算,long对象取非,long对象转化为布尔类型,long对象转化成字节数组;构建一个ValueNull对象,判断输入对象是否是null,将null对象转化为布尔类型,将null对象转化为空;

所述的语法文件Logic.g4中的语法操作规则包括Expr操作规则和fun操作规则,其中,fun操作包括:判断表达式是否为空;取格式为yyyyMMddhhmmss的表达式中的日期;表达式复制;将表达式转化成拼音;从身份证号表达式中提取生日和性别;选择满足条件的表达式;对表达式进行日期格式转化;分割表达式;替换表达式中的字符串;截取表达式中的字符串;表达式URL解码;删除表达式头部的字符串;表达式中的经纬度转化成WGS84坐标系的经纬度;拼接表达式;删除表达式中的0;截取表达式中的字符串;计算表达式经度和表达式纬度的geohash;

Expr操作包括:表达式模式匹配;判断表达式是否为数字;判断表达式是否存在于其他表达式中;判断表达式是否以其他表达式结尾;判断表达式是否包含其他表达式;两个表达式进行大小判断;表达式取非;两个表达式之间逻辑与运算;两个表达式之间逻辑或运算;定义表达式的匹配格式;定义字段编码表达式匹配格式;定义配配置文件中需要进行特征匹配的匹配格式;定义配配置文件中需要进行条件判断的匹配格式;value操作;fun操作。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号