公开/公告号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操作。
机译: 基于大数据的人工智能自动匹配在线聊天伙伴的方法及其自动匹配系统
机译: 基于大数据互保的在线工作匹配平台服务系统及方法
机译: 基于大数据分析的职业匹配智能信息系统及方法