【技术实现步骤摘要】
一种用于检索系统的数学公式索引创建方法与系统
本专利技术涉及信息检索、数学公式解析处理等相关
,特别涉及数学公式的解析、标准化、索引创建和检索方法和系统。
技术介绍
随着互联网的发展,网络信息资源的日益丰富,搜索引擎在网络信息资源获取中的作用也日益重要。搜索引擎通过网页信息爬取、文本处理、索引创建等方式,建立关键词与目标文本的索引目录。这样,人们就可通过关键词检索,快速、准确的获得所需的相关信息文本资源。然而,网络上除了大量由自然语言描述的各种文本外,还有许多专业性的结构化文本信息,如数学知识、物理规律等。这些信息对学生、研究人员和专业人士都十分重要。但通用搜索引擎通过分词构建倒排索引的方法对这种结构化文本信息的处理并不完全适用。这是因为数学知识、物理规律除了包含与普通文本相同的自然语言描述之外,还包含大量结构化的公式。在实际描述中,由于书写习惯、教育背景的差异,这些结构化公式的对比无法通过直接的字符串比对实现,变量符号选择的差异就会导致同一公式具有完全不同的字符串表示。因此,数学公式的索引创建往往需要更为复杂的结构化分析,如何有效地创建数学公式的索引也成为高效公式检索的重要保证。目前,数学公式检索和索引创建的常用方法大致可分为以下几类:基于线性字符串索引的公式检索方法。该类方法在索引建立步骤,首先将数学公式做线性化处理,将所有非字母的数学符号对应到英文字母表中一个或一些字符,然后按照一定的规范序列化目标数学公式。该方法避免了公式的结构化嵌套对比,这类方法的查询检索效率高,适合公式的查找 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。