一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数学公式感知索引与排名方法、存储介质及设备与流程

2022-03-05 00:19:58 来源:中国专利 TAG:


1.本发明涉及数学公式的检索技术领域,具体为一种数学公式感知索引与排名方法、存储介质及设备。


背景技术:

2.通过在数字图书馆中搜索,能够查找出大量所需的内容,目前在科技文献中充斥着索引、指数和复杂的数学公式,甚至在论文的基本元数据、标题和摘要中也是如此,在googlescholar上的研究经验表明,搜索中,不处理论文引用中的数学公式会导致严重的问题,数学公式信息搜索是建立数字数学图书馆的核心。
3.目前,已经有许多尝试解决数学公式信息搜索问题的方案,但没有一个解决方案能够被数学社区所广泛采用,到目前为止,在数字图书馆算法或谷歌学术搜索中,可用的数学公式搜索格式,还没有被广泛地接受,目前主流搜索技术仅主要是针对纯文本搜索,主流的搜索技术主要是在简单的向量空间模型中,将文本文档以词袋的形式进行表示,不支持数学公式处理,为了提高搜索的效率,在数学公式的搜索中,提供一种高效的公式搜索处理方法及搜索后对搜索内容的索引和排名方法是十分必要的。


技术实现要素:

4.本发明的目的在于提供一种数学公式感知索引与排名方法、系统、存储介质及计算机设备,以解决上述背景技术中提出的问题。
5.为实现上述目的,本发明提供如下技术方案:
6.一种数学公式感知索引与排名方法,包括以下步骤:
7.s1:根据输入文档,将文档拆分为文本和数学公式信息部分,将文本信息部分使用常规的方式编入索引;
8.s2:将数学公式信息通过软件库的umcl工具集将数学公式信息部分进行mathml标准化处理;
9.s3:将标准化处理后的数学公式信息进行标记化处理,并进行变量和常数的统一化处理,将标准化处理后的数学公式信息存储在一个xml节点标签内,再将数学公式从xml节点转换为压缩字符串形式;
10.s4:使用标准化处理后的数学公式中的每个公式及其子公式进行相似性搜索,获得匹配性的文档信息;
11.s5:考虑每个公式及其子公式的权重并进行评分,将搜索后的文档信息进行排名。
12.优选的,所述步骤s3具体包括以下步骤:
13.s301:排序统一,将可交换操作数按照顺序进行排序;
14.s302:变量统一,将所有变量替换为统一符号,同时保留绑定变量;
15.s303:常数统一,用一个统一符号代替所有数字常数;
16.s304:将所有的数学公式节点逻辑单元放置在xml标签内,并将xml节点转换为压
缩字符串形式。
17.优选的,所述步骤s5中评分采用下述函数:
18.score(q,d)=α
·
sps(q,d)
·
sps(q,d) β
·
scs(q,d)
19.其中,score(q,d)表示在查询q中文档d的得分,α β=1、0≤α≤1、0≤β≤1,α与β的默认值均是0.5;
20.scs(q,d)的计算公式为:
[0021][0022]
其中,coord_factor(q,d)为调节因子,query_boost(q)为每个已知的查询项,v(q)与v(d) 是加权查询向量,|v(q)|是查询欧几里得范数,doc_len_norm(d)和doc_boost(d)为文档长度规范,二者的乘积表示norm(t∈d);
[0023]
sps(q,d)的计算公式为:
[0024][0025]
其中,tf(t∈d)为术语t在当前评分文档d中出现的次数,coord(q,d)为分数因子, idf(t)为逆文档频率,querynorm(q)为一个标准化因子,coord(q,d)为在查询q时文档d中出现的次数别的分数因子。
[0026]
优选的,所述sps(q,d)的计算公式中,tf(d)的计算公式为:
[0027][0028]
所述querynorm(q)的计算公式为:
[0029][0030]
优选的,所述查询项的平方权重的总和计算公式为:
[0031][0032]
其中,t_getboost()是查询q中术语t的搜索时间boost。
[0033]
优选的,所述步骤s5中文件被添加到索引时,所有因子相乘,在文档具有多个同名字段,每个字段的权重相乘作为最终权重,其计算公式为:
[0034][0035][0036]
优选的,所述步骤s4中在搜索时,从xml节点标签的压缩字符串形式内读取规范字节值时并解码回浮点范数值读取。
[0037]
为实现上述目的,本发明另外还提供一种数学公式感知索引与排名的存储介质,其中。所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时能够实现上述的数学公式感知索引与排名方法的步骤。
[0038]
为实现上述目的,本发明另外还提供一种数学公式感知索引与排名的设备,其中,所述计算机设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数学公式感知索引与排名程序,所述数学公式感知索引与排名程序配置为实现上述的数学公式感知索引与排名方法的步骤。
[0039]
与现有技术相比,本发明的有益效果是:
[0040]
本发明首先通过对输入的文档进行处理,获得待搜索的数学公式信息部分,然后对公式进行标准化处理,以促进所搜索数学公式的匹配,然后对输入的公式进行标记化处理,让方法不仅可以搜索整个公式,还可以搜索子公式到单个变量、符号、常量等,为了计算匹配公式与用户查询的相关性,使用索引数学术语的启发式加权,从而计算匹配文档的得分,对搜索的结果进行排列顺序,提高了对搜索后内容的索引排名的准确性和相关性。
附图说明
[0041]
图1为本发明数学公式感知索引与排名方法的方法流程图;
[0042]
图2为本发明数学公式感知索引与排名方法的详细方案示意图;
[0043]
图3为本发明中y=x
x 2
8的实例标记化处理流程图;
[0044]
图4为本发明中的测试效果时的结果图。
具体实施方式
[0045]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0046]
实施例:
[0047]
请参阅图1至图4,本发明提供一种技术方案:
[0048]
一种数学公式感知索引与排名方法,包括以下步骤:
[0049]
s1:根据输入文档,将文档拆分为文本和数学公式信息部分,将文本信息部分使用常规的方式编入索引,数学公式需要以不同方式进行索引处理。
[0050]
s2:将数学公式信息通过软件库的umcl工具集将数学公式信息部分进行mathml标准化处理。
[0051]
其中,标准化处理使用软件库umcl工具集将文档中的mathml进行标准化,在索引和查询阶段都使用此标准化的mathml,这样不仅提高了对文档相似性排名的公平性,而且有助于将查询与mathml的索引形式进行有效匹配。
[0052]
umc工具集的主要目的是将mathml公式转录为数学盲文码,相关的还有mathml公式的统一规范化,mathml到标准的mathml的umcl转换使用一组xsl样式表来进行。
[0053]
用umcl转换生成的mathml规范形式不仅提高了相似性排名的公平性,而且有助于将查询与mathml的索引形式进行匹配。
[0054]
s3:将标准化处理后的数学公式信息进行标记化处理,并进行变量和常数的统一化处理,将标准化处理后的数学公式信息存储在一个xml节点标签内,再将数学公式从xml节点转换为压缩字符串形式。
[0055]
其中,所述步骤s3具体包括以下步骤:
[0056]
s301:排序统一,将可交换操作数按照顺序进行排序;
[0057]
s302:变量统一,将所有变量替换为统一符号,同时保留绑定变量;
[0058]
s303:常数统一,用一个统一符号代替所有数字常数;
[0059]
s304:将所有的数学公式节点逻辑单元放置在xml标签内,并将xml节点转换为压缩字符串形式。
[0060]
标记化是从输入公式中获取子公式的直接过程,上述方法使用表示型mathml标记,其中所有逻辑单元都包含在xml标签中,这使得获取所有子公式成为一个树遍历问题。
[0061]
上述方法执行三种类型的统一方法,其目标是为所有公式创建几个或多或少的通用表示,这些公式通过标记化过程获得。上述方法返回与用户查询相似的匹配项,同时保留公式结构和α等式,图3是对y=x
x 2
8公式进行索引处理的实例。
[0062]
s4:使用标准化处理后的数学公式中的每个公式及其子公式进行相似性搜索,获得匹配性的文档信息。
[0063]
在搜索阶段,将用户输入分为数学和文本两部分。然后以与索引阶段相同的方式对公式进行预处理,除了标记化分词-用户有可能还要搜索查询公式的子部分而不仅仅是公式整体,搜索时,从索引目录中读取规范字节值并解码回浮点范数值,这种编码/解码在减小索引大小的同时,也带来了精度损失的代价。将范数值压缩为单个字节可以在搜索时节省内存,因为一旦在搜索时引用了一个字段,则对于所有文档的范数都会保存在内存中。之所以对范数值进行这种有损压缩,是因为要考虑到用户通过查询表达其真实信息需求的难度和不准确性,所以只有大的差异才重要。
[0064]
s5:考虑每个公式及其子公式的权重并进行评分,将搜索后的文档信息进行排名。其中,对搜索结果的权重进行评分的方法和采用的函数基于lucene进行,lucene中的相似度计算是信息检索的中布尔模型(boolean model)和向量空间模型的结合,在lucene的 vsm中,公式和查询被表示为多维空间中的加权向量,其中每个不同的索引词是维度,权重是tf-idf值。
[0065]
所述步骤s5中评分采用下述函数:
[0066]
score(q,d)=α
·
sps(q,d)
·
sps(q,d) β
·
scs(q,d)
[0067]
其中,score(q,d)表示在查询q中文档d的得分,α β=1、0≤α≤1、0≤β≤1,α与β的默认值均是0.5。
[0068]
由于上述公式中消除了文档的长度信息的影响,对某些文档消除文档长度信息是合理的,例如,一个通过复制某一段10次而成的文件。但是对于不包含重复段落的文件,这可能是错误的。为了避免这个问题,使用不同的文档长度归一化因子doc_len_norm(d),在进行索引时,用户可以指定某些文档比其他文档更重要,即对文档提权。每个文档的分数需要乘以其指提权值doc_boost(d)。
[0069]
lucene是基于域的,因此除了文档提权之外还有域提权,,因此在索引过程中可以单独对文档的某个域进行提权,在索引过程中,可以将相同的域添加到文档中,即可以多次添加相同的域,因此域的提权是文档内该域添加提权的乘积。
[0070]
搜索时用户可以对每个公式、子公式进行提权,因此公式对文档得分的贡献需要乘以该查询词的提权query_boost(q)。
[0071]
一个文档可以匹配查询的多个词,因此可以根据匹配查询的词的个数对文档提权,使用调节因子进行调节。
[0072]
综上所述,我们可以得到scs(q,d)的计算公式为:
[0073][0074]
其中,coord_factor(q,d)为调节因子,query_boost(q)为每个已知的查询项,v(q)与v(d) 是加权查询向量,|v(q)|是查询欧几里得范数,doc_len_norm(d)和doc_boost(d)为文档长度规范,二者的乘积表示norm(t∈d),因为查询项和文档被字段化,并且query_boost(q)通常是每个查询项,而不是每个查询。
[0075]
上述公式,是某种意义上的简化,为了有效的计算分数,一些评分项会被预先计算和聚合,搜索开始时,查询的查询提权是已知的,可以在搜索开始时计算,因为它与被评分的文档无关。从搜索优化的角度看,为什么要那么麻烦要对查询进行归一化处理?每个计算的文档都会被乘以相同数值,文档的最后得分不会因其而改变。但是由于以下原因需要保持这个计算:
[0076]
a、用于比较文档的相似性,也就是说三分是文档级别的,因此查询可以看做是一个文档,只是这个文档比较小,只包含查询词。该值使得两个不同查询的结果文档的得分是可以比较的。对于同一个index的同一个query该值是唯一的。作为查询归一化,那么它作用就是缩小同一个query在不同index上产生的影响。这使得分布式查询的评分变得有意义和有可比性。
[0077]
b、由于浮点精度限制而导致分数数据丢失。
[0078]
c、长度归一化和文档提权在索引期间是已知的,它们是事先计算出来的,它们的乘积在索引中保存为一个单一的值其代表着表示与t相关的域。
[0079]
以上,可得出sps(q,d)的计算公式为;
[0080][0081]
其中,tf(t∈d)为术语t在当前评分文档d中出现的次数,coord(q,d)为分数因子, idf(t)为逆文档频率,querynorm(q)为一个标准化因子,coord(q,d)为在查询q时文档d中出现的次数别的分数因子;所述sps(q,d)的计算公式中,tf(d)的计算公式为:
[0082][0083]
所述querynorm(q)的计算公式为:
[0084][0085]
所述查询项的平方权重的总和计算公式为:
[0086][0087]
其中,t_getboost()是查询q中术语t的搜索时间boost。
[0088]
所述步骤s5中文件被添加到索引时,所有因子相乘,在文档具有多个同名字段,每
个字段的权重相乘作为最终权重,其计算公式为:
[0089][0090][0091]
为实现上述目的,本发明另外还提供一种数学公式感知索引与排名的存储介质,其中。所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时能够实现上述的数学公式感知索引与排名方法的步骤。
[0092]
为实现上述目的,本发明另外还提供一种数学公式感知索引与排名的设备,其中,所述计算机设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数学公式感知索引与排名程序,所述数学公式感知索引与排名程序配置为实现上述的数学公式感知索引与排名方法的步骤。
[0093]
方法测试:
[0094]
为了评估上述的方法,建立了一个数学文本语料库数据集,称为mathreteval,从 axiv.org下载文档,将其中的tex文档被转换成xml文档,对于数学公式的表示,使用了w3c标准mathml。所使用的文件来自不同的科学领域,如物理学、数学、计算机科学、定量生物学、定量金融和统计学等领域。
[0095]
根据转换到mathml的返回值,将转换后的文档分为几个类:成功、完整但有错误、不完整,mathreteval不包含完整的arxiv文档,仅包含来自转换类成功,完整但有错误,比如缺少宏的文档等,如表1所示:
[0096]
表1:从arxiv.org收集的文档,完全没有考虑数学公式的结构或语义相似性。
[0097]
表1:从arxiv.org收集并转换的文档
[0098][0099]
收集796759个格式良好的xhtml文档,其中包含有效mathml中的数学公式,将其命名为mathreteval。
[0100]
在此实验中,我们使用这个真实数学论文的语料库数据集评估上述方法的性能,这些文档来自arxiv.org,首先将文档集从arxiv转换为xhtml mathml文档。
[0101]
下面测试上述方法在索引和搜索相对庞大的真实科学文献语料库的能力,由于其预处理功能以及公式加权模型,其可用性大大提高,搜索精确和相似的公式和子公式的能力,尤其是可定制的相关性计算,展示了对整个搜索体验的无可置疑的贡献。
[0102]
要完全验证前面部分中所做的理论考虑的正确性以及搜索结果的正确性,即使是可能的,也是非常困难的,为此,将需要具有完全受控内容,且足够大的文档语料库,对于任何组合查询,应该先将其存在一个完整的文档列表,这些文档按查询的相关性排序,以便与
实际结果进行比较。另一方面,返回结果与现实世界相关性需要通过广泛的用户研究来验证,并且可能需要调整几个参数以获得最佳结果。
[0103]
整个文档集包含158106118个公式,经过所有预处理后,用此方法索引了2910314146 个公式,索引运行时间为1378分钟(近24小时),结果索引大小约为88gb。
[0104]
在可扩展性测试实验中查看方法在索引文档和公式数量增加时的性能。将所有的 796759个文档分成多个子集,每个子集包含的文档数分别是:
[0105]
10000,50000,100000,200000,300000,400000,500000,600000,700000与796759个文档,然后逐渐索引这些子集,测量的指标包括:输入公式的数量,索引公式的数量,通过观察可看出,方法的扩展性与文档数量近似成线性关系,结果如图4所示。
[0106]
由此可知,上述方法的可扩展性能与文档数量近似呈线性关系,即使对于数十亿的索引子公式,这也提供了可行的响应时间,即使小公式在大多数文档中能够得分匹配
[0107]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献