一种公式识别方法及装置
文献发布时间:2023-06-19 13:29:16
技术领域
本申请涉及数据处理领域,特别是涉及一种公式识别方法及装置。
背景技术
目前,可以利用机器学习模型对公式轨迹进行识别,从而得到该公式轨迹对应的公式。在一个示例中,所述机器学习模型可以包括基于注意力(attention)机制的解码器。但是,随着公式轨迹长度的增长,语义信息和特征位置信息越来越弱,不利于基于attention机制的解码器解码。这就导致机器学习模型无法准确的识别出长度较长的公式轨迹中的公式。本申请中提及的公式轨迹,包括组成公式的一个个轨迹点。
因此,急需一种方案,能够在公式轨迹长度较长时,也能准确的识别公式轨迹对应的公式。
发明内容
本申请所要解决的技术问题是机器学习模型无法准确的识别出长度较长的公式轨迹中的公式,提供一种公式识别方法及装置。
第一方面,本申请实施例提供了一种公式识别方法,所述方法包括:
获取待处理公式轨迹;
将所述待处理公式轨迹输入公式识别模型,通过如下方式得到目标公式:
对所述待处理公式轨迹进行处理,得到第一特征序列,并根据待处理公式轨迹,得到所述待处理公式轨迹中的各个字符;
基于第一注意力图对所述第一特征序列进行解码,得到所述公式识别模型的输出;所述第一注意力图,用于指示各个解码时刻所述第一特征序列中各个特征的权重;
在解码过程中根据所述各个字符和所述公式识别模型的输出,对所述第一注意力图进行调整。
可选的,所述在解码过程中根据所述待处理公式中的各个字符和所述公式识别模型的输出,对所述第一注意力图进行调整,包括:
获取第一解码时刻所述公式识别模型输出的第一字符;
将所述第一字符与所述各个字符进行匹配;
若所述第一字符与所述各个字符中的第二字符匹配成功,则增大所述第一注意力图中所述第二字符对应的特征的权重;
若所述第一字符与所述第二字符匹配失败,则减小所述第一注意力图中所述第二字符对应的特征的权重。
可选的,所述第一解码时刻为第M个解码时刻,所述将所述第一字符与所述各个字符进行匹配,包括:
将所述第一字符与所述各个字符中的前M个非结构字符分别进行匹配。
可选的,所述第一字符与所述第二字符匹配成功,包括:
所述第一字符与所述第二字符相同,且,第一字符序列与第二字符序列的相似度高于预设阈值,其中,所述第一字符序列和所述第二字符序列均包括N个字符,所述第一字符序列包括:所述公式识别模型在所述第一解码时刻的前N个解码时刻中每个解码时刻输出的字符,所述第二字符序列包括:所述各个字符中所述第二字符的前N个字符,N为大于或等于1的整数。
可选的,所述第一字符与所述第二字符匹配失败,包括:
所述第一字符与所述第二字符不同,且,第一字符序列与第二字符序列的相似度高于预设阈值,其中,所述第一字符序列和所述第二字符序列均包括N个字符,所述第一字符序列包括:所述公式识别模型在所述第一解码时刻的前N个解码时刻中每个解码时刻输出的字符,所述第二字符序列包括:所述各个字符中所述第二字符的前N个字符,N为大于或等于1的整数。
可选的,所述增大所述第一注意力图中所述第二字符对应的特征的权重,包括:
根据预先建立的单字符与所述第一特征序列中该单字符对应的特征的对应关系,从所述第一特征序列中确定所述第二字符对应的特征,增大所述第二字符对应的特征的权重。
可选的,所述减小所述第一注意力图中所述第二字符对应的特征的权重,包括:
根据预先建立的单字符与所述第一特征序列中该单字符对应的特征的对应关系,从所述第一特征序列中确定所述第二字符对应的特征,减小所述第二字符对应的特征的权重。
可选的,所述根据待处理公式轨迹,得到所述待处理公式轨迹中的各个字符,通过单字符识别模块实现,所述方法进一步包括:
获取训练笔画轨迹和所述训练笔画轨迹对应的字符;
根据所述训练笔画轨迹和所述训练笔画轨迹对应的字符,训练得到所述单字符识别模块。
可选的,所述单字符识别模块采用卷积神经网络CNN结构。
可选的,所述方法进一步包括:
获取训练公式轨迹和所述训练公式轨迹对应的公式;
根据所述训练公式轨迹和所述训练公式轨迹对应的公式,训练得到所述公式识别模型。
第二方面,本申请实施例提供了一种公式识别装置,所述装置包括:
第一获取单元,用于获取待处理公式轨迹;
处理单元,用于将所述待处理公式轨迹输入公式识别模型,通过如下方式得到目标公式:
对所述待处理公式轨迹进行处理,得到第一特征序列,并根据待处理公式轨迹,得到所述待处理公式轨迹中的各个字符;
基于第一注意力图对所述第一特征序列进行解码,得到所述公式识别模型的输出;所述第一注意力图,用于指示各个解码时刻所述第一特征序列中各个特征的权重;
在解码过程中根据所述各个字符和所述公式识别模型的输出,对所述第一注意力图进行调整。
可选的,所述在解码过程中根据所述待处理公式中的各个字符和所述公式识别模型的输出,对所述第一注意力图进行调整,包括:
获取第一解码时刻所述公式识别模型输出的第一字符;
将所述第一字符与所述各个字符进行匹配;
若所述第一字符与所述各个字符中的第二字符匹配成功,则增大所述第一注意力图中所述第二字符对应的特征的权重;
若所述第一字符与所述第二字符匹配失败,则减小所述第一注意力图中所述第二字符对应的特征的权重。
可选的,所述第一解码时刻为第M个解码时刻,所述将所述第一字符与所述各个字符进行匹配,包括:
将所述第一字符与所述各个字符中的前M个非结构字符分别进行匹配。
可选的,所述第一字符与所述第二字符匹配成功,包括:
所述第一字符与所述第二字符相同,且,第一字符序列与第二字符序列的相似度高于预设阈值,其中,所述第一字符序列和所述第二字符序列均包括N个字符,所述第一字符序列包括:所述公式识别模型在所述第一解码时刻的前N个解码时刻中每个解码时刻输出的字符,所述第二字符序列包括:所述各个字符中所述第二字符的前N个字符,N为大于或等于1的整数。
可选的,所述第一字符与所述第二字符匹配失败,包括:
所述第一字符与所述第二字符不同,且,第一字符序列与第二字符序列的相似度高于预设阈值,其中,所述第一字符序列和所述第二字符序列均包括N个字符,所述第一字符序列包括:所述公式识别模型在所述第一解码时刻的前N个解码时刻中每个解码时刻输出的字符,所述第二字符序列包括:所述各个字符中所述第二字符的前N个字符,N为大于或等于1的整数。
可选的,所述增大所述第一注意力图中所述第二字符对应的特征的权重,包括:
根据预先建立的单字符与所述第一特征序列中该单字符对应的特征的对应关系,从所述第一特征序列中确定所述第二字符对应的特征,增大所述第二字符对应的特征的权重。
可选的,所述减小所述第一注意力图中所述第二字符对应的特征的权重,包括:
根据预先建立的单字符与所述第一特征序列中该单字符对应的特征的对应关系,从所述第一特征序列中确定所述第二字符对应的特征,减小所述第二字符对应的特征的权重。
可选的,所述根据待处理公式轨迹,得到所述待处理公式轨迹中的各个字符,通过单字符识别模块实现,所述装置进一步包括:
第二获取单元,用于获取训练笔画轨迹和所述训练笔画轨迹对应的字符;
第一训练单元,用于根据所述训练笔画轨迹和所述训练笔画轨迹对应的字符,训练得到所述单字符识别模块。
可选的,所述单字符识别模块采用卷积神经网络CNN结构。
可选的,所述装置进一步包括:
第三获取单元,用于获取训练公式轨迹和所述训练公式轨迹对应的公式;
第二训练单元,用于根据所述训练公式轨迹和所述训练公式轨迹对应的公式,训练得到所述公式识别模型。
第三方面,本申请实施例提供了一种公式识别装置,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
获取待处理公式轨迹;
将所述待处理公式轨迹输入公式识别模型,通过如下方式得到目标公式:
对所述待处理公式轨迹进行处理,得到第一特征序列,并根据待处理公式轨迹,得到所述待处理公式轨迹中的各个字符;
基于第一注意力图对所述第一特征序列进行解码,得到所述公式识别模型的输出;所述第一注意力图,用于指示各个解码时刻所述第一特征序列中各个特征的权重;
在解码过程中根据所述各个字符和所述公式识别模型的输出,对所述第一注意力图进行调整。
可选的,所述在解码过程中根据所述待处理公式中的各个字符和所述公式识别模型的输出,对所述第一注意力图进行调整,包括:
获取第一解码时刻所述公式识别模型输出的第一字符;
将所述第一字符与所述各个字符进行匹配;
若所述第一字符与所述各个字符中的第二字符匹配成功,则增大所述第一注意力图中所述第二字符对应的特征的权重;
若所述第一字符与所述第二字符匹配失败,则减小所述第一注意力图中所述第二字符对应的特征的权重。
可选的,所述第一解码时刻为第M个解码时刻,所述将所述第一字符与所述各个字符进行匹配,包括:
将所述第一字符与所述各个字符中的前M个非结构字符分别进行匹配。
可选的,所述第一字符与所述第二字符匹配成功,包括:
所述第一字符与所述第二字符相同,且,第一字符序列与第二字符序列的相似度高于预设阈值,其中,所述第一字符序列和所述第二字符序列均包括N个字符,所述第一字符序列包括:所述公式识别模型在所述第一解码时刻的前N个解码时刻中每个解码时刻输出的字符,所述第二字符序列包括:所述各个字符中所述第二字符的前N个字符,N为大于或等于1的整数。
可选的,所述第一字符与所述第二字符匹配失败,包括:
所述第一字符与所述第二字符不同,且,第一字符序列与第二字符序列的相似度高于预设阈值,其中,所述第一字符序列和所述第二字符序列均包括N个字符,所述第一字符序列包括:所述公式识别模型在所述第一解码时刻的前N个解码时刻中每个解码时刻输出的字符,所述第二字符序列包括:所述各个字符中所述第二字符的前N个字符,N为大于或等于1的整数。
可选的,所述增大所述第一注意力图中所述第二字符对应的特征的权重,包括:
根据预先建立的单字符与所述第一特征序列中该单字符对应的特征的对应关系,从所述第一特征序列中确定所述第二字符对应的特征,增大所述第二字符对应的特征的权重。
可选的,所述减小所述第一注意力图中所述第二字符对应的特征的权重,包括:
根据预先建立的单字符与所述第一特征序列中该单字符对应的特征的对应关系,从所述第一特征序列中确定所述第二字符对应的特征,减小所述第二字符对应的特征的权重。
可选的,所述根据待处理公式轨迹,得到所述待处理公式轨迹中的各个字符,通过单字符识别模块实现,所述操作进一步包括:
获取训练笔画轨迹和所述训练笔画轨迹对应的字符;
根据所述训练笔画轨迹和所述训练笔画轨迹对应的字符,训练得到所述单字符识别模块。
可选的,所述单字符识别模块采用卷积神经网络CNN结构。
可选的,所述操作进一步包括:
获取训练公式轨迹和所述训练公式轨迹对应的公式;
根据所述训练公式轨迹和所述训练公式轨迹对应的公式,训练得到所述公式识别模型。
第四方面,本申请实施例提供了一种计算机可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行以上第一方面任意一项所述的方法。
与现有技术相比,本申请实施例具有以下优点:
本申请实施例提供了一种公式识别方法,在该方法中,可以利用公式识别模型对待处理公式轨迹进行识别,得到目标公式。具体地,该公式识别模型可以对所述待处理公式轨迹进行处理,得到第一特征序列,并基于第一注意力图(map)对第一特性序列进行解码,从而得到所述公式识别模型的输出。其中,所述第一注意力图,用于指示各个解码时刻所述第一特征序列中各个特征的权重。所述公式识别模型还可以根据所述待处理公式轨迹得到所述待处理公式中的各个字符。进一步地,所述公式识别模型可以在解码过程中根据所述各个字符和所述公式识别模型的输出,对所述第一注意力图进行调整。由此可见,在本申请实施例中,公式识别模型对待处理公式轨迹进行识别的过程中,可以结合公式识别模型的输出和识别得到的所述待处理公式轨迹中的各个字符,对第一注意力图进行调整,从而使得调整后的第一注意力图比较准确。相应的,公式识别模型的输出也会更加准确。由于所述第一注意力图随着解码过程的进行在不断被调整,因此,即使所述待处理公式轨迹的长度比较长,所述公式识别模型也能够准确的对待处理公式轨迹进行识别,从而得到目标公式。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种公式识别方法的流程示意图;
图2为本申请实施例提供的一种公式识别模型的结构示意图;
图3为本申请实施例提供的一种调整第一注意力图的流程示意图;
图4为本申请实施例提供的一种公式识别装置的结构示意图;
图5为本申请实施例提供的客户端的结构示意图;
图6为本申请实施例提供的服务器的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的发明人经过研究发现,利用机器学习模型对公式轨迹进行识别时,解码器在解码时,可以基于注意力图对编码器编码得到的特征序列进行处理,其中,注意力图可以指示各个解码时刻所述特征序列中各个特征的权重。但是,随着轨迹公式长度的增长,所述注意力图会存在不准确的问题。这就导致机器学习模型无法准确的识别出长度较长的公式轨迹中的公式。
为了解决上述问题,本申请实施例提供了一种公式识别方法及装置,下面结合附图,详细说明本申请的各种非限制性实施方式。
参见图1,该图为本申请实施例提供的一种公式识别方法的流程示意图。
本申请实施例提供的方法,例如可以由第一设备执行,此处提及的第一设备包括但不限于终端设备和服务器。此处提及的终端设备,可以是智能手机、平板电脑等移动终端,也可以是台式计算机等终端设备。
图1所示的方法,例如可以通过如下S101-S102实现。
S101:获取待处理公式轨迹。
在本申请实施例中,可以获取用户输入的待处理公式轨迹,例如,可以获取用户利用手写输入法输入的所述待处理公式轨迹。
S102:将所述待处理公式轨迹输入公式识别模型,得到目标公式。
在本申请实施例中,S102可以通过如下S1021-S1023实现。
S1021:对所述待处理公式轨迹进行处理,得到第一特征序列,并根据待处理公式轨迹,得到所述待处理公式轨迹中的各个字符。
在一个示例中,所述公式识别模型可以包括处理模块和单字符识别模块,所述处理模块用于对所述待处理公式轨迹进行处理,得到第一特征序列。所述单字符识别模块用于根据待处理公式轨迹,得到所述待处理公式轨迹中的各个字符。
S1022:基于第一注意力图对所述第一特征序列进行解码,得到所述公式识别模型的输出;所述第一注意力图,用于指示各个解码时刻所述第一特征序列中各个特征的权重。
在一个示例中,所述公式识别模型可以包括解码模块,所述解码模块用于执行S1022。
S1023:在解码过程中根据所述各个字符和所述公式识别模型的输出,对所述第一注意力图进行调整。
在一个示例中,所述公式识别模型可以包括标定模块,所述标定模块可以用于执行S1023。
现结合图2所示的公式识别模型,对以上S1021-S1023的具体实现方式进行介绍。图2为本申请实施例提供的一种公式识别模型的结构示意图。
如图2所示,所述公式识别模型200包括:处理模块210、解码模块220、单字符识别模块230和标定模块240。其中:
所述处理模块210,用于对待处理公式轨迹进行处理,得到第一特征序列。在一个示例中,所述处理模块210可以为编码器(encoder)。所述编码器例如可以包括两个门循环单元(Gate Recurrent Unit,GRU)层。
所述解码模块220,用于基于第一注意力图对所述第一特征序列进行解码,其中,第一注意力图用于指示各个解码时刻所述第一特征序列中各个特征的权重。所述解码模块例如可以为包括两个GRU层的解码器。
所述单字符识别模块230,用于根据待处理公式轨迹,得到所述待处理公式中的各个字符。
在本申请实施例的一种实现方式中,所述单字符识别模型230,可以是预先单独训练得到的,具体地,该单字符识别模型230可以根据训练笔画轨迹和所述训练笔画轨迹对应的字符训练得到。换言之,可以首先获取训练笔画轨迹和所述训练笔画轨迹对应的字符,根据所述训练笔画轨迹和所述训练笔画轨迹对应的字符,训练得到所述单字符识别模块。关于训练所述单字符识别模型230的具体实现,此处不做详细描述。
可以理解的是,训练得到所述单字符识别模型230之后,所述单字符识别模型230即可根据笔画轨迹,得到对应的字符识别结果。在本申请实施例中,所述待处理公式轨迹中可以包括笔画划分信息,例如,笔画与笔画之间采用(-1,0)进行切分。因此,所述单字符识别模型230,可以根据所述待处理公式轨迹,得到所述待处理公式轨迹中包括的各个字符。
在一个示例中,所述单字符识别模块采用卷积神经网络(Convolutional NeuralNetworks,CNN)。可以理解的是,卷积神经网络的计算速度非常快,因此,所述单字符识别模块230,能够快速输出所述待处理公式轨迹中的各个字符。而解码模块220,需要逐步对第一特征序列进行解码。
所述标定模块240,用于在解码过程中根据所述单字符识别模块的输出和所述解码模块的输出,对所述第一注意力图进行调整。可以理解的是,所述单字符识别模块的输出即为S1021中提及的“所述待处理公式轨迹中的各个字符”。所述解码模块的输出,即为S1022中提及的“所述公式识别模型的输出”。可以理解的是,所述单字符识别模块230的识别结果比较准确,因此,可以利用单字符识别模块230输出的字符,判断解码模块220输出的解码结果是否准确。例如,将所述解码模块220输出的解码结果与单字符识别模块230输出的字符进行匹配,从而判断解码模块220输出的解码结果是否准确。进一步地,可以对所述第一注意力图进行调整,从而使得基于调整后的第一注意力图继续对第一特征序列进行解码时,得到的解码结果比较准确。
在一个示例中,考虑到对于待处理公式轨迹而言,其对应的公式可能包括一些特殊版式,例如,包括上下型结构。而为了便于将所述解码模块220输出的解码结果与单字符识别模块230输出的字符进行匹配,可以去除所述单字符识别模块230输出的字符中的结构字符,将所述解码模块220输出的解码结果与单字符识别模块230输出的字符中除结构字符之外的字符进行匹配。此处提及的结构字符,是用于指示公式中的结构的字符,例如,对于公式中的操作数
通过以上描述可知,由于所述第一注意力图随着解码过程的进行在不断被调整,因此,即使所述待处理公式轨迹的长度比较长,所述公式识别模型也能够准确的对待处理公式轨迹进行识别,从而得到目标公式。
接下来,对所述标定模块240所执行的操作“在解码过程中根据所述单字符识别模块的输出和所述解码模块的输出,对所述第一注意力图进行调整”进行介绍。
参见图3,该图为本申请实施例提供的一种调整第一注意力图的流程示意图。如图3所示,可以通过如下S301-S304对第一注意力图进行调整。
S301:获取第一解码时刻所述解码模块输出的第一字符。
在本申请实施例中,第一解码时刻为解码模块220对第一特征序列进行解码过程中的任意一个时刻。
S302:将所述第一字符与所述单字符识别模块输出的字符进行匹配。
如上所述,单字符识别模块230的运算速度非常快,因此,在第一解码时刻,所述单字符识别模块230已经输出所述待处理公式轨迹中的所有字符。
S302在具体实现时,可以有多种实现方式,以下介绍两种可能的实现方式。
在一个示例中,假设所述第一解码时刻为第M个解码时刻,则可以将所述第一字符与所述单字符识别模块230输出的第M个字符进行匹配。
在又一个示例中,可以将所述第一字符与单字符识别模块230输出的非结构字符进行匹配。对于这种情况,假设所述第一解码时刻为第M个解码时刻,则由于对于前M个解码时刻而言,所述解码模块220已经输出了M个字符,而这M个字符中可能既包括结构字符,又包括非结构字符。因此,单字符识别模块230输出的与第一字符匹配的字符,必然存在与所述单字符识别模块230输出的前M个非结构字符中。
举例说明:M=5,则解码模块220输出了5个字符,假设这5个字符全部都是非结构化字符,则单字符识别模块230输出的与第一字符对应的字符,应该是单字符模块输出的第5个字符;假设这5个字符中有1个结构化字符,则单字符识别模块230输出的与第一字符对应的字符,应该是单字符模块输出的第4个字符,以此类推。
因此,S302的又一种实现方式为:可以将所述第一字符与所述单字符识别模块输出的前M个非结构字符分别进行匹配。
S303:若所述第一字符与所述单字符识别模块输出的第二字符匹配成功,则增大所述第一注意力图中所述第二字符对应的特征的权重。
S304:若所述第一字符与所述第二字符匹配失败,则减小所述第一注意力图中所述第二字符对应的特征的权重。
在本申请实施例中,第一字符和第二字符对应所述待处理公式轨迹中的同一轨迹。换言之,若所述解码模块220在第一解码时刻输出的解码结果准确,则所述第一字符应该和第二字符匹配成功。
在本申请实施例中,考虑到对于一个公式而言,同一字符可以在该公式中多次出现。因此,第一字符和第二字符相同,并不能说明第一字符和第二字符对应所述待处理公式轨迹中的同一轨迹。换言之,第一字符和第二字符相同,并不能说明第一字符和第二字符匹配成功。
在本申请实施例中,当第一字符和第二字符相同,并且,所述解码模块220在所述第一解码时刻的前N个解码时刻输出的字符序列,与所述单字符识别模块230输出的字符中所述第二字符的前N个字符构成的字符序列,也相差不大时,可以认为所述第一字符和第二字符匹配成功。为方便描述,将“所述解码模块220在所述第一解码时刻的前N个解码时刻输出的字符序列”称为第一字符序列,将“所述单字符识别模块230输出的字符中所述第二字符的前N个字符构成的字符序列”称为第二字符序列,则当第一字符和第二字符相同,且,第一字符序列和第二字符序列相似度高于预设阈值时,可以认为所述第一字符和第二字符匹配成功。
对应的,当第一字符和第二字符不同,但是,第一字符序列和第二字符序列的相似度高于预设阈值时,认为所述第一字符和第二字符匹配失败。这是因为所述第一字符序列和第二字符序列的相似度高于预设阈值,说明第一字符和第二字符对应所述待处理公式轨迹中的同一轨迹,而对于同一轨迹,解码模块220的解码结果却与单字符识别模块230输出的结果不同,故而可以确定第一字符和第二字符匹配失败。
本申请实施例不具体限定所述预设阈值,所述预设阈值可以根据实际情况确定。
举例说明:
单字符识别模块230输出的字符为“x=y+m+z”,在第一解码时刻及之前,解码器输出的解码序列为“x=y”,则第一字符“y”与单字符识别模块230输出的第二字符“y”匹配成功,因为,第一字符和第二字符相同,并且,第一字符序列“x=”和第二字符序列“x=”也相同。
单字符识别模块230输出的字符为“x=y+m+z”,在第一解码时刻及之前,解码器输出的解码序列为“x=v”,则第一字符“v”与单字符识别模块230输出的第二字符“y”匹配失败,因为,第一字符“v”和第二字符“y”不同,并且,第一字符序列“x=”和第二字符序列“x=”相同。
在本申请实施例中,在第一字符和第二字符匹配成功之后,说明解码模块输出的第一字符是准确的,并且,所述第二字符和第一字符对应待处理公式轨迹中的同一轨迹。因此,为了使得后续解码过程更加准确,可以增大所述第二字符对应的特征在所述第一注意力图中的权重。
在本申请实施例中,可以预先建立单字符与第一特征序列中该单字符对应的特征之间的对应关系,进一步地,可以根据该对应关系,确定出第一特征序列中第二字符对应的特征,并进一步增大所述第二字符对应的特征的权重。例如,将第二字符对应的特征的权重加0.1。
类似的,当第一字符和第二字符匹配失败时,可以根据该对应关系,确定出第一特征序列中第二字符对应的特征,并进一步减小所述第二字符对应的特征的权重。例如,将第二字符对应的特征的权重减0.1。
关于“单字符与第一特征序列中该单字符对应的特征之间的对应关系”,现举例说明:
假设第二字符在所述待处理公式轨迹中的起始点的坐标为(a,b),而第一特征序列的尺寸为L*D,在对待处理公式进行编码,得到所述第一特征序列的过程中,进行了N倍下采样,则所述第二字符的起始点,对应在所述第一特征序列中的位置为(L*a/N,D*b/N)。类似的,若第二字符在待处理公式轨迹中的结束点坐标为(c,d),则所述第二字符的结束点,对应在所述第一特征序列中的位置为(L*c/N,D*d/N)。在一个示例中,所述第二字符对应的特征,可以是所述第一特征序列中位置在(L*a/N,D*b/N)和(L*c/N,D*d/N)之间的特征。
在一个示例中,所述公式识别模型可以是预先训练得到的,具体地,可以获取训练公式轨迹和训练公式轨迹对应的公式,并根据训练公式轨迹和所述训练公式轨迹对应的公式,训练得到所述公式识别模型。
训练过程中所述公式识别模型各个模块的功能如以上实施例所述,关于训练所述公式识别模型的具体实现,此处不做详细描述。
基于以上实施例提供的方法,本申请实施例还提供了一种装置,以下结合附图介绍该装置。
参见图4,该图为本申请实施例提供的一种公式识别装置的结构示意图。所述装置400例如可以具体包括:第一获取单元401和处理单元402。
第一获取单元401,用于获取待处理公式轨迹;
处理单元402,用于将所述待处理公式轨迹输入公式识别模型,通过如下方式得到目标公式:
对所述待处理公式轨迹进行处理,得到第一特征序列,并根据待处理公式轨迹,得到所述待处理公式轨迹中的各个字符;
基于第一注意力图对所述第一特征序列进行解码,得到所述公式识别模型的输出;所述第一注意力图,用于指示各个解码时刻所述第一特征序列中各个特征的权重;
在解码过程中根据所述各个字符和所述公式识别模型的输出,对所述第一注意力图进行调整。
可选的,所述在解码过程中根据所述待处理公式中的各个字符和所述公式识别模型的输出,对所述第一注意力图进行调整,包括:
获取第一解码时刻所述公式识别模型输出的第一字符;
将所述第一字符与所述各个字符进行匹配;
若所述第一字符与所述各个字符中的第二字符匹配成功,则增大所述第一注意力图中所述第二字符对应的特征的权重;
若所述第一字符与所述第二字符匹配失败,则减小所述第一注意力图中所述第二字符对应的特征的权重。
可选的,所述第一解码时刻为第M个解码时刻,所述将所述第一字符与所述各个字符进行匹配,包括:
将所述第一字符与所述各个字符中的前M个非结构字符分别进行匹配。
可选的,所述第一字符与所述第二字符匹配成功,包括:
所述第一字符与所述第二字符相同,且,第一字符序列与第二字符序列的相似度高于预设阈值,其中,所述第一字符序列和所述第二字符序列均包括N个字符,所述第一字符序列包括:所述公式识别模型在所述第一解码时刻的前N个解码时刻中每个解码时刻输出的字符,所述第二字符序列包括:所述各个字符中所述第二字符的前N个字符,N为大于或等于1的整数。
可选的,所述第一字符与所述第二字符匹配失败,包括:
所述第一字符与所述第二字符不同,且,第一字符序列与第二字符序列的相似度高于预设阈值,其中,所述第一字符序列和所述第二字符序列均包括N个字符,所述第一字符序列包括:所述公式识别模型在所述第一解码时刻的前N个解码时刻中每个解码时刻输出的字符,所述第二字符序列包括:所述各个字符中所述第二字符的前N个字符,N为大于或等于1的整数。
可选的,所述增大所述第一注意力图中所述第二字符对应的特征的权重,包括:
根据预先建立的单字符与所述第一特征序列中该单字符对应的特征的对应关系,从所述第一特征序列中确定所述第二字符对应的特征,增大所述第二字符对应的特征的权重。
可选的,所述减小所述第一注意力图中所述第二字符对应的特征的权重,包括:
根据预先建立的单字符与所述第一特征序列中该单字符对应的特征的对应关系,从所述第一特征序列中确定所述第二字符对应的特征,减小所述第二字符对应的特征的权重。
可选的,所述根据待处理公式轨迹,得到所述待处理公式轨迹中的各个字符,通过单字符识别模块实现,所述装置进一步包括:
第二获取单元,用于获取训练笔画轨迹和所述训练笔画轨迹对应的字符;
第一训练单元,用于根据所述训练笔画轨迹和所述训练笔画轨迹对应的字符,训练得到所述单字符识别模块。
可选的,所述单字符识别模块采用卷积神经网络CNN结构。
可选的,所述装置进一步包括:
第三获取单元,用于获取训练公式轨迹和所述训练公式轨迹对应的公式;
第二训练单元,用于根据所述训练公式轨迹和所述训练公式轨迹对应的公式,训练得到所述公式识别模型。
由于所述装置400是与以上方法实施例提供的方法对应的装置,所述装置400的各个单元的具体实现,均与以上方法实施例为同一构思,因此,关于所述装置400的各个单元的具体实现,可以参考以上方法实施例的描述部分,此处不再赘述。
本申请实施例提供的方法,可以由客户端执行也可以由服务器执行,以下对执行上述方法的客户端和服务器分别进行说明。
图5示出了一种客户端500的框图。例如,客户端500可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图5,客户端500可以包括以下一个或多个组件:处理组件502,存储器504,电源组件506,多媒体组件508,音频组件510,输入/输出(I/O)的接口512,传感器组件514,以及通信组件516。
处理组件502通常控制客户端500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件502可以包括一个或多个处理器520来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件502可以包括一个或多个模块,便于处理组件502和其他组件之间的交互。例如,处理部件502可以包括多媒体模块,以方便多媒体组件508和处理组件502之间的交互。
存储器504被配置为存储各种类型的数据以支持在客户端500的操作。这些数据的示例包括用于在客户端500上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件506为客户端500的各种组件提供电力。电源组件506可以包括电源管理系统,一个或多个电源,及其他与为客户端500生成、管理和分配电力相关联的组件。
多媒体组件508包括在所述客户端500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件508包括一个前置摄像头和/或后置摄像头。当客户端500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件510被配置为输出和/或输入音频信号。例如,音频组件510包括一个麦克风(MIC),当客户端500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器504或经由通信组件516发送。在一些实施例中,音频组件510还包括一个扬声器,用于输出音频信号。
I/O接口为处理组件502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件514包括一个或多个传感器,用于为客户端500提供各个方面的状态评估。例如,传感器组件514可以检测到设备500的打开/关闭状态,组件的相对定位,例如所述组件为客户端500的显示器和小键盘,传感器组件514还可以检测客户端500或客户端500一个组件的位置改变,用户与客户端500接触的存在或不存在,客户端500方位或加速/减速和客户端500的温度变化。传感器组件514可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件514还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件516被配置为便于客户端500和其他设备之间有线或无线方式的通信。客户端500可以接入基于通信标准的无线网络,如WiFi,2G或5G,或它们的组合。在一个示例性实施例中,通信部件516经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件516还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在一个示例性实施例中,客户端500可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行下述方法:
获取待处理公式轨迹;
将所述待处理公式轨迹输入公式识别模型,通过如下方式得到目标公式:
对所述待处理公式轨迹进行处理,得到第一特征序列,并根据待处理公式轨迹,得到所述待处理公式轨迹中的各个字符;
基于第一注意力图对所述第一特征序列进行解码,得到所述公式识别模型的输出;所述第一注意力图,用于指示各个解码时刻所述第一特征序列中各个特征的权重;
在解码过程中根据所述各个字符和所述公式识别模型的输出,对所述第一注意力图进行调整。
可选的,所述在解码过程中根据所述待处理公式中的各个字符和所述公式识别模型的输出,对所述第一注意力图进行调整,包括:
获取第一解码时刻所述公式识别模型输出的第一字符;
将所述第一字符与所述各个字符进行匹配;
若所述第一字符与所述各个字符中的第二字符匹配成功,则增大所述第一注意力图中所述第二字符对应的特征的权重;
若所述第一字符与所述第二字符匹配失败,则减小所述第一注意力图中所述第二字符对应的特征的权重。
可选的,所述第一解码时刻为第M个解码时刻,所述将所述第一字符与所述各个字符进行匹配,包括:
将所述第一字符与所述各个字符中的前M个非结构字符分别进行匹配。
可选的,所述第一字符与所述第二字符匹配成功,包括:
所述第一字符与所述第二字符相同,且,第一字符序列与第二字符序列的相似度高于预设阈值,其中,所述第一字符序列和所述第二字符序列均包括N个字符,所述第一字符序列包括:所述公式识别模型在所述第一解码时刻的前N个解码时刻中每个解码时刻输出的字符,所述第二字符序列包括:所述各个字符中所述第二字符的前N个字符,N为大于或等于1的整数。
可选的,所述第一字符与所述第二字符匹配失败,包括:
所述第一字符与所述第二字符不同,且,第一字符序列与第二字符序列的相似度高于预设阈值,其中,所述第一字符序列和所述第二字符序列均包括N个字符,所述第一字符序列包括:所述公式识别模型在所述第一解码时刻的前N个解码时刻中每个解码时刻输出的字符,所述第二字符序列包括:所述各个字符中所述第二字符的前N个字符,N为大于或等于1的整数。
可选的,所述增大所述第一注意力图中所述第二字符对应的特征的权重,包括:
根据预先建立的单字符与所述第一特征序列中该单字符对应的特征的对应关系,从所述第一特征序列中确定所述第二字符对应的特征,增大所述第二字符对应的特征的权重。
可选的,所述减小所述第一注意力图中所述第二字符对应的特征的权重,包括:
根据预先建立的单字符与所述第一特征序列中该单字符对应的特征的对应关系,从所述第一特征序列中确定所述第二字符对应的特征,减小所述第二字符对应的特征的权重。
可选的,所述根据待处理公式轨迹,得到所述待处理公式轨迹中的各个字符,通过单字符识别模块实现,所述方法进一步包括:
获取训练笔画轨迹和所述训练笔画轨迹对应的字符;
根据所述训练笔画轨迹和所述训练笔画轨迹对应的字符,训练得到所述单字符识别模块。
可选的,所述单字符识别模块采用卷积神经网络CNN结构。
可选的,所述方法进一步包括:
获取训练公式轨迹和所述训练公式轨迹对应的公式;
根据所述训练公式轨迹和所述训练公式轨迹对应的公式,训练得到所述公式识别模型。
图6是本申请实施例中服务器的结构示意图。该服务器600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)622(例如,一个或一个以上处理器)和存储器632,一个或一个以上存储应用程序642或数据644的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器632和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器622可以设置为与存储介质630通信,在服务器600上执行存储介质630中的一系列指令操作。
更进一步地,在一个示例中,中央处理器422可以执行下述方法:
获取待处理公式轨迹;
将所述待处理公式轨迹输入公式识别模型,通过如下方式得到目标公式:
对所述待处理公式轨迹进行处理,得到第一特征序列,并根据待处理公式轨迹,得到所述待处理公式轨迹中的各个字符;
基于第一注意力图对所述第一特征序列进行解码,得到所述公式识别模型的输出;所述第一注意力图,用于指示各个解码时刻所述第一特征序列中各个特征的权重;
在解码过程中根据所述各个字符和所述公式识别模型的输出,对所述第一注意力图进行调整。
可选的,所述在解码过程中根据所述待处理公式中的各个字符和所述公式识别模型的输出,对所述第一注意力图进行调整,包括:
获取第一解码时刻所述公式识别模型输出的第一字符;
将所述第一字符与所述各个字符进行匹配;
若所述第一字符与所述各个字符中的第二字符匹配成功,则增大所述第一注意力图中所述第二字符对应的特征的权重;
若所述第一字符与所述第二字符匹配失败,则减小所述第一注意力图中所述第二字符对应的特征的权重。
可选的,所述第一解码时刻为第M个解码时刻,所述将所述第一字符与所述各个字符进行匹配,包括:
将所述第一字符与所述各个字符中的前M个非结构字符分别进行匹配。
可选的,所述第一字符与所述第二字符匹配成功,包括:
所述第一字符与所述第二字符相同,且,第一字符序列与第二字符序列的相似度高于预设阈值,其中,所述第一字符序列和所述第二字符序列均包括N个字符,所述第一字符序列包括:所述公式识别模型在所述第一解码时刻的前N个解码时刻中每个解码时刻输出的字符,所述第二字符序列包括:所述各个字符中所述第二字符的前N个字符,N为大于或等于1的整数。
可选的,所述第一字符与所述第二字符匹配失败,包括:
所述第一字符与所述第二字符不同,且,第一字符序列与第二字符序列的相似度高于预设阈值,其中,所述第一字符序列和所述第二字符序列均包括N个字符,所述第一字符序列包括:所述公式识别模型在所述第一解码时刻的前N个解码时刻中每个解码时刻输出的字符,所述第二字符序列包括:所述各个字符中所述第二字符的前N个字符,N为大于或等于1的整数。
可选的,所述增大所述第一注意力图中所述第二字符对应的特征的权重,包括:
根据预先建立的单字符与所述第一特征序列中该单字符对应的特征的对应关系,从所述第一特征序列中确定所述第二字符对应的特征,增大所述第二字符对应的特征的权重。
可选的,所述减小所述第一注意力图中所述第二字符对应的特征的权重,包括:
根据预先建立的单字符与所述第一特征序列中该单字符对应的特征的对应关系,从所述第一特征序列中确定所述第二字符对应的特征,减小所述第二字符对应的特征的权重。
可选的,所述根据待处理公式轨迹,得到所述待处理公式轨迹中的各个字符,通过单字符识别模块实现,所述方法进一步包括:
获取训练笔画轨迹和所述训练笔画轨迹对应的字符;
根据所述训练笔画轨迹和所述训练笔画轨迹对应的字符,训练得到所述单字符识别模块。
可选的,所述单字符识别模块采用卷积神经网络CNN结构。
可选的,所述方法进一步包括:
获取训练公式轨迹和所述训练公式轨迹对应的公式;
根据所述训练公式轨迹和所述训练公式轨迹对应的公式,训练得到所述公式识别模型。
服务器600还可以包括一个或一个以上电源626,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口656,一个或一个以上键盘656,和/或,一个或一个以上操作系统641,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
本申请实施例还提供了一种计算机可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行以下方法:
获取待处理公式轨迹;
将所述待处理公式轨迹输入公式识别模型,通过如下方式得到目标公式:
对所述待处理公式轨迹进行处理,得到第一特征序列,并根据待处理公式轨迹,得到所述待处理公式轨迹中的各个字符;
基于第一注意力图对所述第一特征序列进行解码,得到所述公式识别模型的输出;所述第一注意力图,用于指示各个解码时刻所述第一特征序列中各个特征的权重;
在解码过程中根据所述各个字符和所述公式识别模型的输出,对所述第一注意力图进行调整。
可选的,所述在解码过程中根据所述待处理公式中的各个字符和所述公式识别模型的输出,对所述第一注意力图进行调整,包括:
获取第一解码时刻所述公式识别模型输出的第一字符;
将所述第一字符与所述各个字符进行匹配;
若所述第一字符与所述各个字符中的第二字符匹配成功,则增大所述第一注意力图中所述第二字符对应的特征的权重;
若所述第一字符与所述第二字符匹配失败,则减小所述第一注意力图中所述第二字符对应的特征的权重。
可选的,所述第一解码时刻为第M个解码时刻,所述将所述第一字符与所述各个字符进行匹配,包括:
将所述第一字符与所述各个字符中的前M个非结构字符分别进行匹配。
可选的,所述第一字符与所述第二字符匹配成功,包括:
所述第一字符与所述第二字符相同,且,第一字符序列与第二字符序列的相似度高于预设阈值,其中,所述第一字符序列和所述第二字符序列均包括N个字符,所述第一字符序列包括:所述公式识别模型在所述第一解码时刻的前N个解码时刻中每个解码时刻输出的字符,所述第二字符序列包括:所述各个字符中所述第二字符的前N个字符,N为大于或等于1的整数。
可选的,所述第一字符与所述第二字符匹配失败,包括:
所述第一字符与所述第二字符不同,且,第一字符序列与第二字符序列的相似度高于预设阈值,其中,所述第一字符序列和所述第二字符序列均包括N个字符,所述第一字符序列包括:所述公式识别模型在所述第一解码时刻的前N个解码时刻中每个解码时刻输出的字符,所述第二字符序列包括:所述各个字符中所述第二字符的前N个字符,N为大于或等于1的整数。
可选的,所述增大所述第一注意力图中所述第二字符对应的特征的权重,包括:
根据预先建立的单字符与所述第一特征序列中该单字符对应的特征的对应关系,从所述第一特征序列中确定所述第二字符对应的特征,增大所述第二字符对应的特征的权重。
可选的,所述减小所述第一注意力图中所述第二字符对应的特征的权重,包括:
根据预先建立的单字符与所述第一特征序列中该单字符对应的特征的对应关系,从所述第一特征序列中确定所述第二字符对应的特征,减小所述第二字符对应的特征的权重。
可选的,所述根据待处理公式轨迹,得到所述待处理公式轨迹中的各个字符,通过单字符识别模块实现,所述方法进一步包括:
获取训练笔画轨迹和所述训练笔画轨迹对应的字符;
根据所述训练笔画轨迹和所述训练笔画轨迹对应的字符,训练得到所述单字符识别模块。
可选的,所述单字符识别模块采用卷积神经网络CNN结构。
可选的,所述方法进一步包括:
获取训练公式轨迹和所述训练公式轨迹对应的公式;
根据所述训练公式轨迹和所述训练公式轨迹对应的公式,训练得到所述公式识别模型。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
- 一种公式识别方法、装置和用于公式识别的装置
- 基于公式库的公式识别方法及装置