1.本发明涉及教育领域,具体涉及一种数学公式相似度计算方法及系统。
背景技术:2.当前在nlp(natural language processing,自然语言处理)工业领域,对文本中嵌入的数学公式信息主要采用两种处理方式:一种是直接将公式和文本一起作为语料进行分词再训练,从而得到相应的词嵌入向量;另一种是将公式的特征元素映射为位置向量,通过比较两个公式之间元素位置的的相对匹配度以及重合度计算得到公式间的相似度。此外还有通过基于二叉树的数学表达式计算公式相似度的方式,例如将公式转化成二叉树结构,再进行结构与变量的归一化,最终根据公共子序列的长度来计算数学表达式之间的相似度。
3.但上述处理方式在计算公式间相似度时存在以下问题:1、公式大多用mathml格式或者latex格式来表示,如何准确抽取公式并正确的表示其内在信息是上述处理方式面临的最大难点;2、将公式直接看作文本处理,采用暴力拆解公式结构的方式可能损坏公式自身隐含的重要信息,例如公式计算存在一定的先后顺序,上述方式无法获取公式内各元素之间隐含的结构和语义信息;3、公式存在特异性且数量级巨大,传统方法在应对新公式时,无法准确的对其进行向量化表示。
技术实现要素:4.针对现有技术中存在的缺陷,本发明的目的在于提供一种数学公式相似度计算方法及系统,能够准确的对公式进行向量化表示并准确完成公式间的相似度计算。
5.为达到以上目的,本发明提供的一种数学公式相似度计算方法,具体包括以下步骤:
6.识别文本中含有的公式,并对识别得到的公式进行结构转化,得到公式的slt树形结构和opt树形结构;
7.对公式的slt树形结构构建对应的元组序列,对公式的opt树形结构构建对应的元组序列;
8.对公式的slt树形结构和opt树形结构的元组序列均进行分词处理,分别得到第一词表和第二词表;
9.采用第一词表和第二词表分别训练fasttext n-gram模型,得到两个训练完成的词嵌入模型;
10.使用训练完成的词嵌入模型分别对公式进行编码,得到公式词嵌入后的slt向量表征以及opt向量表征;
11.基于公式的slt向量表征以及opt向量表征计算得到公式的向量,并基于公式的向量计算得到公式间的相似度。
12.在上述技术方案的基础上,所述识别文本中含有的公式,具体步骤包括:
13.获取含有公式的文本或者html文件,并对文本或者html文件中公式的格式进行判断:
14.当为mathml格式时,直接对公式进行识别和提取;
15.当不为mathml格式时,转换为mathml格式后,再进行识别和提取。
16.在上述技术方案的基础上,所述对公式的slt树形结构和opt树形结构的元组序列均进行分词处理,分别得到第一词表和第二词表,具体步骤包括:
17.对公式slt树形结构的元组序列的每一个元组均进行分词处理,基于得到的分词构成第一词表;
18.对公式opt树形结构的元组序列的每一个元组均进行分词处理,基于得到的分词构成第二词表。
19.在上述技术方案的基础上,当对元组序列的每一个元组进行分词处理得到分词后,对每一个分词均进行唯一id标记。
20.在上述技术方案的基础上,所述采用第一词表和第二词表分别训练fasttext n-gram模型,得到两个训练完成的词嵌入模型,具体步骤包括:
21.采用第一词表对fasttext n-gram模型进行训练,得到用作slt形式的词嵌入模型;
22.采用第二词表对fasttext n-gram模型进行训练,得到用作opt形式的词嵌入模型。
23.在上述技术方案的基础上,所述使用训练完成的词嵌入模型分别对公式进行编码,得到公式词嵌入后的slt向量表征以及opt向量表征,具体步骤包括:
24.使用基于第一词表训练后得到的词嵌入模型对公式进行编码,得到公式词嵌入后的slt向量表征;
25.使用基于第二词表训练后得到的词嵌入模型对公式进行编码,得到公式词嵌入后的opt向量表征。
26.在上述技术方案的基础上,所述基于公式的slt向量表征以及opt向量表征计算得到公式的向量,具体步骤为:
27.将公式的slt向量表征和opt向量表征进行相加处理,然后进行平均计算得到公式的向量。
28.在上述技术方案的基础上,所述基于公式的向量计算得到公式间的相似度,具体步骤包括:
29.计算得到待进行相似度计算的公式的向量;
30.基于待进行相似度计算的公式的向量,进行余弦相似度计算,得到公式间的相似度。
31.本发明提供的一种数学公式相似度计算系统,包括:
32.识别模块,其用于识别文本中含有的公式,并对识别得到的公式进行结构转化,得到公式的slt树形结构和opt树形结构;
33.构建模块,其用于对公式的slt树形结构构建对应的元组序列,对公式的opt树形结构构建对应的元组序列;
34.分词模块,其用于对公式的slt树形结构和opt树形结构的元组序列均进行分词处
理,分别得到第一词表和第二词表;
35.训练模块,其用于采用第一词表和第二词表分别训练fasttext n-gram模型,得到两个训练完成的词嵌入模型;
36.编码模块,其用于使用训练完成的词嵌入模型分别对公式进行编码,得到公式词嵌入后的slt向量表征以及opt向量表征;
37.计算模块,其用于基于公式的slt向量表征以及opt向量表征计算得到公式的向量,并基于公式的向量计算得到公式间的相似度。
38.在上述技术方案的基础上,所述基于公式的向量计算得到公式间的相似度,具体过程包括:
39.计算得到待进行相似度计算的公式的向量;
40.基于待进行相似度计算的公式的向量,进行余弦相似度计算,得到公式间的相似度。
41.与现有技术相比,本发明的优点在于:通过识别文本中含有的公式,并对识别得到的公式进行结构转化,得到公式的slt树形结构和opt树形结构,从而实现公式的准确抽取以及公式内在信息的准确表示;通过对公式的slt树形结构构建对应的元组序列,对公式的opt树形结构构建对应的元组序列,对公式的slt树形结构和opt树形结构的元组序列均进行分词处理,分别得到第一词表和第二词表,实现公式内各元素之间隐含的结构和语义信息的获取;通过采用第一词表和第二词表分别训练fasttext n-gram模型,得到两个训练完成的词嵌入模型,使用训练完成的词嵌入模型分别对公式进行编码,得到公式词嵌入后的slt向量表征以及opt向量表征,基于公式的slt向量表征以及opt向量表征计算得到公式的向量,并基于公式的向量计算得到公式间的相似度,从而准确的对公式进行向量化表示并准确完成公式间的相似度计算。
附图说明
42.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
43.图1为本发明实施例中一种数学公式相似度计算方法的流程图;
44.图2为将公式进行结构转化,得到的slt树形结构和opt树形结构的示意图;
45.图3为本发明实施例中一种数学公式相似度计算系统的结构示意图。
具体实施方式
46.本发明实施例提供一种数学公式相似度计算方法,通过识别文本中含有的公式,并对识别得到的公式进行结构转化,得到公式的slt树形结构和opt树形结构,从而实现公式的准确抽取以及公式内在信息的准确表示;通过对公式的slt树形结构构建对应的元组序列,对公式的opt树形结构构建对应的元组序列,对公式的slt树形结构和opt树形结构的元组序列均进行分词处理,分别得到第一词表和第二词表,实现公式内各元素之间隐含的结构和语义信息的获取;通过采用第一词表和第二词表分别训练fasttext n-gram模型,得
到两个训练完成的词嵌入模型,使用训练完成的词嵌入模型分别对公式进行编码,得到公式词嵌入后的slt向量表征以及opt向量表征,基于公式的slt向量表征以及opt向量表征计算得到公式的向量,并基于公式的向量计算得到公式间的相似度,从而准确的对公式进行向量化表示并准确完成公式间的相似度计算。本发明实施例相应地还提供了一种数学公式相似度计算系统。
47.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
48.需要说明的是,在教育领域的实际业务场景中,例如抄袭检测、相似题推荐、知识点自动标注等,文档信息一般都是多模态数据,除了文本信息外,还包括丰富的表格、图形和公式等信息,这些信息与占主导地位的文本信息互相说明,互为补充。在下游任务中,例如相似题推荐、知识点自动标注等都是利用文本信息所提取的特征训练模型,学习向量表征间的信息计算相似性来完成,这种方法一般将公式直接当做文本来进行处理,拆解了公式自身存在的特殊信息,特别是对理科学科而言,其主要思想或者观点会通过特定的公式来表达。
49.尽管,像信息检索、文本分类等nlp任务通过词嵌入模型对文本信息进行向量化处理已得到广泛地应用,但是对数学公式进行向量化的表示还未得到完全的探索。数学公式体量巨大,形式结构各异,能自动化对公式信息进行向量化表示是本发明的最终目标。
50.基于上述可知,有效地识别公式并表示公式特征,显得尤为重要。因此,本发明提出一种基于数学公式的词嵌入方法,公式间的相似性可通过计算各个公式向量之间余弦相似度,从而有效解决了公式信息利用不完全的问题,提升了试题推荐的有效率以及试题知识点标注的准确性。
51.参见图1所示,本发明实施例提供的一种数学公式相似度计算方法,具体包括以下步骤:
52.s1:识别文本中含有的公式,并对识别得到的公式进行结构转化,得到公式的slt(symbol layout trees,符号布局树)树形结构和opt(operator trees,算子树)树形结构;
53.本发明实施例中,识别文本中含有的公式,具体步骤包括:
54.s101:获取含有公式的文本或者html(hyper text markup language,超文本标记语言)文件,并对文本或者html文件中公式的格式进行判断:
55.s102:当为mathml格式时,直接对公式进行识别和提取;
56.s103:当不为mathml格式时,转换为mathml格式后,再进行识别和提取。
57.由于公式一般为mathml格式或latex格式,当前的公式识别方法中对mathml格式的公式识别效果较好,因为公式一般被类似于html格式的标记符(《math》,《/math》)所包含在内,且mathml对公式元素的标记有完整的体系结构,能够清晰的表示公式的内部结构,更容易被准确的识别和提取,故latex格式的公式可以先转化成mathml格式后再进行识别和提取。
58.对于slt树形结构和opt树形结构,slt树形结构涵盖了公式中各元素出现的顺序以及嵌套继承关系,opt树形结构涵盖了公式中的操作符对各个元素的计算过程。如图2所
示,为将公式转化为slt树形结构和opt树形结构的举例,图2中,(a)表示公式,(b)表示对公式转化得到的slt树形结构,(c)表示对公式转化得到的opt树形结构。
59.s2:对公式的slt树形结构构建对应的元组序列,对公式的opt树形结构构建对应的元组序列;
60.在公式被转化成slt树形结构和opt树形结构后,再分别进行元组序列的构建,元组反应的是公式中某两个元素间的相对关系,由上下两个元素以及连接他们的边来表示。对图2中公式(a)所构建的两种树形结构下的元组序列如下表1所示。
61.表1
[0062][0063][0064]
表1中,slt tuples表示对公式的slt树形结构构建的元组序列,opt tuples表示对公式的opt树形结构构建的元组序列。所有的元组都是以(s1,s2,r,frp)的形式出现,s1表示上位元素,s2表示下位元素,r表示从s1到s2的边的标签,在slt的元组中frp表示的是从根节点到当前s1的全路径。
[0065]
s3:对公式的slt树形结构和opt树形结构的元组序列均进行分词处理,分别得到第一词表和第二词表;
[0066]
本发明实施例中,对公式的slt树形结构和opt树形结构的元组序列均进行分词处理,分别得到第一词表和第二词表,具体步骤包括:
[0067]
s301:对公式slt树形结构的元组序列的每一个元组均进行分词处理,基于得到的分词构成第一词表;
[0068]
s302:对公式opt树形结构的元组序列的每一个元组均进行分词处理,基于得到的分词构成第二词表。
[0069]
当对元组序列的每一个元组进行分词处理得到分词后,对每一个分词均进行唯一id标记。
[0070]
当前,对公式的词嵌入大多定义在词的级别,训练好的模型对以后从未见过的公
式进行词嵌入时,准确性和有效性就会降低,所以,采用subword算法或者字符级别的词嵌入方式能够产生鲁棒性更好的向量表示。将每个元组看为一个单词,并对每个单词进行内部的分割,例如(u!eq,o!minus,0)会被标记为
‘
u!’、
‘
eq’、
‘
o!’、
‘
minus’和
‘0’
,并且给它们每一个都标记上一个唯一的id,需要注意的是,这里没有使用frp,因为对于opt形式的表达,其意义仅在表示操作符运算的顺序,分词时加入frp的信息会引入没有必要的错误信息从导致产生错误的词嵌入向量。
[0071]
s4:采用第一词表和第二词表分别训练fasttext n-gram模型,得到两个训练完成的词嵌入模型;
[0072]
对于本发明实施例中的fasttext n-gram模型,说明如下:
[0073]
fasttext n-gram模型一般用来进行有监督学习的文本分类,也可以进行无监督学习词向量,在训练词向量时会考虑subword(一种nlp模型性能提升方法)。word2vec模型把语料库中的每个单词当成一个原子,会为每个单词生成一个向量,但这忽略了单词内部的形态特征,比如:“apple”和“apples”,这两个单词有较多公共字符,即它们的内部形态类似,但是在传统的word2vec中,单词内部的形态信息由于单词被转换成不同的id而丢失了,为了克服这个问题,fasttext模型使用了字符级别的n-grams来表示一个单词。例如对于单词“apple”,它的trigram(三元语言模型)有:"《ap","app","ppl","ple","le》",因此可以用这些trigram来表示“apple”这个单词,进一步,还可以使用这5个trigram的向量叠加来表示“apple”的词向量。上述表示的优点包括:1、对于低频词生成的词向量效果会更好,因为它们的n-gram可以和其它词共享;2、对于训练词库之外的单词,仍然可以构建它们的词向量。
[0074]
fasttext n-gram模型包含三层:输入层、隐含层和输出层。输出层一般是预测的标签,隐含层输出的便是单词的词向量,词向量为单词多个字符级n-gram向量的叠加平均。本发明中给fasttext n-gram模型作为输入的是公式分词后的词序列表,一个公式由多个元组表示,每个元组看作一个单词,元组内部会根据设定分解为多个字符级的单词,例如(u!eq,o!minus,0)会被标记为
‘
u!’、
‘
eq’、
‘
o!’、
‘
minus’和
‘0’
,并且给它们每一个都标记上一个唯一的id,则每个元组的输入表示为其所有id的组合。
[0075]
本发明实施例中,采用第一词表和第二词表分别训练fasttext n-gram模型,得到两个训练完成的词嵌入模型,具体步骤包括:
[0076]
s401:采用第一词表对fasttext n-gram模型进行训练,得到用作slt形式的词嵌入模型;通过采用第一词表对fasttext n-gram模型进行训练,得到用作slt形式的词嵌入模型,使得训练完成得到的词嵌入模型具有对公式进行编码以得到slt向量表征的能力。
[0077]
s402:采用第二词表对fasttext n-gram模型进行训练,得到用作opt形式的词嵌入模型。通过采用第二词表对fasttext n-gram模型进行训练,得到用作opt形式的词嵌入模型,使得训练完成得到的词嵌入模型具有对公式进行编码以得到opt向量表征的能力。
[0078]
s5:使用训练完成的词嵌入模型分别对公式进行编码,得到公式词嵌入后的slt向量表征以及opt向量表征;
[0079]
本发明实施例中,使用训练完成的词嵌入模型分别对公式进行编码,得到公式词嵌入后的slt向量表征以及opt向量表征,具体步骤包括:
[0080]
s501:使用基于第一词表训练后得到的词嵌入模型对公式进行编码,得到公式词
嵌入后的slt向量表征;
[0081]
s502:使用基于第二词表训练后得到的词嵌入模型对公式进行编码,得到公式词嵌入后的opt向量表征。
[0082]
对于本发明中使用词嵌入模型对公式进行编码的具体过程,说明如下:
[0083]
需要进行编码的公式同样需先转换成opt形式或slt形式的元组序列,然后采用训练完成的词嵌入模型以及相应的词表对公式的每一个元组进行词嵌入。训练完成的词嵌入模型会设定一个固定维度的向量输出,本发明中的固定维度设置为300,对于公式的向量计算式可以表示为:
[0084][0085]
其中,formulavec(f)表示公式f的向量,tf表示公式f的元组序列,n表示tf所包含的元组数,t表示元组,词嵌入后的元组t是一个300维度的词向量,用tuplevec(t)表示;即一个公式f由一个元组序列tf表示,tf包含n个元组,公式的向量为所有n个元组的向量相加求均值,同样为一个300维度的词向量。
[0086]
s6:基于公式的slt向量表征以及opt向量表征计算得到公式的向量,并基于公式的向量计算得到公式间的相似度。
[0087]
本发明实施例中,基于公式的slt向量表征以及opt向量表征计算得到公式的向量,具体步骤为:
[0088]
将公式的slt向量表征和opt向量表征进行相加处理,然后进行平均计算得到公式的向量。
[0089]
本发明实施例中,基于公式的向量计算得到公式间的相似度,具体步骤包括:
[0090]
s601:计算得到待进行相似度计算的公式的向量;
[0091]
s602:基于待进行相似度计算的公式的向量,进行余弦相似度计算,得到公式间的相似度。
[0092]
例如,对于待进行相似度计算的两个公式,均采用上述步骤s1~s5所述方法计算得到公式的向量,然后对两公式的向量进行余弦相似度计算,得到两公式间的相似度。
[0093]
本发明的数学公式相似度计算方法,能够有效识别并提取文本中含有的数学公式,对其进行规范的向量化处理,使得在利用题目信息时能有效关注到公式所提供的独有特征。在实际业务场景中,依托计算公式之间的相似度并结合文本自身的信息,相似题推荐的有效率以及试题知识点标注的准确率都得到较大的提升。
[0094]
本发明通过引入有关数学公式词嵌入的方法,主要体现在以下几点:将公式转化为两种树形结构,并根据树形结构构建了相对应的元组序列,深入元组内部构建了字符级别的公式词表并用于fasttext n-gram模型的训练。对于混杂数学公式的文本信息,在处理过程中能有效地地避免将文本直接作词向量嵌入带来的信息缺少,能有效捕捉数学公式的内在隐含信息,提高了公式检索匹配的效率,对未知的公式能有效的进行词嵌入表示,且能计算更为精准的公式相似度,从而为实际场景中的下游任务提供有关公式的可靠信息。
[0095]
本发明实施例的数学公式相似度计算方法,通过识别文本中含有的公式,并对识别得到的公式进行结构转化,得到公式的slt树形结构和opt树形结构,从而实现公式的准
确抽取以及公式内在信息的准确表示;通过对公式的slt树形结构构建对应的元组序列,对公式的opt树形结构构建对应的元组序列,对公式的slt树形结构和opt树形结构的元组序列均进行分词处理,分别得到第一词表和第二词表,实现公式内各元素之间隐含的结构和语义信息的获取;通过采用第一词表和第二词表分别训练fasttext n-gram模型,得到两个训练完成的词嵌入模型,使用训练完成的词嵌入模型分别对公式进行编码,得到公式词嵌入后的slt向量表征以及opt向量表征,基于公式的slt向量表征以及opt向量表征计算得到公式的向量,并基于公式的向量计算得到公式间的相似度,从而准确的对公式进行向量化表示并准确完成公式间的相似度计算。
[0096]
参见图3所示,本发明实施例提供的一种数学公式相似度计算系统,包括识别模块、构建模块、分词模块、训练模块、编码模块和计算模块。
[0097]
识别模块用于识别文本中含有的公式,并对识别得到的公式进行结构转化,得到公式的slt树形结构和opt树形结构;构建模块用于对公式的slt树形结构构建对应的元组序列,对公式的opt树形结构构建对应的元组序列;分词模块用于对公式的slt树形结构和opt树形结构的元组序列均进行分词处理,分别得到第一词表和第二词表;训练模块用于采用第一词表和第二词表分别训练fasttext n-gram模型,得到两个训练完成的词嵌入模型;编码模块用于使用训练完成的词嵌入模型分别对公式进行编码,得到公式词嵌入后的slt向量表征以及opt向量表征;计算模块用于基于公式的slt向量表征以及opt向量表征计算得到公式的向量,并基于公式的向量计算得到公式间的相似度。
[0098]
本发明实施例中,基于公式的向量计算得到公式间的相似度,具体过程包括:
[0099]
计算得到待进行相似度计算的公式的向量;
[0100]
基于待进行相似度计算的公式的向量,进行余弦相似度计算,得到公式间的相似度。
[0101]
以上所述仅是本技术的具体实施方式,使本领域技术人员能够理解或实现本技术。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
[0102]
本发明是参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。