语法分析器的生成方法、数据处理方法、介质、设备与流程

文档序号:31721242发布日期:2022-10-04 23:20阅读:78来源:国知局
语法分析器的生成方法、数据处理方法、介质、设备与流程

1.本公开实施例涉及计算机技术领域,具体而言,涉及一种语法分析器的生成方法、语法分析器的生成装置、数据处理方法、计算机可读存储介质以及电子设备。


背景技术:

2.在现有的技术方案中,在某些特定的领域场景中,无法通过该特定的领域场景所具有的语法分析器对该特定的领域场景中的一些指标进行分析,进而使得指标分析的效率较低,且分析结果的准确率也较低。
3.需要说明的是,在上述背景技术部分发明的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

4.本公开的目的在于提供一种语法分析器的生成方法、语法分析器的生成装置、数据处理方法、计算机可读存储介质以及电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的指标分析的效率较低,且分析结果的准确率也较低的问题。
5.根据本公开的一个方面,提供一种语法分析器的生成方法,包括:
6.获取特定领域场景中所具有的原始场景指标,并对所述原始场景指标进行抽象化处理,得到所述特定领域场景中的词法文件;
7.对所述词法文件中所包括的词法符号进行组装,得到所述特定领域场景中的语法文件;
8.基于预设的编译工具对所述词法文件以及语法文件进行编译,生成所述特定领域场景中的语法分析器。
9.在本公开的一种示例性实施例中,所述原始场景指标包括日期符号、字符串符号、数字符号、关系运算符号、常规运算符号、比较符号、括号符号以及分割符号中的多种;
10.其中,对所述原始场景指标进行抽象化处理,得到所述特定领域场景中的词法文件,包括:
11.对所述日期符号进行抽象化处理,得到与所述日期符号对应的第一词法符号;和/或
12.对所述字符串符号进行抽象化处理,得到与所述字符串符号对应的第二词法符号;和/或
13.对所述数字符号进行抽象化处理,得到与所述数字符号对应的第三词法符号;和/或
14.对所述关系运算符号进行抽象化处理,得到与所述关系运算符号对应的第四词法符号;和/或
15.对所述常规运算符号进行抽象化处理,得到与所述常规运算符号对应的第五词法符号;和/或
16.对所述比较符号进行抽象化处理,得到与所述比较符号对应的第六词法符号;和/或
17.对所述括号符号进行抽象化处理,得到与所述括号符号对应的第七词法符号;和/或
18.对所述分割符号进行抽象化处理,得到与所述分割符号对应的第八词法符号;
19.根据所述第一词法符号和/或第二词法符号和/或第三词法符号和/或第四词法符号和/或第五词法符号和/或第六词法符号和/或第七词法符号和/或第八词法符号,构建所述特定领域场景中的词法文件。
20.在本公开的一种示例性实施例中,对所述词法文件中所包括的词法符号进行组装,得到所述特定领域场景中的语法文件,包括:
21.对所述第一词法符号和/或第二词法符号和/或第三词法符号和/或第四词法符号和/或第五词法符号和/或第六词法符号和/或第七词法符号和/或第八词法符号进行组装,得到一个或多个具有第一计算级别的表达式;
22.对所述第一表达式以及第一词法符号和/或第二词法符号和/或第三词法符号和/或第四词法符号和/或第五词法符号和/或第六词法符号和/或第七词法符号和/或第八词法符号进行组装,得到一个或多个具有第二计算级别的表达式;
23.依次重复所述具有第二计算级别的表达式的计算过程,得到一个或多个具有其他计算级别的表达式;
24.根据一个或多个具有第一计算级别的表达式和/或一个或多个具有第二计算级别的表达式和/或一个或多个具有其他计算级别的表达式,构建所述特定领域场景中的语法文件。
25.在本公开的一种示例性实施例中,基于预设的编译工具对所述词法文件以及语法文件进行编译,生成所述特定领域场景中的语法分析器,包括:
26.基于所述预设的编译工具识别所述语法文件中包括的词法符号以及由所述词法符号组成的表达式,并识别各所述表达式之间的逻辑关系;其中,所述逻辑关系包括嵌套逻辑关系和/或具有相同计算优先级的逻辑关系;
27.根据所述表达式以及各所述表达式之间的逻辑关系,生成语法树文件,并基于所述预设的变异工具对所述语法树文件进行编译,得到所述特定领域场景中的语法分析器。
28.在本公开的一种示例性实施例中,所述语法分析器的生成方法还包括:
29.为所述语法分析器中包括的每一个语法文件配置语法树监听接口,并在所述语法树监听接口中填充与所述语法文件对应的调用逻辑和/或数据处理逻辑。
30.在本公开的一种示例性实施例中,所述语法分析器的生成方法还包括:
31.根据特定领域场景中所具有的原始场景指标以及所述语法分析器,生成与所述特定领域场景对应的用户展示界面,并对所述用户展示界面进行展示。
32.在本公开的一种示例性实施例中,所述语法分析器的生成方法还包括:
33.响应于对所述用户展示界面中包括的原始场景指标的配置操作,对所述原始场景指标进行更新;
34.其中,对所述原始场景指标进行更新包括对所述原始场景指标进行添加、删除以及修改中的至少一种。
35.根据本公开的一个方面,提供一种数据处理方法,包括:
36.获取待处理数据,并基于预设的语法分析器对所述待处理数据进行语法分析,得到所述待处理数据中包括的待处理表达式以及待处理表达式之间的逻辑关系;其中,所述语法分析器是通过上述任意一项所述的语法分析器的生成方法生成的;
37.基于所述待处理表达式以及待处理表达式之间的逻辑关系,生成待处理语法树;
38.将所述待处理语法树转化为结构化查询语言,执行所述结构化查询语言,得到与所述待处理数据对应的数据处理结果。
39.根据本公开的一个方面,提供一种语法分析器的生成装置,包括:
40.抽象化处理模块,用于获取特定领域场景中所具有的原始场景指标,并对所述原始场景指标进行抽象化处理,得到所述特定领域场景中的词法文件;
41.词法符号组装模块,用于对所述词法文件中所包括的词法符号进行组装,得到所述特定领域场景中的语法文件;
42.语法分析器生成模块,用于基于预设的编译工具对所述词法文件以及语法文件进行编译,生成所述特定领域场景中的语法分析器。
43.在本公开的一种示例性实施例中,所述原始场景指标包括日期符号、字符串符号、数字符号、关系运算符号、常规运算符号、比较符号、括号符号以及分割符号中的多种;
44.其中,所述抽象化处理模块还可以被配置为:对所述日期符号进行抽象化处理,得到与所述日期符号对应的第一词法符号;和/或对所述字符串符号进行抽象化处理,得到与所述字符串符号对应的第二词法符号;和/或对所述数字符号进行抽象化处理,得到与所述数字符号对应的第三词法符号;和/或对所述关系运算符号进行抽象化处理,得到与所述关系运算符号对应的第四词法符号;和/或对所述常规运算符号进行抽象化处理,得到与所述常规运算符号对应的第五词法符号;和/或对所述比较符号进行抽象化处理,得到与所述比较符号对应的第六词法符号;和/或对所述括号符号进行抽象化处理,得到与所述括号符号对应的第七词法符号;和/或对所述分割符号进行抽象化处理,得到与所述分割符号对应的第八词法符号;根据所述第一词法符号和/或第二词法符号和/或第三词法符号和/或第四词法符号和/或第五词法符号和/或第六词法符号和/或第七词法符号和/或第八词法符号,构建所述特定领域场景中的词法文件。
45.在本公开的一种示例性实施例中,所述词法符号组装模块还可以被配置为:对所述第一词法符号和/或第二词法符号和/或第三词法符号和/或第四词法符号和/或第五词法符号和/或第六词法符号和/或第七词法符号和/或第八词法符号进行组装,得到一个或多个具有第一计算级别的表达式;对所述第一表达式以及第一词法符号和/或第二词法符号和/或第三词法符号和/或第四词法符号和/或第五词法符号和/或第六词法符号和/或第七词法符号和/或第八词法符号进行组装,得到一个或多个具有第二计算级别的表达式;依次重复所述具有第二计算级别的表达式的计算过程,得到一个或多个具有其他计算级别的表达式;根据一个或多个具有第一计算级别的表达式和/或一个或多个具有第二计算级别的表达式和/或一个或多个具有其他计算级别的表达式,构建所述特定领域场景中的语法文件。
46.在本公开的一种示例性实施例中,所述语法分析器生成模块还可以被配置为:基于所述预设的编译工具识别所述语法文件中包括的词法符号以及由所述词法符号组成的
表达式,并识别各所述表达式之间的逻辑关系;其中,所述逻辑关系包括嵌套逻辑关系和/或具有相同计算优先级的逻辑关系;根据所述表达式以及各所述表达式之间的逻辑关系,生成语法树文件,并基于所述预设的变异工具对所述语法树文件进行编译,得到所述特定领域场景中的语法分析器。
47.在本公开的一种示例性实施例中,所述语法分析器的生成装置还可以包括:
48.逻辑填充模块,可以用于为所述语法分析器中包括的每一个语法文件配置语法树监听接口,并在所述语法树监听接口中填充与所述语法文件对应的调用逻辑和/或数据处理逻辑。
49.在本公开的一种示例性实施例中,所述语法分析器的生成装置还可以包括:
50.用户展示界面生成模块,可以用于根据特定领域场景中所具有的原始场景指标以及所述语法分析器,生成与所述特定领域场景对应的用户展示界面,并对所述用户展示界面进行展示。
51.在本公开的一种示例性实施例中,所述语法分析器的生成装置还可以包括:
52.场景指标更新模块,可以用于响应于对所述用户展示界面中包括的原始场景指标的配置操作,对所述原始场景指标进行更新;
53.其中,对所述原始场景指标进行更新包括对所述原始场景指标进行添加、删除以及修改中的至少一种。
54.根据本公开的一个方面,提供一种数据处理装置,包括:
55.语法解析模块,可以用于获取待处理数据,并基于预设的语法分析器对所述待处理数据进行语法分析,得到所述待处理数据中包括的待处理表达式以及待处理表达式之间的逻辑关系;其中,所述语法分析器是通过上述任意一项所述的语法分析器的生成方法生成的;
56.语法树生成模块,可以用于基于所述待处理表达式以及待处理表达式之间的逻辑关系,生成待处理语法树;
57.结构化查询语言执行模块,可以用于将所述待处理语法树转化为结构化查询语言,执行所述结构化查询语言,得到与所述待处理数据对应的数据处理结果。
58.根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的语法分析器的生成方法以及上述任意一项所述的数据处理方法。
59.根据本公开的一个方面,提供一种电子设备,包括:
60.处理器;以及
61.存储器,用于存储所述处理器的可执行指令;
62.其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的语法分析器的生成方法以及上述任意一项所述的数据处理方法。
63.本公开实施例提供的一种语法分析器的生成方法,一方面,通过获取特定领域场景中所具有的原始场景指标,并对原始场景指标进行抽象化处理,得到特定领域场景中的词法文件;然后对词法文件中所包括的词法符号进行组装,得到特定领域场景中的语法文件;最后基于预设的编译工具对词法文件以及语法文件进行编译,得到特定领域场景中的语法分析器,进而可以通过该语法分析器对特定领域场景中所包括的指标进行分析,解决
了现有技术中由于无法通过该特定的领域场景所具有的语法分析器对该特定的领域场景中的一些指标进行分析,进而使得指标分析的效率较低,且分析结果的准确率也较低的问题,提高了指标分析效率,同时提高了分析结果的准确率;另一方面,由于可以通过特定领域场景中的词法文件以及语法文件生成对应的语法分析器,进而使得该语法分析器可以特定的对该特定领域场景中包括的所有指标进行处理,避免了现有技术中由于需要对特定领域场景中包括的指标采用定制化的方式进行处理进而导致的开发周期长以及资源浪费的问题。
64.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
65.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
66.图1示意性示出根据本公开示例实施例的一种语法分析器的生成方法的流程图。
67.图2示意性示出根据本公开示例实施例的一种日期嵌套符号解释的示例图。
68.图3示意性示出根据本公开示例实施例的一种对词法符号进行组装所得到的语法规则的示例图。
69.图4、图5、图6、图7、图8、图9以及图10分别示意性示出根据本公开示例实施例的一种子语法树的示例图。
70.图11示意性示出根据本公开示例实施例的一种语法树的示例图。
71.图12示意性示出根据本公开示例实施例的一种具有嵌套层级的语法规则的示例图。
72.图13示意性示出根据本公开示例实施例的一种在语法树监听接口填充调用逻辑的示例图。
73.图14示意性示出根据本公开示例实施例的一种数据处理方法的流程图。
74.图15示意性示出根据本公开示例实施例的一种语法分析器的生成装置的框图。
75.图16示意性示出根据本公开示例实施例的一种数据处理装置的框图。
76.图17示意性示出根据本公开示例实施例的一种用于实现上述语法分析器的生成方法以及数据处理方法的电子设备。
具体实施方式
77.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方
法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
78.此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
79.在电商、支付、直播以及短视频等物联网业态越来越发达的今天,信贷风险、反欺诈以及内容安全审核等领域也越来越重要。在这些特定领域场景中,其中一个最重要的技术就是指标计算,进而根据指标计算结果来判断信贷风险的高低、是否存在欺诈行为以及是否存在不安全的行为等等。例如,在信贷场景下,判断一个客户的一笔交易是否属于有风险的交易,或者是否是洗钱操作;在电商场景下,判断用户的某一笔交易是否是刷单行为等。
80.在判断一笔交易或者支付是否属于洗钱或者刷单的过程中,可能需要判断多个指标。在这些指标中,有一些指标较为简单,有一些指标较为复杂。其中:
81.首先,较为简单的指标例如可以包括:指标1:最近30天_手机号_交易事件_出现次数_本应用;指标2:7天_账户_交易事件_出现次数_本应用_拼团交易通过;指标3:一天内同一手机号开立≥3个账户或12个月内同一手机号关联开户账户数≥5(i、ii、iii类户)_排除存单类开销户;指标4:同一账户开户日期≤10日,且开户时存入小于等于100元,交易金额≤10,且期间无其他交易。
82.其次,较为复杂的指标例如可以包括:指标5:同一客户_近一年内_存在≥ii、iii类户入账_[非绑定账户转入资金和/或存入现金]≥90*年限额[ii类户年限额为20万,iii类户的年限额为5万]后销户;指标6:开户时间小于12个月的账户存在以下特征:新账户开立后数日内(1个月内)有一笔以上交易金额<100元的交易,当前比交易为结息,中途无其他出账类交易_排除收费类(提出资金监管账户);
[0083]
更进一步的,非常复杂的指标(业界目前无法很好的支持)例如可以包括:指标7:同一个人账户开户时间小于8个月_开户30天内,存在一笔以上交易金额<100元的交易,一个月内累计出入账交易笔数≥1000笔_累计出账金额≥200万,当前笔交易为结息_近10天内无出账交易;指标8:同一个人账户,12个月中存在以下特征的月份数≥5:每月交易(出金+入金)笔数≥20的活跃天数≥20_排除理财、交易对手为政务类;指标9:同一个人账户,12个月内有3个月以上存在以下特征:一个月内10天以上存在交易,通过网联渠道交易占比≥40%_一段时间内笔均出账金额≤10_笔均入账金额≤500_小额出账笔数≥80%_当月内存在5笔以上交易金额≥10000的网联出账;指标10:同一账户,启用时间超过3个月,账户近1年内存在如下特征:1月内高频交易(300笔以上出账),暂停2个月以上(2个月内出账次数接近0);近1个月高频交易(300笔以上出账)等等。
[0084]
但是,业界目前大多是只能支持简单指标或者复杂度一般的指标;而,对于非常复杂的多维度指标,或者多个时间窗口的复杂指标,是没有一种很好的支持方案的。其根本原因是,无法很好的抽象描述这类指标;由于无法很好的抽象,导致每一个指标都得有自己特殊的算法逻辑支持。而在很多场景下,这种指标又数量庞大多变,因此很难支持。
[0085]
同时,当前现有的方式一般可以通过如下集中:
[0086]
一种是,简单指标统一归纳处理:对于简单指标,目前都可以抽象归纳成一些特定类型的,如次数统计、频次统计、数量统计、关联个数以及存在类等;这类指标的处理比较简单,通过数据库层面的sql查询一般即可实现;
[0087]
另一种是,复杂指标利用简单指标组合处理:对于复杂度一般的指标,一般是利用多个简单指标进行组合处理;例如次数和存在类结合;这类指标实现在java等编程语言中结合sql即可实现;
[0088]
再有一种是,复杂指标定制化开发:目前业界没有较好的方案支持复杂指标,如多个时间窗口的多维度数据统计,多个维度关联指标等,这类指标的支持种类非常少,即使有支持,也是采用定制化开发的方式,每个指标定制化开发;并且,这种开发方式实现成本较高,周期较长,严重制约业务的灵活发展。
[0089]
但是,上述方案存在如下缺陷:一方面,对于较复杂指标利用简单指标组合处理方式来说,该方式只能解决一些复杂度较低的指标,利用现有的简单指标,进行一些组合,计算和判断,无法支持复杂嵌套指标,业务场景有限;另一方面,对复杂指标定制化开发的方式来说,其存在如下问题:一个问题是,由于没有一套领域专用语言来描述,每个复杂指标需求提出时,都是一个全新的指标;例如,指标的元素、条件、属性等都只能来自文字描述,现有系统中通过已有的指标组装配置功能无法配置出此指标,无法标准化描述;并且,业务专家和产品、开发等,只能根据文字和当面沟通来确认业务的真实意图和需求含义;另一个问题是,开发成本过高;同时,由于过于复杂,因此无法使用现在的代码去组装实现,只能根据业务的要求,重新开发实现,然后测试以及发布;并且,每一个新指标的实现,都需要投入大量的人力资源;从接受需求、确认需求,到开发、测试、发布上线,整个周期太长,需求提出后无法立即发布上线,严重影响业务的发展节奏。
[0090]
为了解决上述问题,提出了一种领域通用语言,如java或者python等,可以描述简单指标;但是有嵌套的或者多个时间窗口的复杂指标,领域通用语言就很难描述。因此,本示例实施方式提供了一种语法分析器的生成方法,也即可以利用antlr4建立一套领域通用语言,来专门描述复杂的指标,从业务领域专家处收集梳理复杂指标,然后抽象出通用的词法符号,然后抽象出通用的公式和语法模式,有了这套模式,就可以极大的降低复杂指标的实现成本。
[0091]
进一步的,本公开示例实施例所记载的语法分析器的生成方法,可以运行于终端设备、服务器、服务器集群或云服务器等;当然,本领域技术人员也可以根据需求在其他平台运行本公开的方法,本示例性实施例中对此不做特殊限定。具体的,参考图1所示,该语法分析器的生成方法可以包括以下步骤:
[0092]
步骤s110.获取特定领域场景中所具有的原始场景指标,并对所述原始场景指标进行抽象化处理,得到所述特定领域场景中的词法文件;
[0093]
步骤s120.对所述词法文件中所包括的词法符号进行组装,得到所述特定领域场景中的语法文件;
[0094]
步骤s130.基于预设的编译工具对所述词法文件以及语法文件进行编译,生成所述特定领域场景中的语法分析器。
[0095]
上述语法分析器的生成方法中,一方面,通过获取特定领域场景中所具有的原始
场景指标,并对原始场景指标进行抽象化处理,得到特定领域场景中的词法文件;然后对词法文件中所包括的词法符号进行组装,得到特定领域场景中的语法文件;最后基于预设的编译工具对词法文件以及语法文件进行编译,得到特定领域场景中的语法分析器,进而可以通过该语法分析器对特定领域场景中所包括的指标进行分析,解决了现有技术中由于无法通过该特定的领域场景所具有的语法分析器对该特定的领域场景中的一些指标进行分析,进而使得指标分析的效率较低,且分析结果的准确率也较低的问题,提高了指标分析效率,同时提高了分析结果的准确率;另一方面,由于可以通过特定领域场景中的词法文件以及语法文件生成对应的语法分析器,进而使得该语法分析器可以特定的对该特定领域场景中包括的所有指标进行处理,避免了现有技术中由于需要对特定领域场景中包括的指标采用定制化的方式进行处理进而导致的开发周期长以及资源浪费的问题。
[0096]
以下,将结合附图对本公开示例实施例语法分析器的生成方法进行详细的解释以及说明。
[0097]
首先,对本公开示例实施例的发明目的进行解释以及说明。具体的,本公开示例实施例所记载的语法分析器的生成方法,主要是为了达到以下目的:一方面,利用antlr4建立一套指标领域专用语言,来专门描述复杂的指标,从业务领域专家处收集梳理复杂指标,然后抽象出通用的词法符号、语法符号以及语法模式公式,有了这套模式,业务专家新增复杂指标时,只需要使用定义好的词法符号/语法符号和定义好的语法模式去套公式组合即可,极大的降低了业务需求方,产品人员,开发人员等多方的沟通成本,提高跨团队沟通效率;另一方面,当定义好通用的词法符号、语法模式和指标公式时,就可以针对每种模式公式及其组合的模式公式开发出通用的代码,在定义好的模式公式范围内,配置新的复杂指标时,可以不再需要进行开发测试等工作,直接按照语法公式拼接,即可复用语法公式已有的实现;极大的节约了开发资源和成本。
[0098]
其次,对本公开示例实施例所记载的领域特定语言进行解释以及说明。具体的,本公开示例实施例中所涉及到的领域特定语言,是指可以用于识别复杂的指标描述语句,然后提取关键信息,识别出其中的指标模式和指标关键变量,然后进行计算的程序;其中,本公开示例实施例所记载的领域特定语言,可以通过如下方式实现:首先,构建一个程序,能够对输入的语句进行分析,而语句是由字、词组和一些标点符号构成的,词组又是由一些字组成的;因此,可以从最细粒度的字,符号开始,定义字,符号;同时,由于词组是由单个字按照一定顺序组成的,词组是不可分割的,需要定义出一些不可分割的字组合起来的字符串—词组,以免识别时断句错误,把不可拆分的词组识别为了单独的字。例如:我爱祖国和人民。不能识别为:我爱组国和人民,应该是:我爱祖国和人民;进一步的,由于语句是有逻辑关系和语序的,例如:因为要下雨,所以出门需要带伞。这里的因为和所以需要成对出现,否则就是病句;因此,在识别的过程中,需要识别和知道因为

所以是需要成对出现的;同样,在遇到()括号时,也要能把括号成对的识别出来,不能只识别一半。
[0099]
基于上述记载的领域特定语言的具体实现过程可以得知,可以把复杂指标的描述,也当成一种新的语言,只是这种语言主要用在复杂指标这种特殊的领域,因此称它为领域专用语言(或者领域特定语言)。具体的,可以一个复杂的多窗口嵌套的复杂指标为例,来一步一步拆解如何定义一门领域专用语言,然后以此为基础来实现复杂指标。
[0100]
例如,假设指标案例为:同一个人账户,12个月内有5-10个月存在以下特征:1个月
内有20-25天存在高频率小额试刷(交易次数大于10次且交易金额累计小于1000元,或者平均单笔交易金额小于100元),且当月内存在5笔以上交易金额》=10000的网联出账,且账户类型为二类账户。
[0101]
这个指标案例中,有一些基础字段或者基础指标,因此可以直接使用:
[0102]
指标基础字段:transfercount,交易次数;moneysum,交易金额总和;accounttype,账户类型等等;其中,可以提取到的账户类型为为二类账户,transferout(交易金额)为大于10000的网联出账次数;同时,可以得到的抽象配置结果为:
[0103]
[12m,5,10,[30d,20,25,((moneysum《1000||treansfercount》10||(moneysum/treansfercount)《100)&&transferout》5&&accounttype=3)]]。
[0104]
也即,基于本公开示例实施例所记载的语法分析器的生成方法所生成语法分析器,其最终所能达到的目的是:通过语法分析器对于输入的指标案例“同一个人账户,12个月内有5-10个月存在以下特征:1个月内有20-25天存在高频率小额试刷(交易次数大于10次且交易金额累计小于1000元,或者平均单笔交易金额小于100元),且当月内存在5笔以上交易金额》=10000的网联出账,且账户类型为二类账户”进行分析,进而得到表达式:[12m,5,10,[30d,20,25,((moneysum《1000||treansfercount》10||(moneysum/treansfercount)《100)&&transferout》5&&accounttype=3)]];进而根据该表达式从数据库中匹配与该表达式对应的账户。
[0105]
以下,将对图1中所示出的语法分析器的生成方法进行详细的解释以及说明。
[0106]
在步骤s110中,获取特定领域场景中所具有的原始场景指标,并对所述原始场景指标进行抽象化处理,得到所述特定领域场景中的词法文件。
[0107]
在本示例实施例中,首先,可以获取特定领域场景中所具有的原始场景指标;其中,该原始场景指标包括日期符号、字符串符号、数字符号、关系运算符号、常规运算符号、比较符号、括号符号以及分割符号等等;其中,日期符号可以是具体的年月日时分秒等,字符串符号例如可以是该特定领域场景中包括的指标基础字段,比如在电商或者支付场景下,该指标基础字段可以包括交易次数、交易金额、账户类型等等;又比如,在直播或者短视频场景下,该指标基础字段可以包括点击次数、观看次数、收藏次数、粉丝数量或者成交金额等等,本示例对此不做特殊限制;进一步的,数字符号例如可以是交易金额的具体数值、交易次数的具体数值等等;关系运算符号可以包括和、或、与等关系运算符号;常规运算符号可以包括加、减、乘、除以及开平方等运算符号;比较符号例如可以包括大于、小于、等于、大于等于、小于等于等等;分割符号例如可以包括空格符、逗号、分号或者点号等等,本示例对此不做特殊限制。
[0108]
进一步的,当获取到上述原始场景指标以后,即可对所述原始场景指标进行抽象化处理,得到所述特定领域场景中的词法文件。具体的,抽象化处理得到词法文件的具体实现过程,可以通过如下方式实现:对所述日期符号进行抽象化处理,得到与所述日期符号对应的第一词法符号;和/或对所述字符串符号进行抽象化处理,得到与所述字符串符号对应的第二词法符号;和/或对所述数字符号进行抽象化处理,得到与所述数字符号对应的第三词法符号;和/或对所述关系运算符号进行抽象化处理,得到与所述关系运算符号对应的第四词法符号;和/或对所述常规运算符号进行抽象化处理,得到与所述常规运算符号对应的第五词法符号;和/或对所述比较符号进行抽象化处理,得到与所述比较符号对应的第六词
法符号;和/或对所述括号符号进行抽象化处理,得到与所述括号符号对应的第七词法符号;和/或对所述分割符号进行抽象化处理,得到与所述分割符号对应的第八词法符号;根据所述第一词法符号和/或第二词法符号和/或第三词法符号和/或第四词法符号和/或第五词法符号和/或第六词法符号和/或第七词法符号和/或第八词法符号,构建所述特定领域场景中的词法文件。
[0109]
以下,将具体的对抽象化处理过程进行进一步的解释以及说明。具体的,抽象化处理过程,也可以被称为是词法分析过程;在词法分析过程中,首先需要可以识别的最小粒度的符号,例如一个整数2276,一个大于符号》或者一个关联符号&&等等;在读取一个数据时可以识别该输入数据中包括的最基本符号;同时,可以把字符聚集为单词或者符号的过程叫做词法分析,在具体的应用过程中,可以通过antlr4定义一个词法分析器(也可以被称为词法文件)来实现;在此前提下,首先需要定义词法分析器所需要识别的符号;进一步的,通过对复杂指标业务的理解,可以梳理抽象出一套可以囊括复杂指标中所使用的所有可能的关系和符号;同时,当抽象确定这套词法体系后,需要公开出去,在指标业务专家、开发人员、测试人员等之间达成共识,确保同一个符号,只有一个准确的含义,以提高沟通效率。例如,参考图2所示的一个日期嵌套符号解释:
[0110]
[nd,x,z,expr],最近n天中,有x-z天满足expr;其中,expr为条件表达式,历史count>10;s为秒,m为分,h为时,d为日,m为月,y为年,nd表示时间范围,当前开始向前推n天,x以及z均为闭区间,此符号意在视图抽象一个统一的时间窗口的描述符;同时,由于antlr4支持左递归,因此,可以实现[12m,2,6,[30d,20,25,expr]]这种嵌套窗口;{n,}表示至少匹配n次。
[0111]
举例来说,[20d,0,5,expr],表示最近20天中有0-5天满足条件expr(表达式);[20d,5,20,expr],表示最近20天中有5-20天满足条件expr;[20d,20,20,expr],表示最近20天中有20天满足条件expr;[12m,2,6,[30d,20,25,expr]],表示最近12个月中,有2-6个月满足:一个月的30天中,有20-25天满足条件expr。
[0112]
进一步的,当确定需要用的各种符号后,即可把这些符号定义成词法规则(词法文件),如下,所有的复杂指标,都可以使用下面的几十种符号描述清楚:
[0113]
首先,日期符号可以被抽象为:year:'y';month:'m';day:'d';hour:'h';min:'m';second:'s';也即第一词法符号
[0114]
字符串符号为:field_name:[a-za-z]+;也即第二词法符号
[0115]
数字符号:int:[0-9]+;number:('0'

'9')+('.'('0'

'9')+);scientific_number:number((e1|e2)sign?number);fragment e1:'e';fragment e2:'e';fragment sign:('+'|'-');也即第三词法符号;
[0116]
关系运算符号:and:'&';double_and:'&&';or:'|';double_or:'||';也即第四词法符号;
[0117]
常规运算符号:plus:'+';minus:'-';times:'*';div:'/';sqrt:'sqrt';pow:'^';也即第五词法符号;
[0118]
比较符号:gt:'》';lt:'《';eq:'=';gt_eq:'≥';lt_eq:'≤';也即第六词法符号;
[0119]
括号符号:lsquare:'[';rsquare:']';lbraces:'{';rbraces:'}';lparen:'(';
rparen:')';也即第七词法符号;
[0120]
分割符号:comma:',';point:'.',也即第八词法符号。
[0121]
至此,已经完成了所有的抽象化处理过程,进而可以根据抽象化处理所得到的第一词法符号至第八词法符号,构建对应的词法文件。
[0122]
在步骤s120中,对所述词法文件中所包括的词法符号进行组装,得到所述特定领域场景中的语法文件。
[0123]
在本公开示例实施例中,首先,对所述第一词法符号和/或第二词法符号和/或第三词法符号和/或第四词法符号和/或第五词法符号和/或第六词法符号和/或第七词法符号和/或第八词法符号进行组装,得到一个或多个具有第一计算级别的表达式;其次,对所述第一表达式以及第一词法符号和/或第二词法符号和/或第三词法符号和/或第四词法符号和/或第五词法符号和/或第六词法符号和/或第七词法符号和/或第八词法符号进行组装,得到一个或多个具有第二计算级别的表达式;然后,依次重复所述具有第二计算级别的表达式的计算过程,得到一个或多个具有其他计算级别的表达式;最后,根据一个或多个具有第一计算级别的表达式和/或一个或多个具有第二计算级别的表达式和/或一个或多个具有其他计算级别的表达式,构建所述特定领域场景中的语法文件。
[0124]
以下,将对语法文件的具体生成过程进行进一步的解释以及说明。具体的,语法文件的生成过程也可以被称为是语法分析过程;其中,在语法分析过程中,当接受到输入的语句时,不仅需要能识别其中的关键字符和符号,还需要能够识别其中的逻辑关系、计算关系以及比较关系等,并且在程序运行时,还需要能够随时访问这些关键信息;为了达到该目的,可以通过对复杂指标业务的理解,进而梳理出复杂指标的一些模式及处理方式;例如,可以通过上述抽象化处理得到的各种词法符号,通过一定顺序的组装,得到语法规则。具体的,参考图3所示,例如:
[0125]
expr:expr(gt|lt|gt_eq|lt_eq|eq)expr#compare
[0126]
|expr(div)expr#calc
[0127]
|expr(and|or|double_and|double_or)expr#relation
[0128]
|autom#automexpr|timeexpr#timeexprstr
[0129]
|scientific_number#scientificnumber
[0130]
|number#number
[0131]
|int#int
[0132]
|field_name#fieldname
[0133]

[0134]
automtimeexpr
[0135]
:int(year|month|day|hour)
[0136]

[0137]
autom
[0138]
:lparen expr rparen
[0139]

[0140]
……
[0141]
在图3所示出的实例中,由于antlr4支持左递归的实现,借助此特性,可以实现复
comma int comma int comma expr rsquare即可表达。
[0148]
至此,已经完全解释了由词法符号组成的语法规则,是如何识别简单的输入的。也即,在具体的应用过程中,词法分析器处理字符序列并将生成的词法符号提供给语法分析树,语法分析树根据这些信息来检查语法的正确性,并构建出一棵语法分析树。其中,所得到的语法分析树具体可以参考图11所示;基于图11所示出的语法分析树可以得知,该语法分析树中的每一个叶子结点,其实都是前述解释的一些简单语法,这些简单语法又是由前述定义的各种词法符号组成;也即,可以通过定义的词法符号实现复杂场景指标的计算。
[0149]
进一步的,当得到语法分析树以后,即可利用antlr工具对该语法分析树进行编译,得到对应的语法分析器,所得到的语法分析器可以参考图12所示;其中,该语法分析器可以是一个递归下降的语法分析器,该语法分析器为若干递归方法的集合,每个方法都对应一条规则;同时,下降的过程就是从语法分析树的根节点开始,向着叶节点进行解析的过程中。
[0150]
至此,语法分析器的实现过程已经完成。
[0151]
在本公开所提供的一种示例实施例中,当语法分析器生成完成以后,该语法分析器的生成方法还包括:为所述语法分析器中包括的每一个语法文件配置语法树监听接口,并在所述语法树监听接口中填充与所述语法文件对应的调用逻辑和/或数据处理逻辑。也即,在定义好词法和语法规则之后,可以在每个语法规则的后面通过#xxxx的形式,标注这个规则的访问入口;并且,antlr运行库提供了listener机制,可以为每个语法文件生成一个parsetreelistener的子类,在这个类中,语法中的每条规则都有对应的enter()和exit()方法,例如,当遍历器访问到compare规则对应的节点时,它就会调用entercompare()方法,然后将对应的语法分析树节点实例当作参数传递给它;因此,可以自行实现parsetreelistener接口,在该接口中填充所需要的调用逻辑,即遇到每种规则时,该如何处理数据的逻辑;其中,具体所填充的逻辑可以参考图13所示。
[0152]
至此,已经全部完成了复杂指标领域dsl引擎的实现。总结来说,在具体的实现过程中,可以包括以下步骤:首先,抽象出一套词法符号,这套词法符号能够抽象的描述所有的复杂指标的业务语意描述;其次,根据词法规则和业务的逻辑,抽象出一套可以识别支撑复杂嵌套,时间窗口,比较等各种功能的语法规则,这套语法规则,可以识别和解析出各种复杂度的指标描述;然后,根据语法规则,生成语法树,在语法树的监听器实现中,给各个语法规则实现一个访问入口方法,且把该规则所需要的上下文数据以入参的形式传递给访问入口方法;进一步的,在监听器的每个规则方法具体实现中,再做我们业务的具体开发实现;更进一步的,由于词法符号以及语法规则都是通用的,因此这些通用的规则实现之后,由这些通用的规则组合的复杂的指标,也就可以得到实现。例如:实现了a&&b的功能,则就实现了(a》6)&&(b《9)的实现。
[0153]
在一种示例实施例中,所述语法分析器的生成方法还包括:根据特定领域场景中所具有的原始场景指标以及所述语法分析器,生成与所述特定领域场景对应的用户展示界面,并对所述用户展示界面进行展示。具体的,当实现了上述通用的指标规则/模式/公式后,可以开发一个页面(也即用户展示界面),这样用户想要使用一个指标时,只需要在页面上,按照规定好的词法符号和语法规则去配置即可。
[0154]
在一种示例实施例中,所述语法分析器的生成方法还包括:响应于对所述用户展
示界面中包括的原始场景指标的配置操作,对所述原始场景指标进行更新;其中,对所述原始场景指标进行更新包括对所述原始场景指标进行添加、删除以及修改中的至少一种。也即,假设需要实现的指标:同一个人账户,12个月内有5-10个月存在以下特征:1个月内有20-25天存在高频率小额试刷(交易次数大于10次且交易金额累计小于1000元,或者平均单笔交易金额小于100元),且当月内存在5笔以上交易金额》=10000的网联出账,且账户类型为二类账户。
[0155]
这个指标里,有一些基础字段或者基础指标,可以直接使用:
[0156]
指标基础字段:transfercount交易次数;moneysum交易金额总和;accounttype账户类型:二类账户;transferout交易金额大于10000的网联出账次数;那么,页面配置为:[12m,5,10,[30d,20,25,((moneysum《1000||treansfercount》10||(moneysum/treansfercount)《100)&&transferout》5&&accounttype=3)]]。当然,在页面的配置过程中,用户还可以配置新的场景指标、删除一些场景指标或者修改一些场景指标等等,本示例对此不做特殊限制。
[0157]
本公开示例实施例还提供了一种数据处理方法。具体的,参考图14所示,该数据处理方法可以包括以下步骤:
[0158]
步骤s1410,获取待处理数据,并基于预设的语法分析器对所述待处理数据进行语法分析,得到所述待处理数据中包括的待处理表达式以及待处理表达式之间的逻辑关系;其中,所述语法分析器是通过前述所述的语法分析器的生成方法生成的;
[0159]
步骤s1420,基于所述待处理表达式以及待处理表达式之间的逻辑关系,生成待处理语法树;
[0160]
步骤s1430,将所述待处理语法树转化为结构化查询语言,执行所述结构化查询语言,得到与所述待处理数据对应的数据处理结果。
[0161]
在图14所示出的数据处理方法中,一方面,通过基于预设的语法分析器对待处理数据进行语法分析,得到待处理数据中包括的待处理表达式以及待处理表达式之间的逻辑关系,并基于待处理表达式以及待处理表达式之间的逻辑关系,生成待处理语法树,最后将待处理语法树转化为结构化查询语言,执行结构化查询语言,得到与待处理数据对应的数据处理结果,解决了现有技术中由于无法通过该特定的领域场景所具有的语法分析器对该特定的领域场景中的一些指标进行分析,进而使得指标分析的效率较低,且分析结果的准确率也较低的问题,提高了指标分析效率,同时提高了分析结果的准确率。
[0162]
本公开示例实施例还提供了一种语法分析器的生成装置。具体的,参考图15所示,该语法分析器的生成装置可以包括抽象化处理模块1510、词法符号处理模块1520以及语法分析器生成模块1530。其中:
[0163]
抽象化处理模块1510,可以用于获取特定领域场景中所具有的原始场景指标,并对所述原始场景指标进行抽象化处理,得到所述特定领域场景中的词法文件;
[0164]
词法符号组装模块1520,可以用于对所述词法文件中所包括的词法符号进行组装,得到所述特定领域场景中的语法文件;
[0165]
语法分析器生成模块1530,可以用于基于预设的编译工具对所述词法文件以及语法文件进行编译,生成所述特定领域场景中的语法分析器。
[0166]
在本公开的一种示例性实施例中,所述原始场景指标包括日期符号、字符串符号、
数字符号、关系运算符号、常规运算符号、比较符号、括号符号以及分割符号中的多种;
[0167]
其中,所述抽象化处理模块1510还可以被配置为:对所述日期符号进行抽象化处理,得到与所述日期符号对应的第一词法符号;和/或对所述字符串符号进行抽象化处理,得到与所述字符串符号对应的第二词法符号;和/或对所述数字符号进行抽象化处理,得到与所述数字符号对应的第三词法符号;和/或对所述关系运算符号进行抽象化处理,得到与所述关系运算符号对应的第四词法符号;和/或对所述常规运算符号进行抽象化处理,得到与所述常规运算符号对应的第五词法符号;和/或对所述比较符号进行抽象化处理,得到与所述比较符号对应的第六词法符号;和/或对所述括号符号进行抽象化处理,得到与所述括号符号对应的第七词法符号;和/或对所述分割符号进行抽象化处理,得到与所述分割符号对应的第八词法符号;根据所述第一词法符号和/或第二词法符号和/或第三词法符号和/或第四词法符号和/或第五词法符号和/或第六词法符号和/或第七词法符号和/或第八词法符号,构建所述特定领域场景中的词法文件。
[0168]
在本公开的一种示例性实施例中,所述词法符号组装模块还1520可以被配置为:对所述第一词法符号和/或第二词法符号和/或第三词法符号和/或第四词法符号和/或第五词法符号和/或第六词法符号和/或第七词法符号和/或第八词法符号进行组装,得到一个或多个具有第一计算级别的表达式;对所述第一表达式以及第一词法符号和/或第二词法符号和/或第三词法符号和/或第四词法符号和/或第五词法符号和/或第六词法符号和/或第七词法符号和/或第八词法符号进行组装,得到一个或多个具有第二计算级别的表达式;依次重复所述具有第二计算级别的表达式的计算过程,得到一个或多个具有其他计算级别的表达式;根据一个或多个具有第一计算级别的表达式和/或一个或多个具有第二计算级别的表达式和/或一个或多个具有其他计算级别的表达式,构建所述特定领域场景中的语法文件。
[0169]
在本公开的一种示例性实施例中,所述语法分析器生成模块1530还可以被配置为:基于所述预设的编译工具识别所述语法文件中包括的词法符号以及由所述词法符号组成的表达式,并识别各所述表达式之间的逻辑关系;其中,所述逻辑关系包括嵌套逻辑关系和/或具有相同计算优先级的逻辑关系;根据所述表达式以及各所述表达式之间的逻辑关系,生成语法树文件,并基于所述预设的变异工具对所述语法树文件进行编译,得到所述特定领域场景中的语法分析器。
[0170]
在本公开的一种示例性实施例中,所述语法分析器的生成装置还可以包括:
[0171]
逻辑填充模块,可以用于为所述语法分析器中包括的每一个语法文件配置语法树监听接口,并在所述语法树监听接口中填充与所述语法文件对应的调用逻辑和/或数据处理逻辑。
[0172]
在本公开的一种示例性实施例中,所述语法分析器的生成装置还可以包括:
[0173]
用户展示界面生成模块,可以用于根据特定领域场景中所具有的原始场景指标以及所述语法分析器,生成与所述特定领域场景对应的用户展示界面,并对所述用户展示界面进行展示。
[0174]
在本公开的一种示例性实施例中,所述语法分析器的生成装置还可以包括:
[0175]
场景指标更新模块,可以用于响应于对所述用户展示界面中包括的原始场景指标的配置操作,对所述原始场景指标进行更新;
[0176]
其中,对所述原始场景指标进行更新包括对所述原始场景指标进行添加、删除以及修改中的至少一种。
[0177]
本公开示例实施例还提供了一种数据处理装置。具体的,参考图16所示,该数据处理装置可以包括语法解析模块1610、语法树生成模块1620以及结构化查询语言执行模块1630。其中:
[0178]
语法解析模块1610,可以用于获取待处理数据,并基于预设的语法分析器对所述待处理数据进行语法分析,得到所述待处理数据中包括的待处理表达式以及待处理表达式之间的逻辑关系;其中,所述语法分析器是通过上述任意一项所述的语法分析器的生成方法生成的;
[0179]
语法树生成模块1620,可以用于基于所述待处理表达式以及待处理表达式之间的逻辑关系,生成待处理语法树;
[0180]
结构化查询语言执行模块1630,可以用于将所述待处理语法树转化为结构化查询语言,执行所述结构化查询语言,得到与所述待处理数据对应的数据处理结果。
[0181]
上述语法分析器的生成装置以及数据处理装置中各模块的具体细节已经在对应的语法分析器的生成方法以及数据处理方法中进行了详细的描述,因此此处不再赘述。
[0182]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0183]
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
[0184]
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
[0185]
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
[0186]
下面参照图17来描述根据本公开的这种实施方式的电子设备1700。图17显示的电子设备1700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0187]
如图17所示,电子设备1700以通用计算设备的形式表现。电子设备1700的组件可以包括但不限于:上述至少一个处理单元1710、上述至少一个存储单元1720、连接不同系统组件(包括存储单元1720和处理单元1710)的总线1730以及显示单元1740。
[0188]
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1710执行,使得所述处理单元1710执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元1710可以执行如图1中所示的步骤s110:获取特定领域场景中所具有的原始场景指标,并对所述原始场景指标进行抽象化处理,得到所述特定领域场景中的词法文件;步骤s120:对所述词法文件中所包括的词法符号进行组装,得到所述特定领域场景中的语法文件;步骤s130:基于预设的编译工具对所述词法文件以
及语法文件进行编译,生成所述特定领域场景中的语法分析器。
[0189]
又例如,所述处理单元1710可以执行如图14中所示的步骤s1410:获取待处理数据,并基于预设的语法分析器对所述待处理数据进行语法分析,得到所述待处理数据中包括的待处理表达式以及待处理表达式之间的逻辑关系;其中,所述语法分析器是通过上述任意一项所述的语法分析器的生成方法生成的;步骤s1420:基于所述待处理表达式以及待处理表达式之间的逻辑关系,生成待处理语法树;步骤s1430:将所述待处理语法树转化为结构化查询语言,执行所述结构化查询语言,得到与所述待处理数据对应的数据处理结果。
[0190]
存储单元1720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)17201和/或高速缓存存储单元17202,还可以进一步包括只读存储单元(rom)17203。
[0191]
存储单元1720还可以包括具有一组(至少一个)程序模块17205的程序/实用工具17204,这样的程序模块17205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0192]
总线1730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
[0193]
电子设备1700也可以与一个或多个外部设备1800(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1700交互的设备通信,和/或与使得该电子设备1700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口1750进行。并且,电子设备1700还可以通过网络适配器1760与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器1760通过总线1730与电子设备1700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0194]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
[0195]
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
[0196]
根据本公开的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0197]
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0198]
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0199]
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
[0200]
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0201]
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
[0202]
本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本公开的其他实施例。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1