基于正则匹配的文本识别方法、文本识别装置和电子设备制造方法及图纸

技术编号:27879234 阅读:25 留言:0更新日期:2021-03-31 01:09
本申请提供的基于正则匹配的文本识别方法、文本识别装置和电子设备,涉及文本识别技术领域。在本申请中,首先,获取待识别文本,其中,待识别文本包括至少一个基于变长编码表示的待识别字符。其次,在至少一个待识别字符中确定一个目标待识别字符,并将目标待识别字符转换为目标进制的目标数字。然后,基于确定有限状态自动机对目标数字进行匹配处理,其中,确定有限状态自动机基于对目标正则表达式进行转换处理得到,且确定有限状态自动机中每一条转移边对应的字符基于目标进制表示。最后,若目标数字匹配失败,则停止对待识别文本进行匹配处理。基于上述方法,可以改善现有的文本识别技术中存在的资源浪费的问题。

【技术实现步骤摘要】
基于正则匹配的文本识别方法、文本识别装置和电子设备
本申请涉及文本识别
,具体而言,涉及一种基于正则匹配的文本识别方法、文本识别装置和电子设备。
技术介绍
正则匹配是指,判断待匹配的文本是否符合指定的正则表达式的过程。其中,在进行匹配之前,一般会根据正则表达式创建确定有限状态自动机(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.一种基于正则匹配的文本识别方法,其特征在于,包括:/n获取待识别文本,其中,该待识别文本包括至少一个待识别字符,且该待识别字符基于变长编码表示;/n在所述至少一个待识别字符中确定一个目标待识别字符,并将该目标待识别字符转换为目标进制的目标数字;/n基于预先得到的确定有限状态自动机对所述目标数字进行匹配处理,其中,该确定有限状态自动机基于对目标正则表达式进行处理得到,且该确定有限状态自动机中每一条转移边对应的字符基于所述目标进制表示;/n若所述目标数字匹配失败,则停止对所述待识别文本进行匹配处理。/n

【技术特征摘要】
1.一种基于正则匹配的文本识别方法,其特征在于,包括:
获取待识别文本,其中,该待识别文本包括至少一个待识别字符,且该待识别字符基于变长编码表示;
在所述至少一个待识别字符中确定一个目标待识别字符,并将该目标待识别字符转换为目标进制的目标数字;
基于预先得到的确定有限状态自动机对所述目标数字进行匹配处理,其中,该确定有限状态自动机基于对目标正则表达式进行处理得到,且该确定有限状态自动机中每一条转移边对应的字符基于所述目标进制表示;
若所述目标数字匹配失败,则停止对所述待识别文本进行匹配处理。


2.根据权利要求1所述的基于正则匹配的文本识别方法,其特征在于,所述待识别字符为多个,该方法还包括:
步骤a,若所述目标数字匹配成功,则在所述目标待识别字符以外的其他待识别字符中,确定一个新的目标待识别字符;
步骤b,将所述新的目标待识别字符转换为所述目标进制的新的目标数字,并基于所述确定有限状态自动机对该新的目标数字进行匹配处理;
步骤c,若所述新的目标数字匹配成功,则在该新的目标数字和所述目标待识别字符以外的其他待识别字符中,再次确定一个新的目标待识别字符,并基于该新的目标待识别字符再次执行步骤b;
步骤d,若所述新的目标数字匹配失败,则停止对所述待识别文本进行匹配处理。


3.根据权利要求1或2所述的基于正则匹配的文本识别方法,其特征在于,所述将该目标待识别字符转换为目标进制的目标数字的步骤,包括:
确定所述目标待识别字符的字节长度;
基于所述字节长度对应的转换规则,将所述目标待识别字符转换为目标进制的目标数字。


4.根据权利要求3所述的基于正则匹配的文本识别方法,其特征在于,所述确定所述目标待识别字符的字节长度的步骤,包括:
确定所述目标待识别字符对应的目标位是否为0,其中,该目标位为该目标待识别字符在内存中以二进制形式存储的第一个字节的最高位;
若所述目标位为0,则确定所述目标待识别字符的字节长度为1;
若所述目标位为1,则确定所述目标待识别字符的字节长度为该目标待识别字符的目标位数,其中,该目标位数为该目标待识别字符在内存中以二进制形式存储的多位二进制数据中连续为1的位数。


5.根据权利要求3所述的基于正则匹配的文本识别方法,其特征在于,所述基于所述字节长度对应的转换规则,将所述目标待识别字符转换为目标进制的目标数字的步骤,包括:
判断所述字节长度是否大于字节预设长度;
若所述字节长度小于或等于所述字节预设长度,则将所述目标待识别字符在内存中以二进制形式存储的第一个字节转换为目标进制,得到该目标待识别字符对应的目标数字;
若所述字节长度大...

【专利技术属性】
技术研发人员:熊思宇朱永强
申请(专利权)人:成都网安科技发展有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1