自动生成正则表达式的方法、装置、设备及存储介质与流程

文档序号:26503635发布日期:2021-09-04 06:37阅读:226来源:国知局
自动生成正则表达式的方法、装置、设备及存储介质与流程

1.本申请实施例涉及金融科技(fintech)的数据处理技术领域,涉及但不限于一种自动生成正则表达式的方法、自动生成正则表达式的装置、电子设备及计算机可读存储介质。


背景技术:

2.随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(fintech)转变,然而,由于金融行业的安全性、实时性要求,金融科技也对技术提出了更高的要求。
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.图1是本申请实施例提供的一种服务器的一个可选的架构示意图;
29.图2是本申请实施例提供的自动生成正则表达式的方法的一个可选的流程示意图;
30.图3是本申请实施例提供的意图名称与意图表达的示意图;
31.图4是本申请实施例提供的意图名称与意图的正则表达式的示意图;
32.图5是本申请实施例提供的最优化问题的求解过程的示意图;
33.图6是本申请实施例提供的自动生成正则表达式的方法的一个可选的流程示意图;
34.图7是本申请实施例提供的自动生成正则表达式的方法的一个可选的流程示意图;
35.图8是本申请实施例提供的自动生成正则表达式的方法的一个可选的流程示意图;
36.图9是本申请实施例提供的人工神经网络的架构示意图;
37.图10是本申请实施例提供的激活函数的选择示意图。
具体实施方式
38.为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
39.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。除非另有定义,本申请实施例所使用的所有的技术和科学术语与属于本申请实施例的技术领域的技术人员通常理解的含义相同。本申请实施例所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
40.下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以实施为笔记本电脑,平板电脑,台式计算机,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备),智能机器人等任意具有屏幕显示功能的终端,也可以实施为服务器。下面,将说明电子设备实施为服务器时的示例性应用。
41.参见图1,图1是本申请实施例提供的服务器100的结构示意图,图1所示的服务器100包括:至少一个处理器110、至少一个网络接口120、用户接口130和存储器150。服务器100中的各个组件通过总线系统140耦合在一起。可理解,总线系统140用于实现这些组件之
间的连接通信。总线系统140除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图1中将各种总线都标为总线系统140。
42.处理器110可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
43.用户接口130包括使得能够呈现媒体内容的一个或多个输出装置131,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口130还包括一个或多个输入装置132,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
44.存储器150可以是可移除的,不可移除的或其组合。示例性地硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器150可选地包括在物理位置上远离处理器110的一个或多个存储设备。存储器150包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(read only memory,rom),易失性存储器可以是随机存取存储器(random access memory,ram)。本申请实施例描述的存储器150旨在包括任意适合类型的存储器。在一些实施例中,存储器150能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
45.操作系统151,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
46.网络通信模块152,用于经由一个或多个(有线或无线)网络接口120到达其他计算设备,示例性地网络接口120包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(universal serial bus,usb)等;
47.输入处理模块153,用于对一个或多个来自一个或多个输入装置132之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
48.在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图1示出了存储在存储器150中的一种自动生成正则表达式的装置154,该自动生成正则表达式的装置154可以是服务器100中的自动生成正则表达式的装置,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块1541、处理模块1542,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
49.在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的自动生成正则表达式的方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(application specific integrated circuit,asic)、dsp、可编程逻辑器件(programmable logic device,pld)、复杂可编程逻辑器件(complex programmable logic device,cpld)、现场可编程门阵列(field

programmable gate array,fpga)或其他电子元件。
50.下面将结合本申请实施例提供的服务器100的示例性应用和实施,说明本申请实施例提供的自动生成正则表达式的方法。参见图2,图2是本申请实施例提供的自动生成正则表达式的方法的一个可选的流程示意图,将结合图2示出的步骤进行说明,
51.步骤s201,获取新增意图的意图表达对应的候选正则表达式集合。
52.本申请实施例中,在获取到所有新增意图以及新增意图的意图表达的情况下,为了确保生成的正则表达式具有更优的泛化性,可以在构建候选正则表达式集合的过程中,先将新增意图的意图表达中的虚词和停用词过滤掉,即针对新增意图的意图表达中的词进行一次初步筛选,进而基于初步筛选后的意图表达中的剩余词构造上述候选正则表达式集合。这里,初步筛选的技术方式实现包括但不限于如下方式:针对所有的新增意图的意图表达,对每一新增意图的每一意图表达用结巴中文分词方式进行分词处理。进一步地,计算所有分词的词频

逆向文件频率(term frequency

inverse document frequency,tf

idf)值,将tf

idf值小于预设阈值例如0.0003的词语全部过滤掉。当然,初步筛选的技术方式实现还可以包括其他方式,例如使用诸如隐马尔科夫模型(hidden markov model,hmm)、条件随机场(conditional random fields,crf)、支持向量机(support vector machine,svm)、深度学习等算法完成中文分词。在过滤虚词和停用词的过程中,除使用tf

idf外,还可以使用诸如用于文本的基于图的排序算法(text rank),词性标注,专家词典等算法来完成。
53.这里,结巴中文分词,指的是中文文本处理的一个基础开源工具包,能够将输入的中文文本字符串切分成中文词语列表并返回切分后的结果。
54.这里,tf

idf为一种针对关键词的统计分析方法,用于评估一个词对一个文档集或者一个语料库的重要程度。一个词的重要程度跟它在文章中出现的次数成正比,跟它在语料库出现的次数成反比。tf=(某词在文档中出现的次数/文档的总词量),idf=log(语料库中文档总数/包含该词的文档数+1),tf

idf的结果为tf
×
idf。
55.示例性的,意图表达为“他刚出去了”,对应的分词后的结果为[“他”,“刚”,“出去”,“了”],将tf

idf值小于0.0003的词语过滤后得到[“他”,“出去”]。
[0056]
本申请提供的自动生成正则表达式的方法的实施场景,可以在现有意图集合为空的情况下,此时,相当于整个对话机器人的意图识别模块执行初始训练;还可以在给定现有意图集合的情况下,新增意图集合以及每个意图对应的意图表达后执行;也就是说,本申请的目标是在新增意图的情况下,实现自动生成正则表达式。
[0057]
在一个可实现的场景中,假设服务器中配置有一个对话机器人,该机器人有4个意图,其中2个为现有意图,2个为新增意图,示例性的如图3所示,每个意图罗列出了部分的意图表达,例如,对于现有意图:是本人,对应的意图表达包括:是的,没错是我;对是我;是本人;干嘛;干什么。对于新增意图:有兴趣,对应的意图表达包括:有兴趣你介绍一下;挺感兴趣;没有兴趣。
[0058]
示例性的如图4所示,2个现有意图(现有意图包括图4中的是本人;不是本人)的正则表达式如图4所示。需要说明的是,本申请在生成2个新增意图的正则表达式的过程中,需要保证其不能命中现有的2个意图的意图表达,同时2个新增意图的正则表达式也不能相互命中对方的意图表达,此外,根据奥卡姆剃刀原则,正则表达式应该越简单越好,基于此,本申请倾向于构造出简单的正则表达式。
[0059]
本申请实施例中,用i
i
表示第i个意图,用表示第i个意图的意图表达集合,表示第i个意图的意图表达集合的长度。本申请实施例中,通过自动生成正则表达式的方法生成的第i个新增意图的候选正则表达式集合用
表示,其中表示第i个新增意图的候选正则表达式集合中的正则表达式个数。用表示现有意图的正则表达式集合,用表示现有意图的意图表达集合,用表示新增意图的候选正则表达式集合,用表示新增意图的意图表达集合,其中,n
i
表示现有意图的个数,表示新增意图的个数。本申请自动生成正则表达式的目标是,对于中的每一个正则表达式寻找一个(最小,或其他带权重的约束)子集使得对所有现有意图表达的命中率尽可能低(由阈值进行约束),同时使该子集对于当前批次的所有其他新增意图表达的命中率尽可能低,符合上述条件的子集就是目标正则表达式。这里,本申请通过自动生成正则表达式的方法筛选出来的子集中的正则表达式个数小于预设个数,预设个数越少,可以减少进行正则匹配的计算量,提高匹配效率。
[0060]
进一步地,对于每个新增意图的意图表达,本申请构建候选的正则表达式集合。每条正则表达式都是由有序的关键词序列构建而来,比如给定关键词列表[a,b],对应的正则表达式有“.*ab”,“a.*b”,“ab.*”,“.*a.*b”,“.*ab.*”,“a.*b.*”和“.*a.*b.*”,其中“.*”表示任意字符。此外,本申请还可以从过滤完虚词和停顿词的关键词列表中,抽取包含任意关键词数量的子集。比如[“他”,“出去”],可以得到3个关键词列表子集,分别为[“他”],[“出去”]和[“他”,“出去”],进一步地,3个子集又分别可以得到3个,3个和7个的候选正则表达式。例如,[“他”]这一子集,对应的3个候选正则表达式包括如下3个“.*他.*”,“他.*”,“.*他.*”。[“他”,“出去”]这一子集,对应的7个候选正则表达式包括如下7个“.*他出去”,“他.*出去”,“他出去.*”,“.*他.*出去”,“.*他出去.*”,“他.*出去.*”和“.*他.*出去.*”。
[0061]
接下来本申请构建新增意图候选正则表达集合对于现有意图表达集合以及新增意图表达集合命中情况的矩阵。该矩阵一个维度对应的是所有意图表达,另一维度对应的是所有正则表达式,命中情况指的是判断每一个正则表达式对于意图表达的识别情况,即一个正则表达式有没有命中意图表达中的任一表达。这里,如果某正则表达式r
i
命中了某意图表达s
j
,则对应矩阵的位置取值为1,否则为0。
[0062]
步骤s202,获取候选正则表达式集合中的候选正则表达式对于现有意图表达集合的第一命中矩阵。
[0063]
这里,获取第一命中矩阵,可以理解为候选正则表达式集合中的每一正则表达式跟现有意图表达集合中所有的意图表达一一做一次命中情况的计算。
[0064]
本申请实施例中,候选正则表达式集合中的候选正则表达式对于现有意图表达集合的第一命中矩阵为其中,表示所有新增意图的个数,
表示新增意图对应的所有候选正则表达式的总数,即各新增意图下候选正则表达式集合的最大个数,表示现有意图表达的总数。
[0065]
步骤s203,获取候选正则表达式对于新增意图表达集合的第二命中矩阵。
[0066]
这里,获取第二命中矩阵,可以理解为候选正则表达式集合中的每一正则表达式跟新增意图表达集合中所有的意图表达一一做一次命中情况的计算。
[0067]
本申请实施例中,候选正则表达式集合中的候选正则表达式对于新增意图表达集合的第二命中矩阵为其中表示新增意图对应的意图表达的总数,即各新增意图表达集合的最大个数。对于不存在的矩阵位置使用0进行填充。
[0068]
步骤s204,确定候选正则表达式集合对应的初始变量矩阵和排序权重矩阵。
[0069]
其中,初始变量矩阵用于指示每一候选正则表达式对应的分数;排序权重矩阵用于指示每一候选正则表达式对应的优先级。
[0070]
需要说明的是,本申请的始变量矩阵x在自动生成正则表达式的过程中是变化的,始变量矩阵x最终的变化结果即目标变量矩阵对应于实际保留的目标正则表达式。排序权重矩阵w是固定的,对应于期望保留的正则表达式。
[0071]
步骤s205,基于第一命中矩阵、第二命中矩阵、初始变量矩阵和排序权重矩阵,构造人工神经网络。
[0072]
本申请实施例中,初始变量矩阵用于输入人工神经网络的第二层;第一命中矩阵、第二命中矩阵和排序权重矩阵用于设置人工神经网络的第二层和人工神经网络的第三层神经元节点之间的连接权重。
[0073]
本申请将自动生成新增意图的正则表达式的过程转换为一个最优化问题的求解过程。为此,本申请提供基于人工神经网络求解最优化问题。需要说明的是,针对本申请的人工神经网络而言,可以只有人工神经网络的输入变量,以及基于第一命中矩阵、第二命中矩阵和排序权重矩阵所设置的人工神经网络的第二层和人工神经网络的第三层神经元节点之间的连接权重,没有人工神经网络的输出。本申请是借助于人工神经网络求解最优化解,不存在人工神经网络的训练。
[0074]
这里,基于第一命中矩阵、第二命中矩阵、初始变量矩阵和排序权重矩阵,构造人工神经网络,进而基于构造出的人工神经网络求得最优解,即筛选出满足条件的目标正则表达式,满足条件即对于中的每一个正则表达式寻找一个(最小,或其他带权重的约束)子集使得对所有现有意图表达的命中率尽可能低(由阈值进行约束),同时使该子集对于当前批次的所有其他新增意图表达的命中率尽可能低。
[0075]
步骤s206,确定改变初始变量矩阵以使人工神经网络的损失函数符合损失条件
时,人工神经网络的目标变量矩阵。
[0076]
本申请实施例中,利用构造人工神经网络的方式,确定出神经网络的损失函数l符合损失条件时,例如确定损失函数的最小值;从而确定当损失函数l(作为因变量)最小时对应的变量矩阵(作为自变量)即目标变量矩阵,从而最终基于这个目标变量矩阵确定出最终的正则表达式。
[0077]
步骤s207,基于目标变量矩阵,从候选正则表达式中筛选出目标正则表达式。
[0078]
本申请实施例中,基于目标变量矩阵,可以从候选正则表达式中筛选出目标正则表达式,筛选出的目标正则表达式对于命中其他意图表达(其他意图表达包括现有意图的意图表达和新增意图的意图表达)的和最小。
[0079]
本申请提供的自动生成正则表达式的方法,通过获取新增意图的意图表达对应的候选正则表达式集合;获取候选正则表达式集合中的候选正则表达式对于现有意图表达集合的第一命中矩阵;获取候选正则表达式对于新增意图表达集合的第二命中矩阵;确定候选正则表达式集合对应的初始变量矩阵和排序权重矩阵;其中,初始变量矩阵用于指示每一候选正则表达式对应的分数;排序权重矩阵用于指示每一候选正则表达式对应的优先级;基于第一命中矩阵、第二命中矩阵、初始变量矩阵和排序权重矩阵,构造人工神经网络;确定改变初始变量矩阵以使人工神经网络的损失函数符合损失条件时,人工神经网络的目标变量矩阵;基于目标变量矩阵,从候选正则表达式中筛选出目标正则表达式。可见,本申请提供的自动生成正则表达式的方法,不仅不用人工介入来生成以及维护对话机器人涉及的正则表达式,实现降低人力成本的同时也能够满足更多的业务需求,而且将人工神经网络用于求解最优化问题,实现快速从候选正则表达式集合中筛选出目标正则表达式,从而极大的减少了对话机器人的运营维护成本。
[0080]
由上述步骤s201

步骤s207可知,本申请提供的自动生成正则表达式的方法可以转换为一个最优化问题的求解过程,这个求解过程,简要可以归纳为图5所示的几个求解流程:
[0081]
步骤s301,获取输入的新增意图及意图表达。
[0082]
这里,现有意图集合为空的情况下,即对话机器人配置文件中不包含现有意图集合以及现有意图表达;此时,相当于对话机器人的意图识别模块执行初始训练。
[0083]
步骤s302,对新增意图的意图表达进行结巴分词、过滤虚词处理,进而构造正则表达式,得到候选正则表达式集合。
[0084]
步骤s303,构造候选正则表达式对应的命中矩阵。
[0085]
这里,构造候选正则表达式对应的命中矩阵,包括:构造候选正则表达式对于现有意图表达集合的第一命中矩阵,以及构造候选正则表达式对于新增意图表达集合的第二命中矩阵。
[0086]
步骤s304,构造人工神经网络。
[0087]
这里,构造人工神经网络包括设置人工神经网络的激活函数、损失函数以及网络结构。本申请构造的人工神经网络可以包括五层网络结构。
[0088]
步骤s305,通过随机梯度下降算法使损失函数最小化,并确定损失函数最小时对应的目标变量矩阵。
[0089]
步骤s306,基于目标变量矩阵从候选正则表达式集合中筛选出目标正则表达式。
[0090]
由上述可知,本申请的最优化问题的求解过程的最大的收益在于,设计并实现了一种自动化生成正则表达式的系统。由于相关技术的方案需要人工来总结并维护正则表达式,一个对话机器人的开发周期通常至少需要5个工作日,而采用本申请所设计的系统,开发一个机器人的周期缩短到了小时级别,降低人力成本的同时也能够满足更多的业务需求。需要说明的是,相关技术中借助于人工神经网络用于分类,聚类,回归等任务,然而,本申请是将人工神经网络用于求解最优化问题,从候选正则表达式集合中快速且准确的筛选出目标正则表达式。
[0091]
下面结合上述几个求解流程,对本申请提供的自动生成正则表达式的方法的实现作出进一步的说明:
[0092]
本申请考虑到正则匹配的性能问题,所有的意图表达包括现有的意图表达和新增的意图表达的量级大约在万量级,而候选的正则表达式的量级一般至少为十万量级甚至更多,本申请在构造上述两个命中矩阵的过程中,要用每一个正则表达式去处理所有的意图表达,正则计算次数在十亿次以上,非常的耗时。基于此,本申请中提出基于倒排索来引优化正则匹配效率,
[0093]
在一些实施例中,步骤s202获取候选正则表达式集合中的候选正则表达式对于现有意图表达集合的第一命中矩阵,可以通过图6所示的步骤实现:
[0094]
步骤s401,获取现有意图表达集合中的所有第一意图表达的第一倒排索引。
[0095]
其中,第一倒排索引的第一键用于指示所有第一意图表达中的词,倒排索引的第一值用于指示所有第一意图表达中的意图表达。
[0096]
这里,将现有意图表达集合的所有的意图表达放到一起,做一个切词,key1是现有意图表达集合的所有的意图表达对应的所有的词,value1是现有意图表达集合的所有的意图表达对应的所有的表达。
[0097]
步骤s402,基于第一倒排索引从所有第一意图表达中,筛选出包含候选正则表达式中的目标词的第一部分意图表达。
[0098]
本申请实施例中,基于第一倒排索引对所有第一意图表达进行筛选,筛选出包含候选正则表达式中的目标词的第一部分意图表达,从而有效缩小了正则匹配的范围,提高了正则匹配的效率。
[0099]
步骤s403,获取候选正则表达式对于第一部分意图表达的第一命中矩阵。
[0100]
这里,在得到第一部分意图表达之后,将正则表达式集合中的每一正则表达式跟第一部分意图表达一一做一次计算。
[0101]
示例性的,基于第一倒排索从100个现有意图表达里面引找到包含特定词的10个意图表达,剩余90个意图表达在第一命中矩阵中的值为0,即这些正则一定不会命中这90个意图表达;至于筛选出来的10个,需要计算一下,即对10个意图表达过一遍正则,在进行正则匹配时考虑词序即特定词之间的逻辑顺序,看能不能命中,命中为1没有命中就是0。
[0102]
在一个可实现的实施例中,对倒排索引优化匹配效率作出进一步的说明,在获得所有经过处理的意图表达例如现有意图的意图表达的词列表的情况下,比如意图1有1个意图表达:
[0103]
表达1:[“是”,“本人”];意图2有2个意图表达:表达1:[“他”,“出去”],表达2:[“不是”,“本人”]。可以构建如下的倒排索引结构:
[0104][0105]
键为现有意图的意图表达的所有的词,值为包含了这个词的所有意图表达的索引。接下来假如要计算候选正则表达式“.*不是.*本人.*”对所有现有意图的意图表达的命中情况,首先利用倒排索引查找出同时包含了“不是”和“本人”两个词的所有意图表达,发现只有“意图2_表达2”,最后只针对这条意图表达做一次正则表达,计算就完成了。本申请经过实验得出,在实际的计算过程中,通过倒排索引可以省掉大量不必要的正则表达计算即减少大量的无效匹配,可以节约40%的处理耗时。
[0106]
在一些实施例中,步骤s203获取候选正则表达式对于新增意图表达集合的第二命中矩阵,可以通过图7所示的步骤实现:
[0107]
步骤s501,获取新增意图表达集合中的所有第二意图表达的第二倒排索引。
[0108]
其中,第二倒排索引的第二键用于指示所有第二意图表达中的词,倒排索引的第二值用于指示所有第二意图表达中的意图表达。
[0109]
这里,将新增意图表达集合的所有的意图表达放到一起,做一个切词,key2是新增意图表达集合的所有的意图表达对应的所有的词,value2是新增意图表达集合的所有的意图表达对应的所有的表达。
[0110]
步骤s502,基于第二倒排索引从所有第二意图表达中,筛选出包含候选正则表达式中的目标词的第二部分意图表达。
[0111]
本申请实施例中,基于第二倒排索引对所有第二意图表达进行筛选,筛选出包含候选正则表达式中的目标词的第二部分意图表达,从而有效缩小了正则匹配的范围,提高了正则匹配的效率。
[0112]
步骤s503,获取候选正则表达式对于第二部分意图表达的第二命中矩阵。
[0113]
这里,在得到第二部分意图表达之后,将正则表达式集合中的每一正则表达式跟第二部分意图表达一一做一次计算。
[0114]
示例性的,基于第二倒排索从500个新增意图表达里面引找到包含特定词的100个意图表达,剩余400个意图表达在第二命中矩阵中的值为0,即这些正则一定不会命中这400个意图表达;至于筛选出来的100个,需要计算一下,即对100个意图表达过一遍正则,在进行正则匹配时考虑词序即特定词之间的逻辑顺序,看能不能命中,命中为1没有命中就是0。
[0115]
本申请中求解最优化的问题,由于约束较为复杂,难以用现有的线性规划方法求解。本申请考虑到如下难点:1、本申请的正则筛选粒度为最小正则表达式r
k
而非对应意图
的整体正则表达式集合r
i
,此时就存在r
i
中多个r
k
都命中同一句意图表达的情况,而对于整体的r
i
来说,这种多次命中只能算作一次(不管是哪个r
k
,命中了就可以算作其对应意图命中)。此时需采用连续的或运算进行解决。然而,线性变换难以表达这种运算。2、本申请为组合优化问题,即本申请期望最终的变量取值为0或1,要转换成连续的约束优化需要进行目标的近似。在标准线性规划无法套用,拉格朗日难以得知解析解存在性的情况下,本申请提出引入激活函数来解决以上两个难点,在解决该组合优化问题的同时可以更加直观地表述本文任务存在的约束的逻辑。
[0116]
以下对本申请引入激活函数,构造人工网络求解最优化的问题作出进一步的说明,在一些实施例中,步骤s205基于第一命中矩阵、第二命中矩阵、初始变量矩阵和排序权重矩阵,构造人工神经网络,可以通过图8所示的步骤实现:
[0117]
本申请实施例中,构造的人工神经网络共分五层结构,包含了三个部分如第一网络部分又称为网络a部分、第二网络部分又称为网络b部分和第三网络部分又称为网络c部分,三个部分分别对应三个约束条件,人工神经网络三个部分的第一层神经元节点的输入均为变量矩阵。
[0118]
由于本申请的目的是对候选正则表达式进行筛选,因此先构造变量矩阵来表示各最小正则表达式的分数。该分数越高,则越有可能采用对应的正则表达式。本申请根据需要构造一个候选正则表达式上的排序权重矩阵用以对候选正则表达式附加优先级。需要说明的是,x与m
s
同维度,x中的值为0,说明这个0位置对应的正则表达式不保留,x中的值为1说明1位置对应的正则表达式保留,也就是说,x中的值表征要不要保留某个正则表达式。
[0119]
步骤s601,基于第一命中矩阵和初始变量矩阵,构造人工神经网络的第一网络部分。
[0120]
其中,人工神经网络的第一网络部分的第一层为人工神经网络的第二层,人工神经网络的第一网络部分的第二层为人工神经网络的第三层,初始变量矩阵用于输入人工神经网络的第一网络部分的第一层。
[0121]
这里,第一网络部分指的是候选正则表达式对于现有意图表达的约束部分。第一网络部分筛选出来的正则表达式对现有意图的命中越小越好,相应的,第一网络部分对应的损失函数的值越小越好。
[0122]
步骤s602,基于第二命中矩阵和初始变量矩阵,构造人工神经网络的第二网络部分。
[0123]
其中,人工神经网络的第二网络部分的第一层为人工神经网络的第二层,人工神经网络的第二网络部分的第二层为人工神经网络的第三层,初始变量矩阵用于输入人工神经网络的第二网络部分的第一层。
[0124]
这里,第二网络部分指的是候选正则表达式对于新增意图表达的约束部分。第二网络部分筛选出来的正则表达式对新增意图的命中越小越好,相应的,第二网络部分对应的损失函数的值越小越好。
[0125]
步骤s603,基于初始变量矩阵和排序权重矩阵,构造人工神经网络的第三网络部
分。
[0126]
其中,人工神经网络的第三网络部分的第一层为人工神经网络的第二层,人工神经网络的第三网络部分的第二层为人工神经网络的第三层,初始变量矩阵用于输入人工神经网络的第三网络部分的第一层。
[0127]
这里,第三网络部分指的是候选正则表达式上的排序约束部分。相应的,排序约束部分对应的损失函数的值越小越好。
[0128]
在一个可实现的实施例中,参见图9所示,图9是本申请实施例提供的人工神经网络的架构示意图,结合图9对本申请构造的人工神经网络作出进一步的说明,如图9所示,该人工神经网络包括人工神经网络第一层、人工神经网络第二层、人工神经网络第三层、人工神经网络第四层以及人工神经网络第五层组成的五层网络结构,该人工神经网络包括三个部分如a部分、b部分以及c部分;其中,a部分第一层、b部分第一层、c部分第一层均对应于人工神经网络第二层;a部分第二层、b部分第二层、c部分第二层均对应于人工神经网络第三层。
[0129]
在一些实施例中,结合图9所示的人工神经网络的架构,对构造人工神经网络的三个部分作出进一步的说明,步骤s601基于第一命中矩阵和初始变量矩阵,构造人工神经网络的第一网络部分,可以通过如下的步骤实现:
[0130]
a11,设置人工神经网络的第一网络部分的第一层神经元节点的个数,为新增意图的总数与新增意图对应的所有候选正则表达式的总数的乘积,且设置第一网络部分的第一层神经元节点的激活函数为第一激活函数。
[0131]
本申请实施例中在设置人工神经网络的激活函数时,期望变量的最终取值为0或1(即是否保留候选的正则表达式,1为保留,0为不保留),因此,首先将变量矩阵x的值域转换到0

1之间,采用了sigmoid函数,即第一网络部分的第一激活函数选用sigmoid激活函数。
[0132]
a12,设置人工神经网络的第一网络部分的第二层神经元节点的个数,为新增意图的总数新增意图对应的所有候选正则表达式的总数以及现有意图表达的总数的乘积,且设置第一网络部分的第二层神经元节点的激活函数为第二激活函数。
[0133]
接下来,本申请在计算一个意图的候选正则表达式是否命中现有意图的意图表达时,而不论候选正则表达式命中现有意图的哪条意图表达,或者命中了多少条意图表达,都算做命中了该意图表达,这里存在大量的或运算。此处有多种激活函数供选择,参见图10所示,其中,max(0,min(x,1))为此处应采用激活函数的理想状态:对于或运算,当求和后的值大于等于1时,则函数值一直维持为1;当没有任何一项被选中时,即求和值为0时,函数值为0。从图10中可知,sigmoid函数虽然可以拟合正无穷以及负无穷时的情况,但其在0处的值为0.5;而tanh与max(0,min(x,1))更为贴近。本申请考虑到矩阵乘法后的m

是非负的,因此可以忽略tanh小于0的部分。最后根据实验分析,本申请考虑到计算效率的因素,选择tanh作为此处的激活函数,即第一网络部分的第二激活函数选用tanh激活函数。
[0134]
a13,设置人工神经网络的第一网络部分的第一层神经元节点中的第i个神经元,和人工神经网络的第一网络部分的第二层神经元节点中的第j个神经元之间的连接权重,等于第一命中矩阵中第i行第j列的位置的值。
[0135]
这里,第一网络部分的第一层神经元节点的输入为初始变量矩阵。
[0136]
由上述a11

a13可知,结合图9和图10可知,对于第一网络部分即网络a部分:第一层神经元节点的个数为激活函数为sigmoid,第二层神经元节点的个数为激活函数为tanh,第一层和第二层神经元节点之间的连接权重为矩阵
[0137]
此时,候选正则表达式对于现有意图表达的约束部分,写为损失函数如下:
[0138][0139]
在一些实施例中,步骤s602基于第二命中矩阵和初始变量矩阵,构造人工神经网络的第二网络部分,可以通过如下的步骤实现:
[0140]
b11,设置人工神经网络的第二网络部分的第一层神经元节点的个数,为所有新增意图的个数与新增意图对应的所有候选正则表达式的总数的乘积,且设置第二网络部分的第一层神经元节点的激活函数为第一激活函数。
[0141]
b12,设置人工神经网络的第二网络部分的第二层神经元节点的个数,为新增意图的总数的平方、新增意图对应的所有候选正则表达式的总数以及新增意图的意图表达的总数的乘积,且设置第二网络部分的第二层神经元节点的激活函数为第二激活函数。
[0142]
这里,对于第二网络部分的第一层神经元节点的激活函数以及第二网络部分的第二层神经元节点的激活函数的设置,与第一网络部分的第一层神经元节点的激活函数以及第一网络部分的第二层神经元节点的激活函数的设置采用类似的方式。
[0143]
b13,设置人工神经网络的第二网络部分的第一层神经元节点中的第i个神经元,和人工神经网络的第二网络部分的第二层神经元节点中的第j个神经元之间的连接权重,等于第二命中矩阵中第i行第j列的位置的值。
[0144]
这里,第二网络部分的第一层神经元节点的输入为初始变量矩阵。
[0145]
由上述b11

b13可知,结合图9和图10可知,对于第二网络部分即网络b部分:第一层神经元节点的个数为激活函数为sigmoid,第二层神经元节点的个数为激活函数为tanh,第一层和第二层神经元节点之间的连接权重为矩阵
[0146]
这里,候选正则表达式对于新增意图表达的约束:首先扩展变量矩阵x的维度为然后为了满足矩阵运算条件,需要交换矩阵的第二和第三维度,交换后的结果为此外,本申请定义一个对角线为

1,其他值均为1的矩阵这个矩阵的目的是为了约束任意新
增意图的正则表达式不要命中其他新增意图的意图表达。
[0147]
此时,候选正则表达式对于新增意图表达的约束部分,写为损失函数如下:
[0148][0149][0150]
在一些实施例中,步骤s603基于初始变量矩阵和排序权重矩阵,构造人工神经网络的第三网络部分,可以通过如下的步骤实现:
[0151]
c11,设置人工神经网络的第三网络部分的第一层神经元节点的个数,为新增意图的总数与新增意图对应的所有候选正则表达式的总数的乘积,且设置第三网络部分的第一层神经元节点的激活函数为第一激活函数。
[0152]
c12,设置人工神经网络的第三网络部分的第二层神经元节点的个数,为新增意图的总数与新增意图对应的所有候选正则表达式的总数的乘积,且设置第二网络部分的第二层神经元节点的激活函数为第二激活函数。
[0153]
c13,设置人工神经网络的第三网络部分的第一层神经元节点中的第i个神经元,和人工神经网络的第三网络部分的第二层神经元节点中的第j个神经元之间的连接权重,等于排序权重矩阵中第i行第j列的位置的值。
[0154]
这里,第三网络部分的第一层神经元节点的输入为初始变量矩阵。
[0155]
由上述c11

c13可知,结合图9和图10可知,对于第三网络部分即网络c部分:第一层神经元节点的个数为激活函数为sigmoid,第二层神经元节点的个数为激活函数为tanh,第一层和第二层神经元节点之间的连接权重为矩阵
[0156]
此时,候选正则表达式上的排序约束,写为损失函数如下:
[0157][0158]
可见,本申请实施例中,人工神经网络总的损失函数如下:
[0159][0160]
可见,本申请利用构造人工神经网络的方式,确定人工神经网络总的损失函数的最小值,从而确定当(因变量)最小时对应的目标变量矩阵(自变量),从而最终基于这个目标变量矩阵确定出目标正则表达式。
[0161]
需要说明的是,矩阵w是一个根据需求自定义的一个常数矩阵,比如,如果想收紧生成正则的泛化能力,就可以给包含关键词个数少的候选正则赋予较高的权重。
[0162]
基于上述内容可知,本申请通过随机初始化一个变量矩阵x,输入人工神经网络经过运算后,得到的值,采用随机梯度下降算法,学习率104进行训练,最后得到一个值为0或1的目标变量矩阵x,保留值为1对应的候选正则表达式,即为最后新增意图的目标正则表达式。
[0163]
下面继续说明本申请实施例提供的自动生成正则表达式的装置154实施为软件模
块的示例性结构,在一些实施例中,如图1所示,存储在存储器150的自动生成正则表达式的装置154中的软件模块可以是服务器100中的自动生成正则表达式的装置,包括:
[0164]
获取模块1541,用于获取新增意图的意图表达对应的候选正则表达式集合;获取候选正则表达式集合中的候选正则表达式对于现有意图表达集合的第一命中矩阵;获取候选正则表达式对于新增意图表达集合的第二命中矩阵;
[0165]
处理模块1542,用于确定候选正则表达式集合对应的初始变量矩阵和排序权重矩阵;其中,初始变量矩阵用于指示每一候选正则表达式对应的分数;排序权重矩阵用于指示每一候选正则表达式对应的优先级;基于第一命中矩阵、第二命中矩阵、初始变量矩阵和排序权重矩阵,构造人工神经网络;确定改变初始变量矩阵以使人工神经网络的损失函数符合损失条件时,人工神经网络的目标变量矩阵;基于目标变量矩阵,从候选正则表达式中筛选出目标正则表达式。
[0166]
在一些实施例中,获取模块1541,用于获取现有意图表达集合中的所有第一意图表达的第一倒排索引;其中,第一倒排索引的第一键用于指示所有第一意图表达中的词,倒排索引的第一值用于指示所有第一意图表达中的意图表达;
[0167]
处理模块1542,用于基于第一倒排索引从所有第一意图表达中,筛选出包含候选正则表达式中的目标词的第一部分意图表达;
[0168]
获取模块1541,用于获取候选正则表达式对于第一部分意图表达的第一命中矩阵。其中,初始变量矩阵用于输入人工神经网络的第二层;第一命中矩阵、第二命中矩阵和排序权重矩阵用于设置人工神经网络的第二层和人工神经网络的第三层神经元节点之间的连接权重。
[0169]
在一些实施例中,获取模块1541,用于获取新增意图表达集合中的所有第二意图表达的第二倒排索引;其中,第二倒排索引的第二键用于指示所有第二意图表达中的词,倒排索引的第二值用于指示所有第二意图表达中的意图表达;
[0170]
处理模块1542,用于基于第二倒排索引从所有第二意图表达中,筛选出包含候选正则表达式中的目标词的第二部分意图表达;
[0171]
获取模块1541,用于获取候选正则表达式对于第二部分意图表达的第二命中矩阵。
[0172]
在一些实施例中,处理模块1542,用于基于第一命中矩阵和初始变量矩阵,构造人工神经网络的第一网络部分;其中,人工神经网络的第一网络部分的第一层为人工神经网络的第二层,人工神经网络的第一网络部分的第二层为人工神经网络的第三层,初始变量矩阵用于输入人工神经网络的第一网络部分的第一层;
[0173]
基于第二命中矩阵和初始变量矩阵,构造人工神经网络的第二网络部分;其中,人工神经网络的第二网络部分的第一层为人工神经网络的第二层,人工神经网络的第二网络部分的第二层为人工神经网络的第三层,初始变量矩阵用于输入人工神经网络的第二网络部分的第一层;
[0174]
基于初始变量矩阵和排序权重矩阵,构造人工神经网络的第三网络部分其中,人工神经网络的第三网络部分的第一层为人工神经网络的第二层,人工神经网络的第三网络部分的第二层为人工神经网络的第三层,初始变量矩阵用于输入人工神经网络的第三网络部分的第一层。
[0175]
在一些实施例中,处理模块1542,用于设置人工神经网络的第一网络部分的第一层神经元节点的个数,为新增意图的总数与新增意图对应的所有候选正则表达式的总数的乘积,且设置第一网络部分的第一层神经元节点的激活函数为第一激活函数:
[0176]
处理模块1542,用于设置人工神经网络的第一网络部分的第二层神经元节点的个数,为新增意图的总数新增意图对应的所有候选正则表达式的总数以及现有意图表达的总数的乘积,且设置第一网络部分的第二层神经元节点的激活函数为第二激活函数;
[0177]
处理模块1542,用于设置人工神经网络的第一网络部分的第一层神经元节点中的第i个神经元,和人工神经网络的第一网络部分的第二层神经元节点中的第j个神经元之间的连接权重,等于第一命中矩阵中第i行第j列的位置的值其中,第一网络部分的第一层神经元节点的输入为初始变量矩阵。
[0178]
在一些实施例中,处理模块1542,用于设置人工神经网络的第二网络部分的第一层神经元节点的个数,为所有新增意图的个数与新增意图对应的所有候选正则表达式的总数的乘积,且设置第二网络部分的第一层神经元节点的激活函数为第一激活函数;
[0179]
处理模块1542,用于设置人工神经网络的第二网络部分的第二层神经元节点的个数,为新增意图的总数的平方、新增意图对应的所有候选正则表达式的总数以及新增意图的意图表达的总数的乘积,且设置第二网络部分的第二层神经元节点的激活函数为第二激活函数;
[0180]
处理模块1542,用于设置人工神经网络的第二网络部分的第一层神经元节点中的第i个神经元,和人工神经网络的第二网络部分的第二层神经元节点中的第j个神经元之间的连接权重,等于第二命中矩阵中第i行第j列的位置的值;其中,第二网络部分的第一层神经元节点的输入为初始变量矩阵。
[0181]
在一些实施例中,处理模块1542,用于设置人工神经网络的第三网络部分的第一层神经元节点的个数,为新增意图的总数与新增意图对应的所有候选正则表达式的总数的乘积,且设置第三网络部分的第一层神经元节点的激活函数为第一激活函数;
[0182]
处理模块1542,用于设置人工神经网络的第三网络部分的第二层神经元节点的个数,为新增意图的总数与新增意图对应的所有候选正则表达式的总数的乘积,且设置第二网络部分的第二层神经元节点的激活函数为第二激活函数;
[0183]
处理模块1542,用于设置人工神经网络的第三网络部分的第一层神经元节点中的第i个神经元,和人工神经网络的第三网络部分的第二层神经元节点中的第j个神经元之间的连接权重,等于排序权重矩阵中第i行第j列的位置的值;其中,第三网络部分的第一层神经元节点的输入为初始变量矩阵。
[0184]
在一些实施例中,处理模块1542,用于计算所述第一网络部分对应的第一损失函数
[0185]
其中,所述第一损失函数用于表征所述候选正则表达式对于现有意图表达的命中信息;x为所述初始变量矩阵,所述为所述新增意图的总数,为所述候选正则表达式的总数,为所述现有意图表达的总数,所述第一命中矩阵为m
s

[0186]
计算所述第二网络部分对应的第二损失函数sigmoid()和tanh()为激活函数;
[0187][0187]
其中,所述第二损失函数用于表征所述候选正则表达式对于新增意图表达的命中信息;所述第二命中矩阵为所述e为对角线位置的值为

1,剩余值均为1的矩阵;所述x

为扩展变量矩阵x的维度得到的矩阵;

为矩阵点乘运算符号,为m
s
的变换矩阵;
[0188]
计算所述第三网络部分对应的第三损失函数
[0189]
其中,所述第三损失函数用于表征所述候选正则表达式中各个候选表达式的排序优先级;所述w为所述排序权重矩阵;
[0190]
计算所述第一损失函数、所述第二损失函数和所述第三损失函数之和,得到所述人工神经网络的损失函数
[0191][0192]
获取改变所述x的过程中,所述的最小值,并确定所述的最小值对应的改变后的x为所述目标变量矩阵。
[0193]
本申请提供的自动生成正则表达式的装置,通过获取新增意图的意图表达对应的候选正则表达式集合;获取候选正则表达式集合中的候选正则表达式对于现有意图表达集合的第一命中矩阵;获取候选正则表达式对于新增意图表达集合的第二命中矩阵;确定候选正则表达式集合对应的初始变量矩阵和排序权重矩阵;其中,初始变量矩阵用于指示每一候选正则表达式对应的分数;排序权重矩阵用于指示每一候选正则表达式对应的优先级;基于第一命中矩阵、第二命中矩阵、初始变量矩阵和排序权重矩阵,构造人工神经网络;确定改变初始变量矩阵以使人工神经网络的损失函数符合损失条件时,人工神经网络的目标变量矩阵;基于目标变量矩阵,从候选正则表达式中筛选出目标正则表达式。可见,本申请提供的自动生成正则表达式的方法,不仅不用人工介入来生成以及维护对话机器人涉及的正则表达式,实现降低人力成本的同时也能够满足更多的业务需求,而且将人工神经网络用于求解最优化问题,实现快速从候选正则表达式集合中筛选出目标正则表达式,从而极大的减少了对话机器人的运营维护成本。
[0194]
需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
[0195]
本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图2、图6、图7和图8示出的方法。
[0196]
在一些实施例中,存储介质可以是计算机可读存储介质,例如,铁电存储器(fram,ferromagnetic random access memory)、只读存储器(rom,read only memory)、可编程只读存储器(prom,programmable read only memory)、可擦除可编程只读存储器(eprom,erasable programmable read only memory)、带电可擦可编程只读存储器(eeprom,electrically erasable programmable read only memory)、闪存、磁表面存储器、光盘、或光盘只读存储器(cd

rom,compact disk

read only memory)等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
[0197]
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
[0198]
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(超文本标记语言,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
[0199]
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1