一种用于检索系统的数学公式索引创建方法与系统技术方案

技术编号:23343513 阅读:20 留言:0更新日期:2020-02-15 03:56
本发明专利技术提出一种用于检索系统的数学公式索引创建方法与系统,其能够通过公式解析、公式树节点合并、公式树节点重排、叶子节点符号替换、公式树字符串索引创建等几个步骤,实现对Latex数学公式的快速索引创建,解决了由于公式书写习惯差异、基本运算规律使用而导致的索引创建不唯一问题,能够为数学公式的精确检索提供准确、有效的倒排索引。该发明专利技术在计算机检索系统中对于数学知识检索、自动推理等方面具有重要的应用价值,提高了检索系统的检索效率。

A method and system of creating index of mathematical formula for retrieval system

【技术实现步骤摘要】
一种用于检索系统的数学公式索引创建方法与系统
本专利技术涉及信息检索、数学公式解析处理等相关
,特别涉及数学公式的解析、标准化、索引创建和检索方法和系统。
技术介绍
随着互联网的发展,网络信息资源的日益丰富,搜索引擎在网络信息资源获取中的作用也日益重要。搜索引擎通过网页信息爬取、文本处理、索引创建等方式,建立关键词与目标文本的索引目录。这样,人们就可通过关键词检索,快速、准确的获得所需的相关信息文本资源。然而,网络上除了大量由自然语言描述的各种文本外,还有许多专业性的结构化文本信息,如数学知识、物理规律等。这些信息对学生、研究人员和专业人士都十分重要。但通用搜索引擎通过分词构建倒排索引的方法对这种结构化文本信息的处理并不完全适用。这是因为数学知识、物理规律除了包含与普通文本相同的自然语言描述之外,还包含大量结构化的公式。在实际描述中,由于书写习惯、教育背景的差异,这些结构化公式的对比无法通过直接的字符串比对实现,变量符号选择的差异就会导致同一公式具有完全不同的字符串表示。因此,数学公式的索引创建往往需要更为复杂的结构化分析,如何有效地创建数学公式的索引也成为高效公式检索的重要保证。目前,数学公式检索和索引创建的常用方法大致可分为以下几类:基于线性字符串索引的公式检索方法。该类方法在索引建立步骤,首先将数学公式做线性化处理,将所有非字母的数学符号对应到英文字母表中一个或一些字符,然后按照一定的规范序列化目标数学公式。该方法避免了公式的结构化嵌套对比,这类方法的查询检索效率高,适合公式的查找精确。但其无法区分由于表述风格差异而导致索引结果不一致,也不支持在交换律、结合律等常见转换规律下等价公式的有效查找。基于语法结构的公式检索方法。该类方法将数学公式完整解析,然后通过划分子域或建立等价置换树来索引公式;在查找时,检索函数通过递归比较各个子域或分支树的相似度来实现对具体公式的检索。这类方法能够实现公式的精确检索,但由于需要递归匹配目标公式与查询公式,其无法利用通用搜索引擎提供的倒排索引实现快速查找,实际公式检索性能较低。基于子公式比对的公式检索方法。这类方法认为,复杂的公式都是通过简单公式归纳、变形得到的。因此,只要找到最够多相同的子公式就可以判别整体公式的相似性。这类方法将待处理公式解析分拆成具有基本结构的多个表达式(有时还会存储这些表达式在原公式中的深度信息),然后以这些表达式为索引建立原公式的倒排索引。在检索时,公式检索系统也会对目标公式分拆,再以各表达式分别检索查询,最后通过合并获得最终结果。这类方法并不去匹配严格的结构信息,而是通过局部的相似性来做整体的检测。由于这类方法是基于相似度的近似检索,其并不能保证结果的准确性。
技术实现思路
本专利技术技术解决问题:针对现有数学公式检索、索引创建技术上的不足,提供一种基于公式解析的数学公式索引创建方法与系统,其能够通过公式解析、公式树节点合并、公式树节点重排、叶子节点符号替换、公式树字符串索引创建等几个步骤,实现对Latex数学公式的快速索引创建,解决了由于公式书写习惯差异、基本运算规律使用(如交换律、结合律)而导致的索引创建不一致问题,能够为数学公式的精确检索提供准确、有效的倒排索引。该专利技术在计算机检索系统中对于数学知识检索、自动推理等方面具有重要的应用价值,提高了检索系统的检索效率。本专利技术中提出的一种用于检索系统的数学公式索引创建的方法,所述方法包括如下步骤:步骤1:在数学公式的文本解析步骤,对输入的Latex数学公式字符串解析,如果解析成功,则将其转化为数学公式树,转步骤2;否则,返回解析错误,结束。步骤2:在基于结合律的公式树节点合并步骤,遍历公式树中的所有父子节点,对具有相同的操作符且操作符满足结合律的父子节点合并,生成新的公式树,转步骤3。步骤3:在基于交换律的公式树节点重排步骤,为Latex符号定义序,遍历公式树的所有节点,对操作符满足交换律的节点,重排其子树顺序,使得重排后该节点各子树按照序从小到大的顺序排列,转步骤4。步骤4:在叶子节点的符号替换步骤,根据检索需求,将公式树的所有叶子节点中的常量符号、变量符号都替换为统一的通识符,转步骤5。步骤5:在公式树的字符串索引创建步骤,按照定义的规则,将标准化公式树转化为标准公式字符串,创建数学公式的各类字符串索引,结束。本专利技术还提出一种用于检索系统的数学公式索引创建的系统,包括:数学公式的文本解析模块,用于对输入的Latex数学公式字符串解析,如果解析成功,则将其转化为数学公式树,转到基于结合律的公式树节点合并模块;否则,返回解析错误;基于结合律的公式树节点合并模块,用于遍历公式树中的所有父子节点,对具有相同的操作符且操作符满足结合律的父子节点合并,生成新的公式树;基于交换律的公式树节点重排模块,用于为Latex符号定义序,遍历公式树的所有节点,对操作符满足交换律的节点,重排其子树顺序,使得重排后该节点各子树按照序从小到大的顺序排列;叶子节点的符号替换模块,用于根据检索需求,将公式树的所有叶子节点中的常量符号、变量符号都替换为统一的通识符;公式树的字符串索引创建模块,用于按照定义的规则,将标准化公式树转化为标准公式字符串,创建数学公式的各类字符串索引。本专利技术与现有技术相比的优点:由本专利技术构建的索引检索,无需再做过多的后续处理,其能够有效消除常见运算规律、检索用户变量使用习惯、表达习惯带来的索引差异,能够准确快速地检索到精确匹配的公式或文本。该方法能够适应于针对数学知识的检索系统,作为数学公式推理的辅助索引创建模块,其避免了由于检索规则设置不合理而导致的检索结果不精确等问题。本专利技术具有实现简单、执行高效等特点。附图说明图1为本专利技术的实现流程图;图2为本专利技术的数学公式文本解析流程图;图3为本专利技术的公式解析函数FormulaAnalysis流程图;图4为本专利技术的基于结合律的公式树节点合并流程图;图5为本专利技术的基于交换律的公式树节点重排函数TreeReset流程图;图6为本专利技术的公式树索引创建函数PrintTree流程图;图7为本专利技术的公式树字符串索引创建流程图;图8为本专利技术的系统第一子系统示意图;图9为本专利技术的系统第二子系统示意图。具体实施方式下面结合附图对本专利技术的技术方案进行详细说明。参见图8,一般的信息检索系统包括两个相对独立的子系统:一个是将检索文本收集处理从而获得检索的索引创建系统,其包括文本获取、文本转换、索引创建等主要模块;参见图9,另一个是用户输入检索信息,通过用户交互、查找排序获得相关文件数据的查询系统,该系统还包括根据用户日志信息对检索结果的评估。本专利技术基于这类计算机信息检索系统,针对带有Latex公式的数学文本检索。本专利技术所解决的技术问题是:在文本转换步骤获得Latex数学公式后,在索引创建步骤针对各个Latex公式文本而开展本文档来自技高网
...

【技术保护点】
1.一种用于检索系统的数学公式索引创建方法,其特征在于,包括如下步骤:/n步骤1:进行数学公式的文本解析,对输入的Latex数学公式字符串进行解析,如果解析成功,则将其转化为数学公式树,转步骤2;否则,返回解析错误,结束;/n步骤2:进行基于结合律的公式树节点合并,遍历公式树中的所有父子节点,对具有相同的操作符且操作符满足结合律的父子节点合并,生成新的公式树,转步骤3;/n步骤3:进行基于交换律的公式树节点重排,为Latex符号定义序,遍历公式树的所有节点,对操作符满足交换律的节点,重排其子树顺序,使得重排后该节点各子树按照序从小到大的顺序排列,转步骤4;/n步骤4:进行叶子节点的符号替换,根据检索需求,将公式树的所有叶子节点中的常量符号、变量符号都替换为统一的通识符,转步骤5;/n步骤5:进行公式树的字符串索引创建,按照定义的规则,将标准化公式树转化为标准公式字符串,创建数学公式的各类字符串索引,结束。/n

【技术特征摘要】
1.一种用于检索系统的数学公式索引创建方法,其特征在于,包括如下步骤:
步骤1:进行数学公式的文本解析,对输入的Latex数学公式字符串进行解析,如果解析成功,则将其转化为数学公式树,转步骤2;否则,返回解析错误,结束;
步骤2:进行基于结合律的公式树节点合并,遍历公式树中的所有父子节点,对具有相同的操作符且操作符满足结合律的父子节点合并,生成新的公式树,转步骤3;
步骤3:进行基于交换律的公式树节点重排,为Latex符号定义序,遍历公式树的所有节点,对操作符满足交换律的节点,重排其子树顺序,使得重排后该节点各子树按照序从小到大的顺序排列,转步骤4;
步骤4:进行叶子节点的符号替换,根据检索需求,将公式树的所有叶子节点中的常量符号、变量符号都替换为统一的通识符,转步骤5;
步骤5:进行公式树的字符串索引创建,按照定义的规则,将标准化公式树转化为标准公式字符串,创建数学公式的各类字符串索引,结束。


2.根据权利要求1所述的一种用于检索系统的数学公式索引创建方法,其特征在于:
所述步骤1首先根据Latex操作符的性质设置操作符参数数量和操作符优先级;然后,根据Latex的公式构建规则,将Latex数学公式字符串解析成具有层次结构的公式树;具体方法步骤如下:
步骤1.1:根据Latex各操作符的性质,确定各操作符参数数量,并用OptParaNum(opt)记录操作符opt的固定参数数量,其中opt是操作符变量;如果opt是中缀操作符,那么OptParaNum(opt)=2;
步骤1.2:根据中缀操作符的实际优先级,按从小到大的顺序为操作符设置优先级数值:优先级最低的中缀操作符的优先级数值设定为1;随后,按照优先级由小到大的顺序,中缀操作符的优先级数值逐渐增加1;假设该中缀操作符的优先级数值为MaxMidPriority;接着,令所有前缀操作符具有相同的优先级数值,即MaxMidPriority+1;用OptPriority(opt)记录操作符opt的优先级数值,其中opt是操作符变量;
步骤1.3:使用递归函数将带有前缀操作符、中缀操作符、常量、变量、括号的Latex数学公式字符串,转换为以root为根节点的公式树;其中,公式树的非叶子节点存储着操作符、操作符的参数数量,以及指向该操作符各操作对象的指针;公式树的叶子节点存储着变量符号或常量符号;递归函数FormulaAnalysis被用于公式树的构建,以Latex符号串SymbolString为输入,判别SymbolString的规范性:如果在SymbolString符合Latex公式规范,FormulaAnalysis(SymbolString)将返回与SymbolString对应的公式树;否则,返回解析失败。


3.根据权利要求1所述的一种用于检索系统的数学公式索引创建方法,其特征在于:
所述步骤2将遍历给定公式树的所有节点,如果某一节点的操作符具有结合律且其某一子树根节点也具有相同的操作符,则从该节点删除这颗子树,将这颗子树的各个分支以子树的形式加入当前节点,随后调整当前节点操作符参数数量。


4.根据权利要求3所述的一种用于检索系统的数学公式索引创建方法,其特征在于:所述步骤2具体包括:
步骤2.1:创建一个空的节点序列list,将待处理公式树的根节点root加到list尾部,转步骤2.2;
步骤2.2:如果list不为空,则从list头部取出一个节点,记为note,转步骤2.3;否则,转步骤2.7;
步骤2.3:如果note节点存储的操作符具有结合律,转步骤2.4;否则,将note从list中删除,将note节点的所有分支树的根节点依次加到list尾部,转步骤2.2;
步骤2.4:将note节点的每一个分支树的根节点编号,设其编号为1,...,m,m为自然数,设note的根节点依次为root1,...,rootm,令k=1,转步骤2.5;
步骤2.5:记note节点当前的分支数量为M,如果k<=M,转步骤2.6;否则,将note从list中删除,转步骤2.2;
步骤2.6:如果rootk与note具有相同的操作符,设rootk有Bk个分支子树,将rootk从公式树note节点的分支中删除,再将rootk节点的所有分支树插入到原公式树note节点的第k到第k+Bk-1个分支位置上,同时将note尚未处理的分支依次后移,接着将note的操作符参数数量增加Bk-1,转步骤2.5;否则,k++,转步骤2.5;
步骤2.7:结束,返回调整后以root为根节点的新公式树。


5.根据权利要求1所述的一种用于检索系统的数学公式索引创建方法,其特征在于:所述步骤3具体为:
步骤3.1:为数学公式使用的操作符、变量符号、常量符号定义唯一的序,该序需满足:1)所有变量符号的序都要大于任意操作符的序;2)所有常量符号的序要大于任意变量符号的序;操作符、变量符号、常...

【专利技术属性】
技术研发人员:蒋东辰付双许博刘俊杰欧琳琳
申请(专利权)人:北京林业大学
类型:发明
国别省市:北京;11

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

1