一种多源Markdown地质资料文本格式规范化方法及系统

文档序号:749415 发布日期:2021-04-23 浏览:22次 >En<

阅读说明:本技术 一种多源Markdown地质资料文本格式规范化方法及系统 (Multi-source Markdown geological data text format standardization method and system ) 是由 邓吉秋 夏晨晨 刘文毅 雷玉娇 何美香 路馥毓 于 2021-01-08 设计创作,主要内容包括:本发明涉及一种多源Markdown地质资料文本格式规范化方法及系统,所述方法包括:S1、根据预先设定的文本清理判断规则,判断文本中任一行文本是否符合清理判断准则,获取判断结果;所述文本清理判断规则包括:第一级规则为规定清理判断准则进行判断的顺序的优先级规则;第二级规则为清理判断准则,用于判断文本是否符合清理判断准则;S2、根据所述判断结果和预先设定文本清理判断规则及规范化处理方法,进行规范处理,获取规范文本;所述规范化处理方法与所述文本清理判断规则对应,解决了对Markdown格式地质资料文本格式规范化处理需要有经验的操作人员才能完成,且速度慢、效率低、无法避免人为疏忽带来的判断错误的问题。(The invention relates to a method and a system for standardizing text formats of multisource Markdown geological data, wherein the method comprises the following steps: s1, judging whether any line of text in the text meets the clearing judgment criterion according to a preset text clearing judgment rule, and acquiring a judgment result; the text cleaning judgment rule comprises the following steps: the first-level rule is a priority rule which specifies the sequence of judgment performed by the cleaning judgment criterion; the second-level rule is a cleaning judgment criterion and is used for judging whether the text meets the cleaning judgment criterion; s2, performing standard processing according to the judgment result, a preset text cleaning judgment rule and a standard processing method to obtain a standard text; the normalization processing method corresponds to the text cleaning judgment rule, and solves the problems that the normalization processing of the text format of the geological data in the Markdown format can be completed only by experienced operators, the speed is low, the efficiency is low, and the judgment error caused by human negligence cannot be avoided.)

一种多源Markdown地质资料文本格式规范化方法及系统

技术领域

本发明涉及文档资料内容规范化处理技术领域,尤其涉及一种多源Markdown地质资料文本格式规范化方法及系统。

背景技术

随着信息技术的发展,数字化地质资料格式多样、数据存储空间大的特点日益凸显,数据存储与使用成为亟需解决的问题。地质资料的数据格式是数据能否长期存储的关键,现有Word、PDF、TXT、HTML、CAJ、PPT、MapGIS、MapInfo等地质资料数据格式,而地质资料文本内容完整、可识别度高与规范是数据持续使用的关键。

面对地质资料数据存储与使用的需求,规范化的地质资料成为现实需求。规范化不仅指文档内容的规范化,也包括文档格式的规范化,但大多只涉及前者。有经验的专业人员根据各格式特点,人为规范化。但人工处理耗时费力、无法确保不存在遗漏和错误,且格式具有多样性,不便于后续使用。

现有技术:1.提前设计包含数据规范处理方法的文档规范化处理模板,用户根据需求调用相应的数据规范处理方法。2.固定规范化模板,通过语义分析、信息抽取将文本内容抓取整合到规范模板对应位置,从而生成最终文档。

现有技术的缺点:针对文档资料内容规范化处理,现有技术采用固定规范模板、规范化处理模板人机交互处理或纯人工的方式处理文档。人机交互与纯人工处理需要有经验的操作人员才能完成,速度慢、效率低、无法避免人为疏忽带来的判断错误;固定规范模板,其纲目结构、段落内容、文档格式大多固定,灵活性不够。对多源Markdown格式的地质资料文本格式规范未有涉及。

发明内容

(一)要解决的技术问题

鉴于现有技术的上述缺点和不足,本发明提供一种多源Markdown地质资料文本格式规范化方法及系统。解决了对Markdown格式地质资料文本格式规范化处理需要有经验的操作人员才能完成,且速度慢、效率低、无法避免人为疏忽带来的判断错误的问题。

(二)技术方案

为了达到上述目的,本发明采用的主要技术方案包括:

第一方面,本发明实施例提出的一种多源Markdown地质资料文本格式规范化方法,其特征在于,包括:

S1、根据预先设定的文本清理判断规则,判断文本中任一行文本是否符合清理判断准则,获取判断结果;

其中,所述文本为多源Markdown地质资料文本;

所述文本清理判断规则包括:

第一级规则为规定清理判断准则进行判断的顺序的优先级规则;

第二级规则为清理判断准则,用于判断文本是否符合清理判断准则;

S2、根据所述判断结果和预先设定文本清理判断规则及规范化处理方法,进行规范处理,获取规范文本;

所述规范化处理方法与所述文本清理判断规则对应。

优选的,所述步骤S1包括:

按照文本清理规则所对应的优先级顺序逐级对文本每一行文本进行判断,获取所述行文本的判断结果。

优选的,所述步骤S2包括:

若所述行文本的判断结果为符合相应清理判断准则,则采用预先设定的与所述清理判断准则对应的规范处理的方法进行规范处理,获取所述行文本所对应的规范文本。

优选的,

所述优先级包括:第一级判别规则、第二级判别规则、第三级判别规则、第四级判别规则、第五级判别规则、第六级判别规则。

优选的,

所述优先级的判断顺序依次为:第一级判别规则、第二级判别规则、第三级判别规则、第四级判别规则、第五级判别规则、第六级判别规则。

优选的,

所述清理判断准则包括:预先设定的多条件准则、预先设定的正则表达式准则、预先设定的方法标识符准则;

所述预先设定的多条件准则包括:

预先设定的和规则、预先设定的或规则、预先设定的非规则;

所述预先设定的和规则所对应的优先级的判断顺序在所述预先设定的或规则所对应的优先级的判断顺序之前;

所述预先设定的或规则所对应的优先级的判断顺序在所述预先设定的非规则所对应的优先级的判断顺序之前;

预先设定的和规则,表示行文本需要同时满足和规则两侧的正则表达式或预先设定的其他规则表达式;

预先设定的或规则,表示行文本只需满足或规则两侧的一个正则表达式或预先设定的其他规则表达式;

预先设定的非规则,表示行文本不满足非规则后的正则表达或预先设定的其他规则表达式;

预先设定的正则表达式准则,行文本满足正则表达式;

预先设定的方法标识符准则,行文本满足预先定义的方法。

优选的,

所述规范化处理方法还分别与预先设定的清理判断准则描述、清理判断准则优先级、清理判断规则、调用规范化处理方法所需传入的原始字符、调用规范化处理方法所需传入的替换字符、调用规范化处理方法所需传入值的前项、调用规范化处理方法所需传入值的后项对应。

第二方面,本发明实施例提供一种多源Markdown地质资料文本格式规范化系统,包括:

至少一个处理器;以及

与所述处理器通信连接的至少一个存储器,其中,所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如上述任一的一种多源Markdown地质资料文本格式规范化方法。

(三)有益效果

本发明的有益效果是:本发明由于采用根据预先设定的文本清理判断规则,判断文本中任一行文本是否符合清理判断准则,获取判断结果;根据所述判断结果和预先设定文本清理判断规则及规范化处理方法,进行规范处理,获取规范文本,相对于已有技术而言,其可以实现Markdown格式地质资料的自动规范化处理,提高了工作效率与数据准确性,方法具有通用性与扩展性。

附图说明

图1为本发明的一种多源Markdown地质资料文本格式规范化方法流程图;

图2为本发明实施例二中的一种多源Markdown地质资料文本格式规范化方法示意图。

具体实施方式

为了更好地解释本发明,以便于理解,可通过参照附图更详细地描述本发明的示例性实施例。此外可以各种形式实现本发明而非仅限于这里阐述的实施例。提供这些实施例是为了能够更清楚透彻地理解本发明,并且能够将本发明的范围完整地传达给本领域的技术人员。

实施例一

参见图1,本实施例提供一种多源Markdown地质资料文本格式规范化方法,包括:

S1、根据预先设定的文本清理判断规则,判断文本中任一行文本是否符合清理判断准则,获取判断结果。

其中,所述文本为多源Markdown地质资料文本。

所述文本清理判断规则包括:

第一级规则为规定清理判断准则进行判断的顺序的优先级规则。

第二级规则为清理判断准则,用于判断文本是否符合清理判断准则。

S2、根据所述判断结果和预先设定文本清理判断规则及规范化处理方法,进行规范处理,获取规范文本。

所述规范化处理方法与所述文本清理判断规则对应。

优选的,所述步骤S1包括:

按照文本清理规则所对应的优先级顺序逐级对文本每一行文本进行判断,获取所述行文本的判断结果。

本实施例中优选的,所述步骤S2包括:

若所述行文本的判断结果为符合相应清理判断准则,则采用预先设定的与所述清理判断准则对应的规范处理的方法进行规范处理,获取所述行文本所对应的规范文本。

本实施例中优选的,所述优先级包括:第一级判别规则、第二级判别规则、第三级判别规则、第四级判别规则、第五级判别规则、第六级判别规则。

本实施例中优选的,所述优先级的判断顺序依次为:第一级判别规则、第二级判别规则、第三级判别规则、第四级判别规则、第五级判别规则、第六级判别规则。

所述清理判断准则包括:预先设定的多条件准则、预先设定的正则表达式准则、预先设定的方法标识符准则。

所述预先设定的多条件准则包括:

预先设定的和规则、预先设定的或规则、预先设定的非规则。

所述预先设定的和规则所对应的优先级的判断顺序在所述预先设定的或规则所对应的优先级的判断顺序之前。

所述预先设定的或规则所对应的优先级的判断顺序在所述预先设定的非规则所对应的优先级的判断顺序之前。

预先设定的和规则,表示行文本需要同时满足和规则两侧的正则表达式或预先设定的其他规则表达式。

预先设定的或规则,表示行文本只需满足或规则两侧的一个正则表达式或预先设定的其他规则表达式。

预先设定的非规则,表示行文本不满足非规则后的正则表达或预先设定的其他规则表达式。

预先设定的正则表达式准则,行文本满足正则表达式。

预先设定的方法标识符准则,行文本满足预先定义的方法。

本实施例中所述规范化处理方法还分别与预先设定的清理判断准则描述、清理判断准则优先级、清理判断规则、调用规范化处理方法所需传入的原始字符、调用规范化处理方法所需传入的替换字符、调用规范化处理方法所需传入值的前项、调用规范化处理方法所需传入值的后项对应。

本实施的一种多源Markdown地质资料文本格式规范化方法由于采用根据预先设定的文本清理判断规则,判断文本中任一行文本是否符合清理判断准则,获取判断结果;根据所述判断结果和预先设定文本清理判断规则及规范化处理方法,进行规范处理,获取规范文本,相对于现有技术而言,其可以实现Markdown格式地质资料的自动规范化处理,提高了工作效率与数据准确性,方法具有通用性与扩展性。

本实施例还提供一种多源Markdown地质资料文本格式规范化系统,包括:

至少一个处理器,以及

与所述处理器通信连接的至少一个存储器,其中,所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如上述任一所述的一种多源Markdown地质资料文本格式规范化方法。

实施例二

参见图1和图2,本实施例提供一种多源Markdown地质资料规范化处理方法,包括如下步骤:

S1、根据预先设定的文本清理判断规则,判断文本中任一行文本是否符合清理判断准则,获取判断结果。其中,所述文本为多源Markdown地质资料文本。

在本实施例的步骤S1的实际应用中,首先需进行全文文本遍历:从格式清理准则优先级最高的开始,按规则逐级对文本全文进行遍历;设规则集为rules,文本为texts,当前清理准则优先级curPri,当前遍历规则rule,当前行文本context,行索引contextIndex且为整型;逐级遍历时,从当前准则优先级curPri开始,当规则rule对应的优先级为curPri时,以行索引contextIndex先后顺序对行文本context进行处理,每次处理一个优先级为curPri的规则rule,遍历一遍所有优先级为curPri的规则rule,即行文本context在当前优先级curPri所有规则rule下的处理完毕;进入下一行文本继续当前优先级curPri所有规则rule的处理,直至遍历完文本texts所有行文本,每一个文本texts处理完成即优先级curPri处理完成,进入下一优先级,直至所有优先级与规则rule遍历一遍。

在本实施例的步骤S1的实际应用中,然后规则定义:

建立文本清理判别规则表,规则表具有以下特征:

覆盖Markdown格式地质资料需规范的可能情况

为每种情况定义两级规则:

第一级规则为清理判别优先级Priority规则,主要用于规定规则判断层级先后顺序,优先级有0-5级,0级为最先判别规则,然后第1级,以此类推。

第二级规则为清理判断关联准则,主要用于对文本内容的判断,判断文本是否符合清理判断准则,清理判断关联准则采用多条件准则(和规则&&、或规则||、非规则NOT)、正则表达式,方法标识符(\%.*%\)定义,其中关联准则与语法规则如表1:

表1基本关联准则定义表

其中:/%name%中的name为方法名,多条件准则控制符(非规则NOT、或规则||、和规则&&),非规则NOT对应的优先级级别最高、或规则||次之、和规则&&最低。

上述关联准则可组合使用,形成清理判断的准则。

如tableNameOScompile&&/%nexttwoline%/NOT tableContext,表示行文本满足tableNameOScompile准则且nexttwoline方法的返回结果不满足tableContext准则。

正则表达式定义如表2:

表2正则表达式表

清理判断规则及规范化处理如表3:表头Description为清理判断准则描述,Priority为清理判断准则优先级,Rules为清理判断规则,Processing为规范化处理方法,oriChar原始字符,repChar替换字符,antecedent前项,succedent后项为调用规范化处理方法所需传入值。

表3清理判断规则及规范化处理表

规范化处理方法说明如表4:

表4规范化处理方法说明表

上述规则表以Excel文件存储;

所有Markdown格式地质资料的规范判别与处理,均需根据规则描述规范预先定义在表3清理判断规则及规范化处理表中,清理判断的正则表达式可以定义在表2正则表达式表中或直接定义在表3清理判断规则及规范化处理表中。

在本实施例的步骤S1的实际应用中,Markdown格式地质资料格式清理判断过程如下:

遍历规则集rules,获取判断优先级集合priorityList,根据规则优先级逐级对文本texts进行遍历处理,设当前优先级curPri,遍历文本texts:从文本texts首行开始,设当前不为空的行文本context,行索引contextIndex,遍历优先级curPri的所有规则rule,进入步骤(3-1)判断行文本context与规则rule是否匹配,确定行文本context是否需要规范:若需要则进入步骤(4-1)获取规范行文本,若不需要进入,则该行文本context在当前规则rule已是规范文本,直接进入下一规则的判断。

(3-1)判断和规则“&&”、或规则“||”是否在规则rule中:若在进入步骤(3-2)判断文本是否需要处理,获取返回值isCleaning:否则进入步骤(3-3)判断文本是否需要处理,获取返回值isCleaning。

(3-2)获取规则rule、行文本context,以和规则“&&”、或规则“||”为关键字分割规则rule存储于列表RuleList,遍历规则表RuleList:设当前遍历规则midrule,进入步骤(3-4)判断行文本context是否需要处理,获取判断结果isCleaning:如果判断结果isClening等于“True”,进入步骤(4-1)对行文本context进行规范化处理,获取规范行文本context,返回行文本context;否则进入下一规则rule的判断。

(3-3)获取规则rule、行文本context,将规则rule赋值为中间规则midrule,进入步骤(3-4)判断行文本context是否需要处理,获取判断结果isCleaning:如果判断结果isCleaning等于“True”,进入步骤(4-1)对行文本context进行规范化处理,获取规范行文本context,返回行文本context;否则进入下一规则rule的判断。

(3-4)获取规则midrule、行文本context,进入步骤(3-5)判断规则midrule是否含有方法关键字,获取方法判断结果isMethod,获取方法名functionName;判断规则midrule是否含有非规则NOT关键字,非规则判断结果isNOT:若方法判断结果isMethod等于“True”,进入步骤(3-6)判断规则midrule是否为正则表达式的名称,获取规则midrule对应正则表达式赋值为规则midrule,进入(3-7)进行规则方法的处理,判断行文本context是否需要处理,获取判断结果isCleaning;如果方法判断结果isMethod等于“False”,判断规则midrule是否含有求长Len方法,长度判断结果isLen:如果长度判断结果isLen等于“True”,进入步骤(3-8)求长Len方法的处理,判断行文本context是否需要处理,获取判断结果isCleanig;如果长度判断结果isLen等于“False”,进入步骤(3-6)判断规则是否为正则表达式的名称,获取规则midrule对应正则表达式赋值为规则midrule,进入(3-9)判断行文本context是否需要处理,获取判断结果isCleanig。返回判断结果isCleaning。

(3-5)获取规则midrule,判断“/%.*%/”与规则midrule是否匹配:如果“/%.*%/”与规则midrule不匹配,方法判断结果isMethod等于“False”;否则判断结果isMethod等于“True”,提取规则midrule中“/%.*%/”前后的规则分别存储为开始规则sRule、结束规则eRule:如果开始规则sRule不为空,则开始标志s_flag等于开始规则sRule,结束标志e_flag等于结束规则eRule返回开始标志s_flag,结束标志e_flag;否则规则midrule等于结束规则eRule,返回规则midrule。。

(3-6)获取规则midrule,遍历表2正则表达式表,建立正则表达式字典generalReDict,判断规则midrule是否在正则表达式字典generalReDict中,若在则调用规则midrule对应的正则表达式并赋值给规则midrule,返回规则midrule。

(3-7)获取方法名functionName、行文本context,根据方法名functionName,调用对应方法(对应方法为(3-10)下一行方法nextline、(3-11)下两行方法nexttwoline、(3-12)直到方法untile),判断行文本context是否需要处理,获取判断结果isCleaning,返回判断结果isCleaning。

(3-8)获取规则midrule、行文本context,判断“>“”或‘<’关键字是否在规则midrule中:若不在,返回规则midrule;若在,将“>”或“<”关键字赋值为中间字符midChar,获取中间字符midChar后的的数字num,获取中间字符midChar前“(”和“)”间的字符串赋值给规则midrule,判断行文本context中符合midrule规则的匹配数是否“>”或“<”数字num:若符合判断结果isCleaning等于“True”;否则判断结果isCleaning等于“False”,返回判断结果isCleaning。

(3-9)获取规则midrule、非规则判断结果isNot、行文本context:若非规则判断结果isNot等于“True”:如果行文本context与规则midrule匹配,则判断结果isCleaning等于“False”;不匹配判断结果isCleaning等于“True”;若非规则判断结果isNot等于“Flase”:如果行文本context与规则midrule匹配,则判断结果isCleaning等于“True”;不匹配判断结果isCleaning等于“Flase”。返回判断结果isCleaning。

(3-10)下一行方法nextLine:获取数据类型为整型的行索引contextIndex、规则midrule、行文本context、文本texts:如果行索引contextIndex+1不超过文本texts的行长度,则获取行文本context下一行为下一行文本nextcontext,对应下一行索引nextIndex,进入步骤(3-6)判断规则是否为正则表达式的名称,获取规则midrule对应正则表达式赋值为规则midrule,进入(3-9)判断行文本context是否需要处理,获取判断结果isCleanig,返回判断结果isCleaning;否则行索引contextIndex+1超过文本texts的行长度,返回判断结果isCleaning等于“False”;。

(3-11)下两行方法nexttwoline:获取数据类型为整型的行索引contextIndex、规则midrule、行文本context、文本texts:如果行索引contextIndex+2不超过文本texts行长度,则获取行文本context下两行为下两行文本neTwCon,对应下两行索引neTwConIndex,进入步骤(3-6)判断规则是否为正则表达式的名称,获取规则midrule对应正则表达式赋值为规则midrule,进入(3-9)判断行文本context是否需要处理,获取判断结果isCleanig,返回判断结果isCleaning;否则如果行索引contextIndex+2超过文本texts行长度,返回判断结果isCleaning等于“False”。

(3-12)直到方法untile:获取开始标志s_flag、行文本context、文本texts,设规则midrule等于开始标志s_flag,判断规则midrule是否含有非规则NOT,非规则判断结果isNOT,进入步骤(3-6)判断规则是否为正则表达式的名称,获取规则midrule对应正则表达式赋值为规则midrule,进入步骤(3-9)判断行文本context是否符合规则midrule:如果符合,进入步骤(3-13)寻找结束位置endIndex,返回判断结果isCleaning,返回结束位置endIndex;若不符合返回判断结果isCleaning等于“False”;

(3-13)获取结束标志e_flage,获取行文本context、文本texts,将结束标志e_flag赋值给规则midrule,遍历文本texts从行文本context所在行的下一行开始遍历:当前行索引contextIndex,当前行文本context,进入步骤(3-4)判断行文本context是否符合规则midrule,若符合返回判断结果isCleaning等于“True”,否则继续遍历直至符合规则midrule或结束。

S2、根据所述判断结果和预先设定文本清理判断规则及规范化处理方法,进行规范处理,获取规范文本。

在本实施例的实际应用中,Markdown格式地质资料规范处理过程具体为:

(4-1)获取清理判断规则rule,遍历获取表3清理判断规则及规范化处理表获取清理判断规则rule对应的方法名proName,调用方法名proName对应的方法对行文本context或行文本context列表进行规范。规范方法有:(4-2)各级标题缺失的处理方法MarkdownIncomplete、(4-3)html表格转Markdown表格的方法htmltomd、(4-4)多线表转Markdown表格的方法multomd、(4-5)单线表转Markdown表格的方法sintomd、(4-6)符号替换的方法symbol_substition、(4-7)删除下一行的方法delnextline、(4-8)合并两行的方法merge、(4-9)加粗的方法overstrik、(4-10)多图片超链接处理的方法mulPhoto、(4-11)表名位置错误的处理方法tablenameExchange、(4-12)分割一行为两行的方法excision、(4-13)改变同行内容顺序的方法exchangeOrder、(4-14)地质年代表处理方法choro、(4-15)地质剖面介绍表的规范方法choroItro、(4-16)特殊地质年代表的处理方法choroSpecial、(4-17)标题规范化处理方法titleSymbol。具体规范过程如下:

(4-2)各级标题缺失的处理方法MarkdownIncomplete:获取文本texts,设标题最高级别tiMaxDe等于10,从标题级别tiDe等于1开始对文本texts进行遍历:设行文本context,行索引contextIndex;若行文本context符合标题特征且具有tiDe*’#’个标记,则提取该标题序号orderPart及序号两边的特征为前特征starPart、后特征endPart,如#第一章,提取前特征starPart等于“第”,标题序号orderPart等于“一”,后特征endPart等于“章”,根据标题序号orderPart的序号类型获取该序号类型全部序号列表numberType:如果标题序号orderPart与序号列表numberType第一个元素相等,则序号索引tyIndex等于1,遍历标题开始行索引starIndex等于行索引contextIndex+1,进入步骤(4-2-1)对各级缺失标题进行查补;如果标题序号orderPart不等于序号列表numberType的第一个元素,则序号索引tyIndex等于0,从遍历标题开始行索引starIndex等于0,进入步骤(4-2-1)对各级缺失标题进行查补,各级标题全部查补完毕,获取规范文本texts,返回texts;

(4-2-1)获取序号索引tyIndex、遍历开始行索引starIndex、文本texts、序号列表numberType、前特征starPart、后特征endPart,从遍历开始行索引starIndex位置开始对文本texts进行遍历:当前行文本seCon,若行文本seCon与“前特征starPart+序号列表numberType中序号索引tyIndex对应的位置位置+后特征orderPart”匹配且符合标题结尾特征则序号索引tyIndex增量为1:若行文本seCon具有tiDe*’#’个标记则直接遍历下一行,否则行文本seCon被赋值为tiDe*’#’+secon,再遍历下一行;直至文本texts结束或序号索引tyIndex超过序号列表numberType,返回文本texts;

(4-3)html表格转Markdown表格的方法htmltomd:获取需要转为Markdown的html表格列表fileList,设结果列表dataList:从列表索引号contenIndex等于0开始遍历html表格列表fileList,查找html表格列表fileList的开始位置是否包含表格名,若包含表格名,提出表格名,并赋予相应表格标记格式存储与结果列表dataList,并且在html表格列表fileList中删除其对应行内容,进入步骤(4-3-1)对html表格列表fileList进行转换,获取html表格转Markdown的结果列表rusultList;若html表格列表fileList中不含表名则直接进入步骤(4-3-1),对html表格进行转换,获取html表格转Markdown的结果列表rusultList,返回结果列表resultList。

(4-3-1)获取需转换表格fileList,将表格转换为字符串并赋予列表元素末尾为“\n”,转换结果result,调用html2text包将转换结果result转换为初具md格式的字符串htmlMarkdown(由于数据与转换造成偏差,还需处理),首先将字符串htmlMarkdown中具有“\n\n”特征的不自然断开去除获得字符串结果htmlMarkdown;以“|”为分割符对字符串htmlMarkdown进行分割,分割结果列表htmlMdSplit,根据Markdown表格特征“---”的个数为表格列数这一原则,获得表格列数值colnum;将字符串htmlMarkdown转为列表(一个字符为列表的一个元组),遍历列表以“|”为每格数据结尾或开始标志获取每个数据,“\n”为行数据结束:若每行数据不足是出现“\n”,去除“\n”,并遍历下一个数据;若每行数据量足,进行下一行数据的遍历;直至数据遍历完成;写入txt格式文本中,再打开按行读取,获取数据存储结果列表resultList,返回结果列表resultList。

(4-4)多线表转Markdown表格的方法multomd:设结果列表resultList用于存储转换结果;获取需要转换的多线表List,去除列表每个元素结尾的“\n”,遍历多线标List中元素,查找到行开始标志“^\+(-+\+)+$”;从下一行开始以“|”为元素分割标志,将分割得到的元素按先后顺序存储到对应位置获得数据列表resultItem,重复分割与存储操作,直至查找到行结束标志“^\+(-+\+)+$“,将数据列表resultItem转换为字符串并以“|”为标记隔开相邻的两个列表元素,存储到结果列表resultList中;直至遍历完多线表List,返回结果列表resultList。

(4-5)单线表转Markdown表格的方法sintomd方法:设结果列表resultList用于存储转换结果;获取需要转换的单线表List,去除列表每个元素结尾的“\n”,遍历单线表List中元素:当前行数据dataItem,如果为单线表开始位置,以‘’为分割单线表标志获得结果列表handList;其他数据:如果行数据dataItem符合表名特征,赋予其表名标记并存储于结果列表resultList中;如果为表格数据,若行数据行数据含中文字符则需在行数据dataItem中中文字符后添加占位符,根据单线表标志分割的结果列表handList中各元素长度,获取每格数据开始与结束节点,以此为据分割行数据dataItem,转换行数据dataItem为字符串以“|”为标记隔开相邻的两个列表元素,并存储于结果列表resultList中;继续遍历至单线表结束标记,返回结果列表resultList。

(4-6)符号替换的方法symbol_substition:获取需要替换的行文本context、原始规则oriChar、替换规则repChar;匹配行文本context符合的原始规则oriChar的原始字符串ochar,匹配行文本context符合的替换规则rChar的替换字符串,将行文本context符合原始字符串oChar替换为替换字符串rChar,返回行文本context。

(4-7)删除下一行的方法delnextline:获取需要删除行的索引号contextIndex、文本texts,删除行索引contextIndex对应文本texts的行文本,返回文本texts。

(4-8)合并两行的方法merge:获取需要合并的两行索引号前索引contextIndex、后索引nextIndex、文本texts,合并文本texts对应前索引contextIndex与后索引nextIndex之间的行文本为一行,并删除获取的最大到最小索引号之间的行,返回文本texts。

(4-9)加粗的方法overstrik:获取需要加粗的行文本context、行文本加粗的开始标识antecedent、结束标记succedent,行文本context被赋值为开始标记antecedent+行文本context(除去末尾的‘\n’)+结束标记succedent+“\n”,返回行文本context。

(4-10)多图片超链接的处理方法mulPhoto:获取需要处理多图名的行文本context,根据图片超链接与图名的特征,提取出图名列表与图片超链接列表并分别升序重排,根据图名与图片超链接对应顺序进行组合;若图名少于图片超链接,则图名填充为‘’,获得图名列表nameList,返回图名列表nameList。

(4-11)表明位置错误的方法tablenameExchange:获取需要更换位置的表名行文本context、行索引contextIndex、文本texts;从当前行索引contextIndex开始,向前遍历文本texts,查找到离行文本context最近的表开始,将行文本context插入该位置,并删除行文本context原始位置内容,返回文本texts。

(4-12)分割一行内容为两行的方法excision:获取需要分割的行文本context、前项规则antecedent、后项规则succedent,将行文本context中与前项规则antecedent、后项规则succedent匹配的前后项提取为adent与sdent,生成分割结果列表rusultList,返回分割结果列表resultList。

(4-13)改变同行顺序的方法exchangeOrder:获取需要改变位置的行文本context、前项规则antecedent、后项规则succedent,将行文本context中与前项规则antecedent、后项规则succedent匹配的前后项提取为adent与sdent;行文本context被赋值为adent+sedent+‘\n’,返回行文本context。

(4-14)地质年代表的处理方法choro:获取符合地质年代表开始行索引contextIndex、文本texts;设结束标志e_flag等于“下伏地层|未见底|(未见底)”,进入步骤(3-13)寻找文本texts中符合结束标志e_flag特征的行文本的结束索引endIndex,进入步骤(4-14-1)规范处理文本texts从行索引contextIndex到结束索引endIndex的文本内容,获取规范的地质年代表的结果列表resultList,返回结果列表resultList。

(4-14-1)获取初步确定的需要处理文本texts从contextIndex到endIndex行的地质年代表列表geoList,遍历地质年代表列表geoList,寻找地质年代表geoList开始处理的开始处理索引starIndex;从开始处理索引starIndex开始对地质年代表列表geoList中的引用不符合规范、序号后有\,空格以及对分割线问题进行预规范以便后续处理;从开始处理索引starIndex开始对地质年代表列表geoList中的内容断开问题进行处理,处理特征为当前行文本context具有序号标记,但下一行文本不具有序号标记且不符合“上段|下段|未见底|下伏地层|未测|(未见底)|(\\\~){2,}[\u4E00-\u9FA5]+(\\\~){2,}|!\[]”,合并当前行文本与下一行文本,并删除下一行文本;重复以上操作直至地质年代表列表geoList遍历完成,返回规范的地质年代表geoList。

(4-15)地质剖面介绍表的规范方法choroIntro:获取符合地质剖面介绍表开始的行索引contextIndex、文本texts;设结束标志e_flag等于“!\[]\(.*?\)”,进入步骤(3-13)寻找文本texts符合结束标志e_flag特征的行文本的结束索引endIndex,进入步骤(4-14-1)规范处理文本texts从行索引contextIndex到结束索引endIndex的文本内容,获取规范的地质剖面介绍表的结果列表resultList,返回结果列表resultList。

(4-16)特殊的地质年代表处理方法choroSpecial:获取符合地质年代表的结束特征的行文本的行索引contextIndex、文本texts;设开始特征s_flag等于“下伏地层”,从行索引contextIndex开始往前遍历文本texts,直至找到文本texts中符合开始特征s_flag的开始索引sIndex;进入步骤进入步骤(4-14-1)规范处理文本texts从开始索引sIndex到行索引contextInde的文本内容,获得规范的地质年代表的结果列表resultList,结果列表resultList。

(4-17)标题规范化处理方法titleSymbol:获取需要添加标题标记的文本texts,遍历文本texts:当前行文本context:如果行文本context具有“前言|摘要|参考文献”这样不带序号标记的标题的特征,直接添加以及标题标记#;如果行文本context为带序号标记的标题且不含标题#号标记且其所属序号标记类型的开始:从当前行索引contextIndex开始向上查找离该行最近带#号标记的标题,获取其标题级别upTitGre,赋予当前标题等级为标题级别upTitGre+1;获取行文本context的序号标记前后模板,从行索引contextIndex的下一行开始,对未带标题标记的符合标题模板和序号特征的文本进行标记;直至文本texts遍历完成。

本实施例中的一种多源Markdown地质资料规范化处理方法能根据Markdown格式地质资料文本内容,自动识别与规范段落、图片、章节等文本异常内容,生成规范文档;大大提高了工作效率与数据准确性,方法具有通用性与扩展性。只需要更改或完善规则表,无需(或很少)更改程序编码,即可实现Markdown格式地质资料的自动规范化处理;此方法具有很强的通用性,适用于多领域文档的规范化处理。

由于本发明上述实施例所描述的系统为实施本发明上述实施例的方法所采用的系统,基于本发明上述实施例所描述的方法,本领域所属技术人员能够了解该系统/装置的具体结构及变形,因而在此不再赘述。凡是本发明上述实施例的方法所采用的系统都属于本发明所欲保护的范围。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例,或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。

应当注意的是,在权利要求中,不应将位于括号之间的任何附图标记理解成对权利要求的限制。词语“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的词语“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的权利要求中,这些装置中的若干个可以是通过同一个硬件来具体体现。词语第一、第二、第三等的使用,仅是为了表述方便,而不表示任何顺序。可将这些词语理解为部件名称的一部分。

此外,需要说明的是,在本说明书的描述中,术语“一个实施例”、“一些实施例”、“实施例”、“示例”、“具体示例”或“一些示例”等的描述,是指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

尽管已描述了本发明的优选实施例,但本领域的技术人员在得知了基本创造性概念后,则可对这些实施例作出另外的变更和修改。所以,权利要求应该解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种修改和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也应该包含这些修改和变型在内。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:段落类型识别方法及系统和文档结构识别方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!