一种基于规则的通用文本信息抽取和信息生成方法与流程

文档序号:18267554发布日期:2019-07-27 09:18阅读:678来源:国知局
一种基于规则的通用文本信息抽取和信息生成方法与流程

本发明涉及软件工程与规则引擎领域,涉及基于规则的通用文本信息抽取和文本生成方法,更为具体的说,是涉及一种基于规则的通用文本信息抽取和信息生成方法。



背景技术:

随着各企业信息化水平的提高,传统的信息录入已经有了较好的解决方案。而更多的企业面临的问题是:很多信息都来源于半结构化的文本,这部分文本还缺少很好地信息提取工具,目前很多信息的录入方式都是通过手动录入或者复杂的抽取逻辑实现,手动录入耗费大量人力物力,效果不佳,而复杂的抽取逻辑虽然抽取准确率较高,却带来了高额的维护成本,且抽取规则较难复用,同时整个过程需要较长的周期,不利于软件的快速交付。



技术实现要素:

为解决上述问题,本发明提供一种基于规则的通用文本信息抽取和文本生成方法,实现了对文本进行信息标注,同时可以让工作人员高效地进行抽取规则的编写,最大化地达成抽取规则的复用与共享,与此同时,还可以与第三方数据源进行整合,生成格式良好的文本,便于抽取过程的进行,形成良好的正向循环。

为了达到上述目的,本发明提供如下技术方案:

一种基于规则的通用文本信息抽取和文本生成方法,包括如下步骤:

步骤一:初始化信息字典上下文、规则词包、规则引擎与模板引擎

初始化信息字典作为信息抽取的上下文,用于对信息文本进行动态、拓展式的信息抽取;加载配置信息中定义的引擎类别,进行规则语法解析器、语法依赖分析器以及规则执行器的加载工作;初始化依附于规则引擎以及支持第三方数据源的数据存取引擎;通过加载模板引擎配置信息,对已经定义的预编译模板指令和已经编写的信息生成模板进行加载,以便完成整个模板引擎的加载工作;

步骤二:对文本信息进行信息标注

对文本信息抽取进行建模分析,文本信息抽取模型分为单值信息抽取与多值信息抽取;单值信息抽取表示从一段文本中抽取出单个区域内容的文本;而多值信息抽取表示从一段文本中抽取指定多个区域的信息;文本信息标注模型包含:文本信息标记的范围,标注信息特征,以及信息标注标识符,对于每个信息标注,可以从一段信息文本中找到期望的抽取文本;

步骤三:定义信息抽取算法和编写规则脚本代码

对抽取规则进行分析建模,抽取规则模型包括:标量规则、共享规则、无依赖计算规则、依赖计算规则以及变量上下文规则;在用户进行信息抽取时,若当前抽取信息项无依赖其他规则也无明显的文本上下文依赖,能够使用标量规则进行信息抽取;若当前抽取信息项的抽取方式与其他类似结构文本相似,能够通过直接引用或者拷贝的方式进行抽取规则的共享;若当前抽取信息项无依赖当前规则上下文的其他规则,能够通过无依赖计算规则对信息进行抽取;若当前抽取信息项对当前规则上下文有其他规则的依赖,能够通过依赖计算规则进行计算;若当前抽取信息项有很深的结构依赖,而其中间状态的信息不需要显示的抽取,则能够通过变量上下文规则进行信息抽取同时不影响当前的规则上下文;

步骤四:生成规则依赖有向图

通过对用户编写的抽取规则进行语法解析,导出该规则的依赖项和其导出项,生成规则依赖有向图;

步骤五:执行文本抽取规则并根据抽取准确度进行微调

将本文抽取规则放入规则引擎中进行执行,能够生成结构良好的抽取文本,将该抽取信息与刚开始的文本标注信息进行内容对比,并生成抽取信息准确度。

步骤六:定义信息生成元模板

用户能够针对场景化需求,定义信息生成元模板;信息生成元模板包含基本的信息文本格式以及若干规则填充区域;为了提供通用的信息生成方式,通过提供自定义信息规则拓展的方式,用户能够将第三方数据源的信息以符合规则格式的方式进行导入;

步骤七:自定义模板规则选取与文本生成

对于同一种信息生成元模板,用户能够通过对若干规则填充区域进行不同信息规则的选取,生成适应不同子场景的文本;用户能够选择格式进行信息文本生成。

进一步的,所述步骤一包括如下步骤:

步骤1-1:起始状态;

步骤1-2:定义存储信息字典的数据结构表,该信息字典的数据结构为层次型的哈希表结构,能够支持多层级的信息结构;

步骤1-3:按照层次结构对信息字典进行信息加载,对根节点进行先加载,然后沿着层次顺序直至叶子节点加载完毕;

步骤1-4:针对信息字典的每个信息子项而言,获取其对应的信息结果,需要首先访问叶子节点,查看其是否存在,如果当前叶子节点存在,则直接返回信息项结果;否则沿着层次结构向上查找,直到某个信息层次中包含该信息子项,然后返回信息项结果;

步骤1-5:将词包从数据库中加载至系统,一个词包包含单个或多个词组以及若干可选的条件选择语句,某条信息抽取规则能够包含一个或者多个词包,通过编写规则脚本能够对词包进行获取;

步骤1-6:将词包关联的条件判断函数进行加载,供运行时使用;针对词包而言,预定义了一些条件判断函数,能够判断某个或某些词语是否存在于词包中以及某段语句是否包含词包中的词汇,同时用户能够通过自拓展的方式,对某些词包进行条件函数的拓展;

步骤1-7:通过加载规则引擎配置信息,对规则引擎进行初始化:选择规则引擎语法集,进行语法解析器的加载,然后针对语法解析器加载非必须的语法上下文依赖分析器,最后对规则执行器进行加载,完成整个规则引擎的加载过程;

步骤1-8:通过加载模板引擎配置信息,对模板引擎进行初始化:选择模板引擎类型,对模板引擎指令集进行装载,将系统已经定义好的信息生成模板进行加载,完成整个模板引擎的加载过程;

步骤1-9:将信息字典上下文、规则词包与规则引擎导入规则系统,最后将模板引擎与规则系统进行集成,整个初始化工作完毕。

进一步的,所述步骤二包括如下步骤:

步骤2-1:起始状态;

步骤2-2:用户选择需要进行信息抽取的文本或者将待抽取的文本导入系统;

步骤2-3:用户通过对文本进行自定义划分,进行抽取区域的确定;

步骤2-4:用户添加抽取信息的类型,单值或多值;

步骤2-5:如果用户选择单值类型,则在指定文本进行文本标注;

步骤2-6:如果用户选择多值类型,则用户需要确定文本抽取区域的数量,然后对指定的文本进行选择标注;

步骤2-7:用户将该次信息标注进行命名,然后系统给定唯一的信息标记标识符;

步骤2-8:对文本信息标注完毕。

进一步的,所述步骤三包括如下步骤:

步骤3-1:起始状态;

步骤3-2:用户对步骤2中进行的信息标注进行选择,然后进行具体的信息抽取规则编写;

步骤3-3:用户在进行实际的抽取过程中,使用规则引擎中预先定义的几类抽取算法,如果算法抽取结果满意,则不需要具体的规则编写;

步骤3-4:否则,用户需要进行自定义规则的编写:用户需要从待抽取文本中归纳特征;

步骤3-5:通过规则语法解析器对用户编写的抽取规则进行词法分析,识别用户在编写规则时定义的变量是否符合规范以及依赖规则上下文中的规则是否存在;

步骤3-6:根据步骤3-5生成的词法分析序列,进一步通过规则语法分析器进行语法分析,对用户编写的规则中定义的函数,程序结构进行分析,对其中重复定义的函数、不正确的程序结构进行错误提醒;

步骤3-7:对用户编写的规则脚本,通过预定义的函数对抽取的文本信息进行导出,导出项用于给当前规则上下文的其他规则进行使用,以便于结构化文本信息的抽取;

步骤3-8:用户能够在规则上下文列表中对编写的规则进行以下操作:查看抽取内容、应用抽取规则以及对抽取规则依赖进行分析;

步骤3-9:定义信息抽取算法和编写规则脚本代码完毕。

进一步的,所述步骤3-4中,所述用户需要从待抽取文本中归纳特征具体包括如下步骤:用户能够从上下文无关的关键词,指定词组或者正则表达式等方式进行特征归纳,也能够从上下文相关的含有具体语义的方式进行特征归纳。

进一步的,所述步骤四包括如下步骤:

步骤4-1:起始状态;

步骤4-2:用户能够选择性地进行规则依赖的分析,如果用户选择进行依赖分析,则进入步骤7,否则进入步骤3;

步骤4-3:用户选择规则依赖分析后,系统通过规则引擎对规则进行抽象语法树的构建;

步骤4-4:依赖分析器分析抽象语法树中的依赖变量、本地变量以及规则导出项的内容,通过对抽象语法树进行深度搜索,完成规则依赖的分析;

步骤4-5:依赖分析器将产生的依赖分析有向图显示给用户,用户通过对感兴趣的规则依赖项或者规则导出项进行选择,来查看当前项的出入度关系,了解当前规则的依赖上下文;

步骤4-6:用户能够通过选择有向图中的规则项,直接进入规则调整阶段;

步骤4-7:生成规则依赖有向图完毕。

进一步的,所述步骤五中,如果文本抽取准确度没有达到目标,则继续调整欠准确度的抽取规则,直到抽取准确度达到指定的阈值。

进一步的,所述步骤五包括如下步骤:

步骤5-1:起始状态;

步骤5-2:用户对单个规则进行规则执行,获在全部的抽取规则编写完毕后,进行规则的全部执行;

步骤5-3:当用户进行规则执行时,根据步骤三中定义信息抽取算法和编写规则脚本代码中的内容,系统将无语法内容错误的规则内容,放入规则执行器中进行执行,根据配置的执行引擎不同采用相应的执行引擎方式;

步骤5-4:首先,规则执行器将规则依赖的信息字典和词包放入规则执行上下文中,通过将需要执行的规则进行顺序执行,对于某条执行的规则而言,如果当前执行的规则所依赖的规则集中存在还未执行的规则,则首先会对未执行的规则进行执行,直到当前执行的规则的依赖规则都被执行完毕,然后回溯执行完之前未被执行的规则;

步骤5-5:如果规则已经执行完毕后,系统会将该规则对应的文本信息标注与规则导出项进行对比,同时计算抽取的准确度,对于没有命中的文书标注信息进行提示;

步骤5-6:如果抽取的准确度已经达到要求,则至步骤5-7继续执行,否则调整规则内容,继续执行步骤5-2;

步骤5-7:执行文本抽取规则并根据抽取准确度进行微调。

进一步的,所述步骤六包括如下步骤:

步骤6-1:起始状态;

步骤6-2:用户创建一个带有名称的信息生成元模板;

步骤6-3:用户在元模板中添加文本基本信息块、固定依赖规则项和占位符;文本基本信息块是任意文本信息;固定依赖规则是某种类型文本抽取的规则项;针对于占位符,后期模板生成时,能够使用文本信息与规则编写上下文中的规则项进行替换;

步骤6-4:用户将信息生成元模板进行数据库保存;

步骤6-5:定义信息生成元模板完毕。

进一步的,所述步骤七包括如下步骤:

步骤7-1:起始状态;

步骤7-2:用户选择已经存在的信息生成元模板进行文本生成;

步骤7-3:用户选择进行临时文本生成,或生成新的自定义模板;

步骤7-4:用户对信息生成元模板中的占位符进行替换,占位符是普通的文本信息、规则编写上下文中的信息项或者规则上下文中的规则项;

步骤7-5:用户在将模板中的占位符填充完毕后,选择文本生成的格式,然后下载生成好的文本;

步骤7-6:自定义模板规则选取与文本生成完毕。

与现有技术相比,本发明具有如下优点和有益效果:

(1)本发明将传统的文本信息抽取方法进行了有效的拓展,使得整个抽取过程更加有效,便于用户从文本信息中发掘更多的信息内容;基于规则进行信息抽取,通过将抽取内容规则化,使得规则更容易被复用和共享,同时辅助以信息字典和词包,使得抽取的过程可以进行动态地进行拓展,而不需要反复地进行逻辑上的修改;将抽取逻辑细化成为规则后,通过对规则进行语法分析,将规则间的依赖分析进行了可视化的表达,让用户可以清晰地了解到当前文本内抽取信息的依赖流向,为抽取逻辑优化和抽取过程高效提供了基础;通过引入信息生成元模板,将抽取规则与企业第三方数据源进行了有利的结合,让文本信息生成变得简单和高效。

(2)与传统地信息抽取方式相比,本发明实现了抽取规则模块化,提高了抽取规则的共享可能性,并通过规则依赖分析,可以对复杂文本信息的结构进行很好的分析挖掘,同时通过自定义信息生成模板,极大地提高了抽取信息与外部信息生成文本的效率。本发明特别适用于法律文书等需要大量信息文本进行信息抽取和生成的领域。实践证明本方法能够显著提高文本抽取效率和准确度、优化文本抽取复杂度以及提高信息文本生成效率。

附图说明

图1为本发明提供的一种基于规则的通用文本信息抽取和信息生成方法的流程图。

图2为本发明的结构示意图。

图3为本发明的运行时示意图。

图4为本发明的规则依赖分析算法流程图。

图5为本发明的文书标注示意图。

图6为本发明的实际抽取规则编写的示意图。

图7为本发明的依赖分析结果示意图。

图8为本发明的元模板编辑与文本生成示意图。

图9为本发明的信息文本生成结果图。

具体实施方式

以下将结合具体实施例对本发明提供的技术方案进行详细说明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。

图1为本发明流程图,大致包括初始化阶段、信息标注阶段、编写抽取规则阶段以及模板编辑和文本生成阶段,

其中,在初始化阶段,主要是将预先配置的信息字典、词包从数据库等存储加载至系统中,同时将规则引擎的规则解析器、依赖分析器以及规则执行器连接,完成规则引擎的初始化工作,将元模板、预定义模板指令以及模板引擎进行连接,完成模板引擎的初始化工作。

信息标注阶段,在初始化工作完成后,用户可以选择需要进行信息抽取的文本,然后对该文本进行抽取信息标注,该阶段可以将文本标注成与后续编写规则对应的结构,方便后续提高抽取的准确度。

在编写抽取规则阶段,在实际进行文本信息抽取时,需要对抽取规则进行分析建模。用户根据抽取信息的特点,进行抽取规则脚本的编写。对于抽取规则的特点,可以分成如下几种类别:

a.标量规则,若当前抽取信息项无依赖其他规则,也无依赖文本上下文,则为标量规则。

b.共享规则,若当前抽取信息项与其他文本结构相似,则可以通过直接引用或者拷贝的方式进行抽取规则的共享,称为共享规则。

c.无依赖计算规则,如果当前抽取信息项无依赖当前规则上下文的其他规则,则为无依赖计算规则。

d.依赖计算规则,如果当前抽取信息项依赖当前规则上下文的其他规则,则为依赖计算规则。

e.变量上下文规则,如果当前抽取信息项有很深的结构依赖,而其中间的状态信息不需要显式的抽取,则可以通过变量上下文规则进行信息抽取同时不影响当前的规则上下文,称为变量上下文规则。

在模板编辑和文本生成阶段,用户可以通过添加信息的模板或者选择抽取规则对元模板进行再生成,同时也可以通过第三方数据源适配器将第三方的数据引入到文本生成中。

更为具体地说,如图1所示,本发明提供的基于规则的通用文本信息抽取和信息生成方法,包括如下步骤:

步骤一:初始化信息字典上下文、规则词包、规则引擎与模板引擎

本步骤一方面对于不同领域的信息文本,有其领域频繁出现的信息字典,通过初始化信息字典作为信息抽取的上下文,可以对信息文本进行动态、拓展式的信息抽取;另一方面,由于信息文本有其内在的特点,对于同样含义的词语,不同的文本编写人员会给出含义相近的词语,通过初始化规则词包,可以逐步地提高信息抽取的准确度。在规则引擎方面,通过加载配置信息中定义的引擎类别,进行规则语法解析器、语法依赖分析器以及规则执行器的加载工作,除此之外,依附于规则引擎还有支持第三方数据源的数据存取引擎需要进行初始化工作。在信息生成方面,通过加载模板引擎配置信息,对已经定义的预编译模板指令和已经编写的信息生成模板进行加载,以便完成整个模板引擎的加载工作。

本步骤包括如下子步骤:

步骤1-1:起始状态;

步骤1-2:定义存储信息字典的数据结构表,该信息字典的数据结构为层次型的哈希表结构,可以支持多层级的信息结构;

步骤1-3:按照层次结构对信息字典进行信息加载,对根节点进行先加载,然后沿着层次顺序直至叶子节点加载完毕。

步骤1-4:针对信息字典的每个信息子项而言,获取其对应的信息结果,需要首先访问叶子节点,查看其是否存在,如果当前叶子节点存在,则直接返回信息项结果;否则沿着层次结构向上查找,直到某个信息层次中包含该信息子项,然后返回信息项结果;

步骤1-5:将词包从数据库中加载至系统,一个词包包含单个或多个词组以及若干可选的条件选择语句,某条信息抽取规则可以包含一个或者多个词包,通过编写规则脚本可以对词包进行获取;

步骤1-6:将词包关联的条件判断函数进行加载,供运行时使用。针对词包而言,预定义了一些条件判断函数,可以判断某个或某些词语是否存在于词包中以及某段语句是否包含词包中的词汇等,同时用户也可以通过自拓展的方式,对某些词包进行条件函数的拓展;

步骤1-7:通过加载规则引擎配置信息,对规则引擎进行初始化。选择规则引擎语法集,进行语法解析器的加载,然后针对语法解析器加载非必须的语法上下文依赖分析器,最后对规则执行器进行加载,完成整个规则引擎的加载过程;

步骤1-8:通过加载模板引擎配置信息,对模板引擎进行初始化。选择模板引擎类型,对模板引擎指令集进行装载,将系统已经定义好的信息生成模板进行加载,完成整个模板引擎的加载过程;

步骤1-9:将信息字典上下文、规则词包与规则引擎导入规则系统,最后将模板引擎与规则系统进行集成,整个初始化工作完毕。

步骤二:对文本信息进行信息标注

本步骤是对文本信息抽取进行建模分析,以文本信息抽取的目的为导向,该文本信息抽取模型分为单值信息抽取与多值信息抽取。单值信息抽取是从一段文本中抽取出单个区域内容的文本;而多值信息抽取则表示从一段文本中抽取指定多个区域的信息。信息标注模型包含以下内容:文本信息标记的范围,标注信息特征,以及信息标注标识符,对于每个信息标注,可以从一段信息文本中找到期望的抽取文本。

本步骤包括如下子步骤:

步骤2-1:起始状态;

步骤2-2:用户选择需要进行信息抽取的文本或者将待抽取的文本导入系统;

步骤2-3:用户通过对文本进行自定义划分,进行抽取区域的确定;

步骤2-4:用户添加抽取信息的类型,单值或多值;

步骤2-5:如果用户选择单值类型,则可以通过在指定文本进行文本标注;

步骤2-6:如果用户选择多值类型,则用户需要确定文本抽取区域的数量,然后对指定的文本进行选择标注;

步骤2-7:用户将该次信息标注进行命名,然后系统给定唯一的信息标记标识符;

步骤2-8:对文本信息标注完毕。

步骤三:定义信息抽取算法和编写规则脚本代码

在实际进行文本信息抽取时,需要对抽取规则进行分析建模。为了进行通用的文本信息抽取,抽取规则模型包括:标量规则、共享规则、无依赖计算规则、依赖计算规则以及变量上下文规则。这些规则在前述的编写抽取规则阶段有详细解释。

本步骤包括如下子步骤:

步骤3-1:起始状态;

步骤3-2:用户对步骤2中进行的信息标注进行选择,然后进行具体的信息抽取规则编写;

步骤3-3:用户在进行实际的抽取过程中,可以使用规则引擎中预先定义的几类抽取算法,如果算法抽取结果满意,则可以不需要具体的规则编写;

步骤3-4:否则,用户需要进行自定义规则的编写。用户需要从待抽取文本中归纳特征,可以从上下文无关的关键词,指定词组或者正则表达式等方式进行特征归纳,也可以从上下文相关的含有具体语义的方式进行特征归纳;

步骤3-5:对于通用的规则脚本来说,用户编写的抽取规则,会首先通过规则语法解析器进行词法分析,本阶段主要用于识别用户在编写规则时定义的变量是否符合规范以及依赖规则上下文中的规则是否存在;

步骤3-6:根据步骤3-5生成的词法分析序列,进一步通过规则语法分析器进行语法分析,本阶段主要对用户编写的规则中定义的函数,程序结构进行分析,对其中重复定义的函数、不正确的程序结构进行错误提醒;

步骤3-7:用户编写的规则脚本,可以通过预定义的函数对抽取的文本信息进行导出,导出项可以给当前规则上下文的其他规则进行使用,以便于结构化文本信息的抽取;

步骤3-8:用户可以在规则上下文列表中对编写的规则进行以下操作:查看抽取内容、应用抽取规则以及对抽取规则依赖进行分析;

步骤3-9:定义信息抽取算法和编写规则脚本代码完毕。

步骤四:生成规则依赖有向图

通过对用户编写的抽取规则进行语法解析,导出该规则的依赖项和其导出项,可以生成规则依赖有向图,可以帮助用户对当前抽取规则进行优化,也可以帮助用户了解当前文本结构。

本步骤包括如下子步骤:

步骤4-1:起始状态;

步骤4-2:用户可以选择性地进行规则依赖的分析,如果用户选择进行依赖分析,则进入步骤7,否则进入步骤3;

步骤4-3:用户选择规则依赖分析后,系统会通过规则引擎对规则进行抽象语法树的构建;

步骤4-4:依赖分析器会分析抽象语法树中的依赖变量、本地变量以及规则导出项的内容,通过对抽象语法树进行深度搜索,完成规则依赖的分析;

步骤4-5:依赖分析器会将产生的依赖分析有向图显示给用户,用户可以通过对感兴趣的规则依赖项或者规则导出项进行选择,来查看当前项的出入度关系,了解当前规则的依赖上下文;

步骤4-6:用户也可以通过选择有向图中的规则项,直接进入规则调整阶段;

步骤4-7:生成规则依赖有向图完毕。

步骤五:执行文本抽取规则并根据抽取准确度进行微调

通过将本文抽取规则放入规则引擎中进行执行,可以生成结构良好的抽取文本,可以将该抽取信息与刚开始的文本标注信息进行内容对比,并生成抽取信息准确度。如果文本抽取准确度没有达到目标,可以继续调整欠准确度的抽取规则,直到抽取准确度达到指定的阈值。

本步骤包括如下子步骤:

步骤5-1:起始状态;

步骤5-2:用户可以对单个规则进行规则执行,也可以全部的抽取规则编写完毕后,进行规则的全部执行;

步骤5-3:当用户进行规则执行时,根据步骤3定义信息抽取算法和编写规则脚本代码中的内容,系统会将无语法内容错误的规则内容,放入规则执行器中进行执行,根据配置的执行引擎不同,具体的执行引擎方式也有所不同;

步骤5-4:首先,规则执行器会将规则依赖的信息字典和词包放入规则执行上下文中,通过将需要执行的规则进行顺序执行,对于某条执行的规则而言,如果当前执行的规则所依赖的规则集中存在还未执行的规则,则首先会对未执行的规则进行执行,直到当前执行的规则的依赖规则都被执行完毕,然后回溯执行完之前未被执行的规则;

步骤5-5:如果规则已经执行完毕后,系统会将该规则对应的文本信息标注与规则导出项进行对比,同时计算抽取的准确度,对于没有命中的文书标注信息进行提示;

步骤5-6:如果抽取的准确度已经达到要求,则至步骤6,否则调整规则内容,继续执行步骤1;

步骤5-7:执行文本抽取规则并根据抽取准确度进行微调;

步骤六:定义信息生成元模板

用户可以针对场景化需求,定义信息生成元模板。信息生成元模板主要包含基本的信息文本格式以及若干规则填充区域。为了提供通用的信息生成方式,通过提供自定义信息规则拓展的方式,用户可以将第三方数据源的信息以符合规则格式的方式进行导入。

本步骤包括如下子步骤:

步骤6-1:起始状态;

步骤6-2:用户可以创建一个带有名称的信息生成元模板;

步骤6-3:用户可以在元模板中添加文本基本信息块、固定依赖规则项和占位符;

针对于文本基本信息块,可以是任意的文本信息;

针对于固定依赖规则,可以是某种类型文本抽取的规则项;

针对于占位符,后期模板生成时,可以使用文本信息与规则编写上下文中的规则项与占位符进行替换;

步骤6-4:用户将信息生成元模板进行数据库保存;

步骤6-5:定义信息生成元模板完毕。

步骤七:自定义模板规则选取与文本生成

对于同一种信息生成元模板,用户可以通过对若干规则填充区域进行不同信息规则的选取,生成适应不同子场景的文本。用户可以选择最终生成的格式进行信息文本生成。

本步骤包括如下子步骤:

步骤7-1:起始状态;

步骤7-2:用户可以选择已经存在的信息生成元模板进行文本生成;

步骤7-3:用户可以选择进行临时文本生成,也可以生成新的自定义模板;

步骤7-4:首先,用户需要对信息生成元模板中的占位符进行替换,占位符可以是普通的文本信息、规则编写上下文中的信息项或者规则上下文中的规则项;

步骤7-5:用户在将模板中的占位符填充完毕后,可以选择文本生成的格式,包括txt,doc,docx,pdf等,然后用户可以下载生成好的文本;

步骤7-6:自定义模板规则选取与文本生成完毕。

图2为本发明的结构示意图,图3为本发明的运行时示意图,其中本发明的核心结构就是动态的配置信息、可拓展的规则引擎以及高效的模板引擎。如果对于文本的某个区域的抽取信息发生了变化,用户可以通过添加信息字典上下文以及拓展词包来解决问题,而如果是文本的某个区域的抽取规则和抽取内容发生了变化,用户也可以通过依赖有向图先理清当前抽取的依赖关系,然后选择需要修改的规则进行调整和重新应用。在企业中,往往对于文本生成的要求是频繁变化的,而本发明的元模板设计,可以对于某些信息项进行方便的替换和文本区域进行重新设计,而不需要任何的代码编写,通过在线的信息项与规则配置,即可完成模板的生成任务。

图4为本发明规则依赖分析器的算法流程图。当用户编写完规则后,规则通过规则语法分析器后,生成还有表达式信息的抽象语法树。通过对抽象语法树进行遍历,可以得到规则的依赖项与导出项。在本算法中,需要识别语法树中的特定的表达式。这里对语法树中的表达式进行分类:

a.依赖项相关表达式,对于属性访问表达式,变量表达式以及数组表达式。

b.导出项相关表达式,对于方法调用表达式。

c.本地变量表达式,对于声明表达式,赋值表达式。

算法步骤如下。

步骤1:将规则通过语法解析器生成抽象语法树;

步骤2:对抽象语法树进行遍历;

步骤3:表达式遍历是否完毕?如果完成,则到步骤,否则进入步骤4;

步骤4:当前表达式是否是本地变量定义表达式?如果是,则加入本地变量集,进入步骤3,否则进入步骤5;

步骤5:当前表达式是否是属性表达式并且属性不在本地变量集中?如果是,则加入依

赖集中,否则进入步骤6;

步骤6:当前表达式是否是方法调用表达式并且方法调用为导出函数?如果是,则加入

定义集,否则进入步骤7;

步骤7:其他表达式进行递归遍历,进入步骤3;

步骤8:导出依赖项与定义项;

步骤9:结束。

图5为本发明的文本标注示意图。用户将文本信息导入后,可以对文本信息进行信息标注。用户可以对文本区域进行选择,选择完毕后,可以通过给区域设置名称,用于后续的抽取规则编写。当用户对文本标注完毕后,可以通过对文本标注片段进行文本信息的定位。

图6为本发明的实际抽取规则编写的示意图,图7为本发明的依赖分析结果示意图。用户在对文本进行标注后,可以实际地编写具体抽取规则,对文本进行信息抽取。用户可以通过配置算法规则,关键词与正则表达式或者脚本编写的方式,对文本信息进行详尽地抽取。与此同时,用户可以通过对文本进行依赖有向图的查看,分析当前规则的依赖项与导出项对当前编写的规则进行优化和调整。

图8为本发明的元模板编辑与文本生成示意图,图9为本发明的信息文本生成结果图。用户在对文本信息的抽取规则编写完毕后,可以进入文本生成模板编辑模块,通过定义文本生成的模板内容以及其依赖的抽取规则,最终生成需要的信息文本。

综上所述,本发明将传统的文本信息抽取方法进行了有效的拓展,使得整个抽取过程更加有效,便于用户从文本信息中发掘更多的信息内容。而基于规则的抽取脚本可以进行有效的复用,以及带来维护方面的提升。通过对规则脚本进行语法分析,本发明可以帮助用户理解当前各种文本的依赖关系,为后续的信息抽取与抽取优化做很好的铺垫。除此以外,为了将抽取信息进行更好地利用,本发明提出了元模板的概念,用户可以通过在线可视化的方式进行文本的生成,大大降低了文本生成的复杂度,提高了文本生成的效率。。

本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1