基于正则匹配的文本识别方法、文本识别装置和电子设备与流程

文档序号:24485320发布日期:2021-03-30 21:09阅读:207来源:国知局
基于正则匹配的文本识别方法、文本识别装置和电子设备与流程

本申请涉及文本识别技术领域,具体而言,涉及一种基于正则匹配的文本识别方法、文本识别装置和电子设备。



背景技术:

正则匹配是指,判断待匹配的文本是否符合指定的正则表达式的过程。其中,在进行匹配之前,一般会根据正则表达式创建确定有限状态自动机(deterministicfiniteautomaton,dfa),确定有限状态自动机由状态节点和转移边构成,每个状态节点拥有一个或多个转移边,这些转移边指示了在当前状态下,输入一个字符后转移到的下一个状态。如此,将待匹配文本的每一个字符逐一放入确定有限状态自动机中,从确定有限状态自动机的初始状态节点开始,每放入一个字符,就与当前状态节点的转移边上的字符进行比较,得出要跳转到的下一个状态节点。

其中,在用c++代码描述一个确定型有限自动机时,定义state来表示状态节点,每个状态节点中可能含有多条转移边,定义结构体edge来表示转移边,edge中以一个变量accept_character表示输入字符,再用一个变量next_state表示跳转到的下一个状态节点的序号,且一个state中包含的多个edge的accept_character是不同的,在匹配时,输入一个字符后,需要比较此字符与当前state的哪一个edge的accept_character相同,并跳转到这个edge指向的next_state,当文本和规则中的字符均以定长编码表示时,每次输入一个字符是容易的。但是,当文本和规则中的字符以变长编码表示时,如utf-8编码,一个字符可能为1、2、3或者4个字节,accept_character不能再直接定义为char或者wchar_t类型,基于此,需要提前将utf-8的正则表达式和文本内容都转换为unicode码表示,再进行正则匹配。

但是,经发明人研究发现,在上述技术中存在着资源浪费的问题。



技术实现要素:

有鉴于此,本申请的目的在于提供一种基于正则匹配的文本识别方法、文本识别装置和电子设备,以改善现有的文本识别技术中存在的资源浪费的问题。

为实现上述目的,本申请实施例采用如下技术方案:

一种基于正则匹配的文本识别方法,包括:

获取待识别文本,其中,该待识别文本包括至少一个待识别字符,且该待识别字符基于变长编码表示;

在所述至少一个待识别字符中确定一个目标待识别字符,并将该目标待识别字符转换为目标进制的目标数字;

基于预先得到的确定有限状态自动机对所述目标数字进行匹配处理,其中,该确定有限状态自动机基于对目标正则表达式进行处理得到,且该确定有限状态自动机中每一条转移边对应的字符基于所述目标进制表示;

若所述目标数字匹配失败,则停止对所述待识别文本进行匹配处理。

在本申请实施例较佳的选择中,在上述基于正则匹配的文本识别方法中,所述待识别字符为多个,该方法还包括:

步骤a,若所述目标数字匹配成功,则在所述目标待识别字符以外的其他待识别字符中,确定一个新的目标待识别字符;

步骤b,将所述新的目标待识别字符转换为所述目标进制的新的目标数字,并基于所述确定有限状态自动机对该新的目标数字进行匹配处理;

步骤c,若所述新的目标数字匹配成功,则在该新的目标数字和所述目标待识别字符以外的其他待识别字符中,再次确定一个新的目标待识别字符,并基于该新的目标待识别字符再次执行步骤b;

步骤d,若所述新的目标数字匹配失败,则停止对所述待识别文本进行匹配处理。

在本申请实施例较佳的选择中,在上述基于正则匹配的文本识别方法中,所述将该目标待识别字符转换为目标进制的目标数字的步骤,包括:

确定所述目标待识别字符的字节长度;

基于所述字节长度对应的转换规则,将所述目标待识别字符转换为目标进制的目标数字。

在本申请实施例较佳的选择中,在上述基于正则匹配的文本识别方法中,所述确定所述目标待识别字符的字节长度的步骤,包括:

确定所述目标待识别字符对应的目标位是否为0,其中,该目标位为该目标待识别字符在内存中以二进制形式存储的第一个字节的最高位;

若所述目标位为0,则确定所述目标待识别字符的字节长度为1;

若所述目标位为1,则确定所述目标待识别字符的字节长度为该目标待识别字符的目标位数,其中,该目标位数为该目标待识别字符在内存中以二进制形式存储的多位二进制数据中连续为1的位数。

在本申请实施例较佳的选择中,在上述基于正则匹配的文本识别方法中,所述基于所述字节长度对应的转换规则,将所述目标待识别字符转换为目标进制的目标数字的步骤,包括:

判断所述字节长度是否大于字节预设长度;

若所述字节长度小于或等于所述字节预设长度,则将所述目标待识别字符在内存中以二进制形式存储的第一个字节转换为目标进制,得到该目标待识别字符对应的目标数字;

若所述字节长度大于所述字节预设长度,则对所述目标待识别字符在内存中以二进制形式存储的每一个字节进行二进制数据删除处理,并将保留的二进制数据转换为目标进制,得到该目标待识别字符对应的目标数字。

在本申请实施例较佳的选择中,在上述基于正则匹配的文本识别方法中,所述对所述目标待识别字符在内存中以二进制形式存储的每一个字节进行二进制数据删除处理的步骤,包括:

针对所述目标待识别字符在内存中以二进制形式存储的第一个字节,将该第一个字节中最高的目标长度位二进制数据删除,其中,该目标长度位等于所述字节长度加1;

针对所述目标待识别字符在内存中以二进制形式存储的第一个字节以外的每一个字节,将该字节中最高的2位二进制数据删除。

在本申请实施例较佳的选择中,在上述基于正则匹配的文本识别方法中,还包括确定所述确定有限状态自动机的步骤,该步骤包括:

确定所述目标正则表达式是否具有目标运算符,其中,该目标运算符用于进行并运算处理;

若所述目标正则表达式具有所述目标运算符,则将该目标运算符对应的每一个字符转换为所述目标进制,得到每一个字符对应的目标进制数字;

基于每一个字符对应的目标进制数字进行区间转换处理,得到对应的目标区间,并基于该目标区间对所述目标正则表达式进行更新处理,得到更新后的目标正则表达式;

基于所述更新后的目标正则表达式,生成对应的确定有限状态自动机。

本申请实施例还提供了一种基于正则匹配的文本识别装置,包括:

文本获取模块,用于获取待识别文本,其中,该待识别文本包括至少一个待识别字符,且该待识别字符基于变长编码表示;

字符转换模块,用于在所述至少一个待识别字符中确定一个目标待识别字符,并将该目标待识别字符转换为目标进制的目标数字;

数字匹配模块,用于基于预先得到的确定有限状态自动机对所述目标数字进行匹配处理,其中,该确定有限状态自动机基于对目标正则表达式进行处理得到,且该确定有限状态自动机中每一条转移边对应的字符基于所述目标进制表示;

匹配停止模块,用于在所述目标数字匹配失败时,停止对所述待识别文本进行匹配处理。

在本申请实施例较佳的选择中,在基于正则匹配的文本识别装置中,所述字符转换模块包括:

字节长度确定子模块,用于确定所述目标待识别字符的字节长度;

待识别字符转换子模块,用于基于所述字节长度对应的转换规则,将所述目标待识别字符转换为目标进制的目标数字。

在上述基础上,本申请实施例还提供了一种电子设备,包括:

存储器,用于存储计算机程序;

与所述存储器连接的处理器,用于执行该存储器存储的计算机程序,以实现上述的基于正则匹配的文本识别方法。

本申请提供的基于正则匹配的文本识别方法、文本识别装置和电子设备,通过将待识别文本包括的至少一个待识别字符中的一个目标待识别字符转换为目标进制的目标数字,使得可以基于预先得到的确定有限状态自动机对所述目标数字进行匹配处理,然后,在匹配失败时,停止对待识别文本进行匹配处理。如此,可以避免直接将全部的待识别字符转换为目标数字而导致需要占用较多的内存资源的问题,从而改善现有的文本识别技术中存在的资源浪费的问题,具有较高的实用价值。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

图1为本申请实施例提供的电子设备的结构框图。

图2为本申请实施例提供的基于正则匹配的文本识别方法包括的各步骤的流程示意图。

图3为图2中步骤s120包括的子步骤的流程示意图。

图4为本申请实施例提供的基于正则匹配的文本识别方法包括获得确定有限状态自动机的步骤的流程示意图。

图5为本申请实施例提供的基于正则匹配的文本识别方法包括的其他步骤的流程示意图。

图6为本申请实施例提供的基于正则匹配的文本识别装置包括的各功能模块的方框示意图。

图标:10-电子设备;12-存储器;14-处理器;100-基于正则匹配的文本识别装置;110-文本获取模块;120-字符转换模块;130-数字匹配模块;140-匹配停止模块。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本申请的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

如图1所示,本申请实施例提供了一种电子设备10,可以包括存储器12、处理器14和基于正则匹配的文本识别装置100。

其中,所述存储器12和处理器14之间直接或间接地电性连接,以实现数据的传输或交互。例如,相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述基于正则匹配的文本识别装置100包括至少一个可以软件或固件(firmware)的形式存储于所述存储器12中的软件功能模块。所述处理器14用于执行所述存储器12中存储的可执行的计算机程序,例如,所述基于正则匹配的文本识别装置100所包括的软件功能模块及计算机程序等,以实现本申请实施例提供的基于正则匹配的文本识别方法。

可选地,所述存储器12可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。

并且,所述处理器14可以是一种通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)、片上系统(systemonchip,soc)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

可以理解,图1所示的结构仅为示意,所述电子设备10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置,例如,还可以包括用于与其它设备(例如,在该电子设备10为后台服务器时,该其它设备可以为手机、电脑等终端设备)进行信息交互的通信单元(例如,可以通过该通信单元从该其它设备获取待识别文本,或者将待识别文本的识别结果发送给该其它设备)。

结合图2,本申请实施例还提供一种基于正则匹配的文本识别方法,可应用于上述电子设备10。其中,所述文本识别方法有关的流程所定义的方法步骤可以由所述电子设备10实现。

下面将对图2所示的具体流程,进行详细阐述。

步骤s110,获取待识别文本。

在本实施例中,在需要对待识别文本进行识别时,所述电子设备10可以获取该待识别文本。其中,该待识别文本可以包括至少一个待识别字符,且该待识别字符可以基于变长编码(变长编码是指,非规整型操作码的长度不定,且分散在指令字的不同位置上的编码)表示。

步骤s120,在所述至少一个待识别字符中确定一个目标待识别字符,并将该目标待识别字符转换为目标进制的目标数字。

在本实施例中,在基于步骤s110获取到所述待识别文本之后,所述电子设备10可以在该待识别文本包括的至少一个待识别字符中,确定一个待识别字符,并将该待识别字符作为目标待识别字符,然后,再将该目标待识别字符转换为目标进制(该目标进制不属于二进制)的目标数字。

步骤s130,基于预先得到的确定有限状态自动机对所述目标数字进行匹配处理。

在本实施例中,在基于步骤s120得到所述目标数字之后,所述电子设备10可以基于预先得到的确定有限状态自动机,对该目标数字进行匹配处理,如此,可以得到该目标数字对应的匹配结果。

其中,所述确定有限状态自动机基于对目标正则表达式进行处理得到,且该确定有限状态自动机中每一条转移边对应的字符基于所述目标进制表示。并且,若所述匹配结果为所述目标数字匹配失败,可以执行步骤s140。

步骤s140,停止对所述待识别文本进行匹配处理。

在本实施例中,在基于步骤s130确定所述目标数字匹配失败之后,所述电子设备10可以停止对所述待识别文本进行匹配处理。

基于上述方法,由于在所述目标待识别字符对应的目标数字匹配失败时,就停止对所述待识别文本进行匹配处理,使得可以避免直接将全部的待识别字符转换为目标数字而导致需要占用较多的内存资源的问题,从而改善现有的文本识别技术中存在的资源浪费的问题,具有较高的实用价值。

第一方面,对于步骤s110需要说明的是,所述待识别文本中的待识别字符基于变长编码表示时,具体的编码规则不受限制。

例如,在一种可以替代的示例中,所述待识别字符可以基于utf-8编码(一种用于将宽字符值转换为字节流的unicode的标准机制)表示。

第二方面,对于步骤s120需要说明的是,确定一个所述目标待识别字符的具体方式不受限制,可以根据实际应用需求进行选择。

例如,在一种可以替代的示例中,可以在所述至少一个待识别字符中随机确定一个待识别字符,作为目标待识别字符。

又例如,在另一种可以替代的示例中,可以按照所述至少一个待识别字符中每一个待识别字符的先后顺序,确定一个待识别字符,如将第一个(首位的)待识别字符作为目标待识别字符。

并且,对于步骤s120还需要说明的是,将所述目标待识别字符转换为目标进制的目标数字的具体方式不受限制,可以根据实际需求进行选择。

例如,在一种可以替代的示例中,可以按照预先确定的一种转换规则,对所述目标待识别字符进行转换处理,得到对应的目标数字。

又例如,在另一种可以替代的示例中,结合图3,步骤s120可以包括步骤s121和步骤s122,具体内容如下所述。

步骤s121,确定所述目标待识别字符的字节长度。

在本实施例中,在基于步骤s110获得所述待识别文本,并基于前述的步骤确定目标待识别字符之后,可以确定该目标待识别字符的字节长度。

步骤s122,基于所述字节长度对应的转换规则,将所述目标待识别字符转换为目标进制的目标数字。

在本实施例中,在基于步骤s121确定所述字节长度之后,可以基于该字节长度对应转换规则,将所述目标待识别字符转换为目标进制的目标数字。如此,使得可以对具有不同字节长度的目标待识别字符进行有针对性的转换处理,从而保证得到的目标数字能够有效地代表该目标待识别字符。

可选地,在上述示例中,基于步骤s121以确定所述字节长度的具体方式不受限制,可以根据实际应用需求进行选择。

例如,在一种可以替代的示例中,为了能够使得确定的字节长度具有较高的可靠度,从而保证基于该字节长度对应的转换规则能够进行有效的转换处理,步骤s121可以包括以下步骤:

首先,确定所述目标待识别字符对应的目标位是否为0,其中,该目标位为该目标待识别字符在内存中以二进制形式存储的第一个字节的最高位;其次,若所述目标位为0,则确定所述目标待识别字符的字节长度为1;然后,若所述目标位为1,则确定所述目标待识别字符的字节长度为该目标待识别字符的目标位数,其中,该目标位数为该目标待识别字符在内存中以二进制形式存储的多位二进制数据中连续为1的位数。

对于上述步骤,在一种具体的应用示例中,若所述目标待识别字符为“a”,“a”在内存中以二进制形式表示为“01100001”,则该目标待识别字符的第一个字节的最高位为0,使得确定的字节长度为1。若所述目标待识别字符“我”,“我”在内存中以二进制形式表示为“111001101000100010010001”,则该目标待识别字符的第一个字节的最高位为1,且从该最高位开始,连续为1的位数为3,使得确定的字节长度为3。

可选地,在上述示例中,基于步骤s122以将所述目标待识别字符转换为目标进制的目标数字的具体方式不受限制,可以根据实际应用需求选择。

例如,在一种可以替代的示例中,为了保证转换得到的目标数字能够有效地代表所述目标待识别字符,步骤s122可以包括以下步骤:

首先,判断所述字节长度是否大于字节预设长度;若所述字节长度小于或等于所述字节预设长度,将所述目标待识别字符在内存中以二进制形式存储的第一个字节转换为目标进制,得到该目标待识别字符对应的目标数字;若所述字节长度大于所述字节预设长度,对所述目标待识别字符在内存中以二进制形式存储的每一个字节进行二进制数据删除处理,并将保留的二进制数据转换为目标进制,得到该目标待识别字符对应的目标数字。

对于上述步骤,在一种具体的应用示例中,如前述的示例,所述目标待识别字符在内存中以二进制形式表示为“01100001”,对应的字节长度为1,若所述字节预设长度为1,则将第一个字节“01100001”转换为目标进制,如转换为十进制,得到目标数字为97。

也就是说,可以用数字“97”来代表字符“a”。

可以理解的是,在所述字节长度大于所述字节预设长度时,进行二进制数据删除处理的具体方式不受限制,可以根据实际应用需求进行选择。

例如,在一种可以替代的示例中,可以基于以下步骤对目标待识别字符在内存中以二进制形式存储的每一个字节进行二进制数据删除处理:

首先,针对所述目标待识别字符在内存中以二进制形式存储的第一个字节,将该第一个字节中最高的目标长度位二进制数据删除,其中,该目标长度位等于所述字节长度加1;其次,针对所述目标待识别字符在内存中以二进制形式存储的第一个字节以外的每一个字节,将该字节中最高的2位二进制数据删除。

对于上述步骤,在一种具体的应用示例中,如前述的示例,所述目标待识别字符在内存中以二进制形式表示为“111001101000100010010001”,对应的字节长度为3,若所述字节预设长度为1,即所述字节长度大于所述字节预设长度,如此,所述目标长度可以为3+1=4,使得可以将第一个字节“11100110”中的最高的4位二进制数据删除,得到“0110”;将第二个字节“10001000”中的最高的2位二进制数据删除,得到“001000”;将第二个字节“10010001”中的最高的2位二进制数据删除,得到“010001”。

基于此,“将保留的二进制数据转换为目标进制”是指,将“0110001000010001”转换为目标进制,如转换为十进制,得到目标数字为25105。

也就是说,可以用数字“25105”来代表字符“我”。

第三方面,对于步骤s130需要说明的是,为了保证步骤s130的有效执行,还需要先获得所述确定有限状态自动机。结合图4,获得所述确定有限状态自动机的步骤,可以包括步骤s151、步骤s152、步骤s153和步骤s154,具体内容如下所述。

步骤s151,确定所述目标正则表达式是否具有目标运算符。

在本实施例中,在需要基于步骤s130进行匹配处理之前,还需要先确定用于进行匹配处理的目标正则表达式是否具有目标运算符。

其中,所述目标运算符用于进行并运算处理,例如,元字符“.”,该元字符表示使用字母表中的除换行符以外的所有字符进行并运算。并且,在所述目标正则表达式具有所述目标运算符时,可以执行步骤s152。

步骤s152,将所述目标运算符对应的每一个字符转换为所述目标进制,得到每一个字符对应的目标进制数字。

在本实施例中,由于在步骤s120中已经将所述目标待识别字符转换为目标进制的目标数字,因而,为了使得匹配处理的有效进行,在基于步骤s151确定所述目标正则表达式具有所述目标运算符时,可以将该目标运算符对应的每一个字符转换为所述目标进制,如此,可以得到每一个字符对应的目标进制数字。

步骤s153,基于每一个字符对应的目标进制数字进行区间转换处理,得到对应的目标区间,并基于该目标区间对所述目标正则表达式进行更新处理,得到更新后的目标正则表达式。

在本实施例中,在基于步骤s152得到每一个字符对应的目标进制数字之后,可以基于每一个字符对应的目标进制数字进行区间转换处理,得到对应的目标区间。然后,再基于该目标区间对所述目标正则表达式进行更新处理,得到更新后的目标正则表达式。

例如,对于数值上不连续的单个字符“a”,可以用对应的数字“97”分别作为目标区间的上限值和下限值,得到[97,97]。又例如,对于多个在数值上连续的字符,且多个字符之间是并运算的关系,如“a|b|c”,可以表示为[97,99]。再例如,由于换行符对应的十进制数据为“11”,对于元字符“.”,可以表示为[0,10]∪[12,max],其中,max表示对应字母表中的最大值,如ascii码对应字母表中的最大值为255。

步骤s154,基于所述更新后的目标正则表达式,生成对应的确定有限状态自动机。

在本实施例中,在基于步骤s153得到所述更新后的目标正则表达式之后,可以基于该更新后的目标正则表达式,生成对应的确定有限状态自动。

基于此,由于采用区间表示法对并运输进行处理,可以避免在生成自动机是由于需要配置较多的转移边而使得需要对应配置较多的状态节点的问题,使得可以有效避免状态节点数爆炸的问题。

可选地,在上述示例中,基于步骤s154生成对应的确定有限状态自动机的具体方式不受限制,可以根据实际应用需求进行选择。

例如,在一种可以替代的示例中,可以先基于thompson构造法构造一个与所述更新后的目标正则表达式等价的nfa(非确定有限状态自动机,是对每一个状态和输入符号对可以有多个可能的下一个状态的有限状态自动机),然后,可以基于子集构造法将该nfa转换为dfa(即确定有限状态自动机,具有唯一确定的下一个可能状态)。

第四方面,对于步骤s130还需要说明的是,在上述示例中,说明了基于步骤s130确定所述目标数字匹配失败之后,可以执行步骤s140以停止对所述待识别文本进行匹配处理,如此,可以避免资源浪费的问题。其中,若基于步骤s130确定所述目标数字匹配成功,可以继续对其它待识别字符进行匹配处理,以完成对所述待识别文本的识别匹配。

基于此,结合图5,所述基于正则匹配的文本识别方法还可以包括步骤s160、步骤s170、步骤s180和步骤s190,具体内容如下所述。

步骤s160,在所述目标待识别字符以外的其他待识别字符中,确定一个新的目标待识别字符。

在本实施例中,在基于步骤s130得到的匹配结果为所述目标数字匹配成功时,所述电子设备10可以在所述待识别文本包括的多个待识别字符中,选择一个所述目标待识别字符以外的其他待识别字符(例如,该目标待识别字符的下一个待识别字符,也就是说,若该目标待识别字符为所述待识别文本中的第一个字符,该其他待识别字符为该待识别文本中的第二个字符),并将该其他待识别字符确定为新的目标待识别字符。

步骤s170,将所述新的目标待识别字符转换为所述目标进制的新的目标数字,并基于所述确定有限状态自动机对该新的目标数字进行匹配处理。

在本实施例中,在基于步骤s160确定所述新的目标待识别字符之后,所述电子可以将该新的目标待识别字符转换为所述目标进制的新的目标数字,然后,可以基于所述确定有限状态自动机对该新的目标数字进行匹配处理(其中,具体的处理过程,可以参照前文对步骤s120和步骤s130的相关内容的解释说明,在此不再一一赘述)。

并且,若对所述新的目标数字进行匹配处理的结果为该新的目标数字匹配成功,可以执行步骤s180;反之,若对所述新的目标数字进行匹配处理的结果为该新的目标数字匹配失败,可以执行步骤s190。

步骤s180,在所述新的目标待识别字符和所述目标待识别字符以外的其他待识别字符中,再次确定一个新的目标待识别字符。

在本实施例中,在基于步骤s170得到所述新的目标数字匹配成功的结果之后,所述电子设备10可以在所述待识别文本包括的多个待识别字符中,选择一个所述新的目标待识别字符和所述目标待识别字符以外的其他待识别字符,并将该其他待识别字符确定为新的目标待识别字符。然后,可以基于该新的目标待识别字符再次执行步骤170,如此循环,在每一次都匹配成功时,可以使得所述待识别文本包括的多个待识别字符都被匹配处理。

步骤s190,停止对所述待识别文本进行匹配处理。

在本实施例中,在基于步骤s170得到所述新的目标数字匹配失败的结果之后,所述电子设备10可以停止对所述待识别文本进行匹配处理,使得可以不用对其他待识别字符进行转换处理,有效避免资源浪费的问题。

结合图6,本申请实施例还提供一种基于正则匹配的文本识别装置100,可应用于上述电子设备10。其中,所述基于正则匹配的文本识别装置100可以包括文本获取模块110、字符转换模块120、数字匹配模块130和匹配停止模块140。

所述文本获取模块110,可以用于获取待识别文本,其中,该待识别文本包括至少一个待识别字符,且该待识别字符基于变长编码表示。在本实施例中,所述文本获取模块110可用于执行图2所示的步骤s110,关于所述文本获取模块110的相关内容可以参照前文对步骤s110的描述。

所述字符转换模块120,可以用于在所述至少一个待识别字符中确定一个目标待识别字符,并将该目标待识别字符转换为目标进制的目标数字。在本实施例中,所述字符转换模块120可用于执行图2所示的步骤s120,关于所述字符转换模块120的相关内容可以参照前文对步骤s120的描述。

所述数字匹配模块130,可以用于基于预先得到的确定有限状态自动机对所述目标数字进行匹配处理,其中,该确定有限状态自动机基于对目标正则表达式进行处理得到,且该确定有限状态自动机中每一条转移边对应的字符基于所述目标进制表示。在本实施例中,所述数字匹配模块130可用于执行图2所示的步骤s130,关于所述数字匹配模块130的相关内容可以参照前文对步骤s130的描述。

所述匹配停止模块140,可以用于在所述目标数字匹配失败时,停止对所述待识别文本进行匹配处理。在本实施例中,所述匹配停止模块140可用于执行图2所示的步骤s140,关于所述匹配停止模块140的相关内容可以参照前文对步骤s140的描述。

可选地,在一种可以替代的示例中,所述字符转换模块120可以包括字节长度确定子模块和待识别字符转换子模块。

详细地,所述字节长度确定子模块,用于确定所述目标待识别字符的字节长度。所述待识别字符转换子模块,用于基于所述字节长度对应的转换规则,将所述目标待识别字符转换为目标进制的目标数字。

综上所述,本申请提供的基于正则匹配的文本识别方法、文本识别装置和电子设备,通过将待识别文本包括的至少一个待识别字符中的一个目标待识别字符转换为目标进制的目标数字,使得可以基于预先得到的确定有限状态自动机对所述目标数字进行匹配处理,然后,在匹配失败时,停止对待识别文本进行匹配处理。如此,可以避免直接将全部的待识别字符转换为目标数字而导致需要占用较多的内存资源的问题,从而改善现有的文本识别技术中存在的资源浪费的问题,具有较高的实用价值。

在本申请实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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