CN115130434A - 一种段落文本信息处理方法和系统 - Google Patents
一种段落文本信息处理方法和系统 Download PDFInfo
- Publication number
- CN115130434A CN115130434A CN202210720557.7A CN202210720557A CN115130434A CN 115130434 A CN115130434 A CN 115130434A CN 202210720557 A CN202210720557 A CN 202210720557A CN 115130434 A CN115130434 A CN 115130434A
- Authority
- CN
- China
- Prior art keywords
- paragraph
- rule
- processing
- paragraph text
- text
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
Abstract
本发明涉及一种段落文本信息处理方法和系统,包括:设计段落文本处理语言PTPL;开发者按照PTPL规范编写段落文本处理规则,解析编写的段落文本处理规则,形成执行过程定义;按照PTPL规范实现各类执行过程定义对应的执行程序,然后按照得到的执行过程定义,对输入的测试段落文本依次执行执行过程定义对应的执行程序并返回结果;若返回结果不正确或不符合预期,则修改编写的段落文本处理规则并对输入的测试段落文本继续测试直至符合用户需求;在符合用户需求的段落文本处理规则中添加描述信息,一起保存为文件或发布为应用接口。本发明不但能够通过自由组合实现复杂的段落文本处理功能,而且处理规则可读性好,交互性强,开发难度低,易于协作和管理。
Description
技术领域
本发明属于文本信息处理领域,具体涉及一种段落文本信息处理方法和系统。
背景技术
现有技术中,目前在文本信息处理领域,人们主要通过C、C++、Java和Python等编程语言,配合正则表达式完成段落文本的分割、过滤、转换和信息抽取任务。主要存在的问题在于需要配合C、C++、Java和Python等宿主编程语言,受限于各个语言内部的正则表达式引擎的实现。然而,在团队协作时,每个规则开发人员所熟悉的知识背景各异,编程能力不同,所熟悉的编程语言不同,所使用的开发平台不同,对业务人员理解规则不友好,容易造成同样含义的业务规则在不同人员之间难以互相交流,所开发的规则不能团队通用,难以被业务人员进行审查和测试,随着规则数量的增多又会变得难以维护。
发明内容
为了克服现有技术存在的上述问题,本发明提供一种段落文本信息处理方法和系统,用于解决当前在段落文本处理时对开发人员的编程能力要求高、规则受限于特定的一种或几种编程语言、文本处理规则的设计和实现紧耦合、规则的开发和调试交互性不强的问题。
一种段落文本信息处理方法,所述方法包括以下步骤:
S1.语言定义:设计段落文本处理语言PTPL,该段落文本处理语言定义了段落文本的模式匹配、处理规则和规则组合方式;
S2.规则解析:开发者按照PTPL规范编写段落文本处理规则,根据S1的定义解析开发者所编写的段落文本处理规则,形成执行过程定义;
S3.规则实现:按照PTPL规范实现各类执行过程定义对应的执行程序,然后按照S2得到的执行过程定义,对输入的测试段落文本依次执行类执行过程定义对应的执行程序并返回结果;
S4.规则调试步骤:判断所述返回结果是否符合用户的预期,若结果不正确或不符合预期,则修改S2中编写的段落文本处理规则并对输入的测试段落文本继续测试直至符合用户需求;
S5.规则部署:在S4得到的符合用户需求的段落文本处理规则中添加描述信息,一起保存为文件或发布为应用接口。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述步骤S1中的所述段落文本处理语言在词法、文法和语义的层面上进行了定义,具体包括:
S11.定义词法规则:词法标记包括英文大写字符UCASE_LETTER、英文小写字母LCASE_LETTER、中文字符CN_ZH_LETTER、词语、无标记的短字符串UNESCAPED_STRINTG、带标记的短字符串INLINE_STRING、和带标记的长字符串MULTILINE_STRING;
S12.定义文法规则:文法规则包括注释项COMMENT、缩进规则INDENT、规则文件说明DOC_INFO、文本处理步骤STATEMENT、文本处理算子OP、参数列表INLINE_ARGUMENTS和模式定义REGEX_LONG;其中参数列表INLINE_ARGUMENTS支持布尔型参数UNMAED_ARGUMENT和键值型参数KEYVAL_ARGUMENT;模式定义REGEX_LONG以正则表达式实现;文本处理步骤用于定义算子之间执行的顺序,由算子名称OP_NAME引导,表示该算子放在具有相应OP_NAME的算子之后执行;
S13.定义语义规则,其中语义规则包括:(1)将开发者编写的段落文本处理规则作进一步转换,形成执行过程定义;(2)执行过程定义为文本处理步骤STEP的组合。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,步骤S2具体包括:
S21.词法扫描步骤,根据S11的定义,利用正则表达式以贪婪模式匹配遇到的字符,将开发者所编写的段落文本处理规则自左向右匹配,解析成标记的序列;若正则表达式没有匹配上述标记之一,则在当前位置报告扫描错误;
S22.文法解析步骤,编写文法解析规则将所述标记的序列解析成文法树;若在当前词法标记位置无法匹配任何一个文法解析规则,则在当前词法标记位置抛出异常,向用户提示该位置匹配错误;
S23.语义处理步骤,如果能够对开发者编写的段落文本处理规则正确进行文法解析,则通过遍历整个文法树,并根据S13的定义规则,生成执行过程定义。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述步骤S3根据S23解析出的执行过程定义,按照执行过程定义中的各个步骤依次处理处理输入的测试段落文本,其中将前一个步骤处理后的结果输出作为后一个步骤的输入,将最后一个步骤的输出作为开发者编写的段落文本处理规则的输出,从而形成段落文本处理的结果。根据PTPL的定义所述文本处理过程即执行过程定义是如下四类处理方式的自由组合:
(1).文本分割:以一个或多个模式为参数,以一篇段落文本作为输入,对执行过程所关联的每个模式,返回该模式所匹配的文本的开始位置和结束位置,并根据其他参数定义的映射规则,将上述测试的段落文本分割成多段子文本;
(2).文本抽取:利用捕获分组功能,当输入的子文本与所定义的模式匹配时,从子文本中抽取出与模式相匹配的文本并输出;
(3).文本过滤:此类处理方式以段落文本经若干步骤的处理之后形成的多段子文本作为输入,基于所定义的一个或者多个肯定的或者否定的模式与各段子文本的匹配程度决定是否保留该段子文本;
(4).文本转换:对段落文本经过若干步骤的处理之后形成的多段子文本作为输入,按照所定义的模式进行匹配,并对匹配的子文本范围进行转换,用于替换各个段落子文本以形成新的各段子文本。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述步骤S4具体包括:
S41.用户在调试界面上编写段落文本处理规则,调试界面中的解析区域实时输出当前解析出的规则;如果当前规则定义正确,则测试界面按照步骤S2的逻辑输出将要执行的执行过程定义的情况;如果当前规则定义错误,则输出相应错误信息,直到当前的规则满足用户的文本处理需求;
S42.用户在调试界面上输入一些用户认为有代表性的段落文本作为示例文本,调试界面在示例文本发生变化时,按照步骤S3的处理逻辑实时返回文本处理的结果,并在调试界面中显示出来。在调试界面中用户实时地创建和修改段落文本处理规则以及示例文本,直到界面显示的结果达到用户的期望。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述步骤S5具体包括:
S51.保存符合用户期望的段落文本处理规则和测试的段落文本;
S52.添加处理规则描述信息,说明段落文本处理规则适用的业务背景;
S53.关联所保存的段落文本处理规则,测试的段落文本和业务背景描述,并联合S2所述规则解析和S3所述规则实现,一起发布为Web服务后端。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述执行过程定义是由文本处理步骤组成的顺序组合;生成的每个文本处理步骤包括处理方式,处理参数和模式定义三个部分;所述处理方式为段落文本的分割、替换、过滤和抽取任务之一;所述处理参数对应于上述步骤S12中的参数列表INLINE_ARGUMENTS;模式定义对应于上述步骤S12中的一个或多个REGEX符号;如果某些步骤缺少必要的参数或者出现类型错误,则向用户提示该处理步骤出现语义错误。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,其中每个STEP分解为处理方式、处理参数和模式定义三部分;每个STEP的处理方式为对段落文本的分割、替换、过滤或抽取四类任务之一;每个STEP包含的模式定义用正则表达式变体,词语匹配规则或者其他针对序列的匹配规则实现。
本发明还提供了一种段落文本信息处理系统,包括:语言定义模块,用于设计段落文本处理语言PTPL,该段落文本处理语言定义了对段落文本的模式匹配、处理规则和规则组合方式;
规则解析模块,用于使开发者按照PTPL规范编写段落文本处理规则,根据语言定义模块的定义解析开发者所定义的段落文本处理规则,形成执行过程定义,其中执行过程定义由一个或多个处理步骤组合而成;
规则实现模块,用于首先按照PTPL规范实现各类执行过程定义对应的执行程序,然后按照规则解析模块得到的执行过程定义,对输入的测试段落文本依次执行各个处理步骤对应的执行程序并返回结果;
规则调试模块,用于判断所述返回结果是否符合用户的预期,若结果不正确或不符合预期,则修改规则解析模块中的编写的段落文本处理规则并对输入的测试段落文本继续测试直至符合用户需求;
规则部署模块,用于在规则调试模块得到的符合用户需求的段落文本处理规则中添加描述信息,保存为文件或发布为应用接口。
本发明还提供了一种计算机存储介质,所述介质上存储有计算机程序,所述计算机程序被处理器执行实现本发明所述的段落文本信息处理方法。
本发明的有益效果
与现有技术相比,本发明有如下有益效果:
本发明的段落文本信息处理方法,所述方法包括:设计段落文本处理语言PTPL,该段落文本处理语言定义了段落文本的模式匹配、处理规则和规则组合方式;开发者按照PTPL规范编写段落文本处理规则,根据定义解析开发者所编写的段落文本处理规则,形成执行过程定义;按照PTPL规范实现各类执行过程定义对应的执行程序,然后按照得到的执行过程定义,对输入的测试段落文本依次执行类执行过程定义对应的执行程序并返回结果;判断所述返回结果是否符合用户的预期,若结果不正确或不符合预期,则修改编写的段落文本处理规则并对输入的测试段落文本继续测试直至符合用户需求;在得到的符合用户需求的段落文本处理规则中添加描述信息,一起保存为文件或发布为应用接口。本发明不但能够通过自由组合实现复杂的段落文本处理功能,而且处理规则可读性好,交互性强,开发难度低,易于协作和管理。
附图说明
图1是本发明实施例的工作流程图;
图2是本发明实施例中的开发段落文本处理规则和调试界面:
图3是本发明实施例中基于领域特定语言的段落文本信息处理对外提供的接口图。
具体实施方式
为了更好的理解本发明的技术方案,本发明内容包括但不限于下文中的具体实施方式,相似的技术和方法都应该视为本发明保护的范畴之内。为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
应当明确,本发明所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
如图1所示为本发明的整体框架,本发明为一种段落文本信息处理方法,面向本发明的系统不限制具体运行的硬件和编程语言,用任何语言编写都可以完成,为此其他工作模式不再赘述。
具体的操作过程如下:
S1、语言定义阶段,段落文本的模式匹配、处理规则和规则组合方式的规则进行词法、文法和语义上的定义,形成通过段落文本处理语言(以下简称PTPL)的语言设计规范,后续开发者将根据此规范开发段落文本处理规则。
S2、规则解析阶段,基于LALR文法解析设计PTPL的文法解析器,解析开发者所定义的段落文本处理规则,生成文法解析树;进一步地,根据PTPL的语义规则,从文法解析树生成段落文本处理的执行过程定义,其中执行过程定义由一个或多个文本处理步骤组合而成。
S3、语言实现阶段,首先按照PTPL规范实现各类执行过程定义对应的执行程序,然后按照S2得到的执行过程定义,对输入的测试段落文本依次执行各个执行过程定义程序并返回结果。
S4、规则调试阶段,在前述步骤的基础上,规则开发人员可以在调试界面上输入S2中所定义的段落文本处理规则和待处理的测试段落文本,调试界面解析开发人员输入的处理规则并输出规则定义,开发人员可在调试界面中观察处理规则的参数组成和处理顺序是否符合需求;同时,调试界面接受处理规则和和待处理的测试段落文本后,返回一个文本处理结果,开发者在调试界面中观察处理结果是否符合其处理预期。如果处理规则的参数组成和处理顺序不符合需求或处理结果不符合开发者的预期,则开发者可以在界面中实时修改处理规则或测试段落文本直至符合用户需求。调试界面实现了动态修改处理规则和测试段落文本,并允许开发者实时观察解析后的处理规则定义和段落文本的处理结果,增强了处理规则的可读性和交互性,便于随时验证文本处理规则的正确性;
S5、规则部署阶段,如果上述S4经调试后的处理规则符合用户需求,则在处理规则中进一步添加一些业务描述信息,一起保存为文件或发布为应用程序接口。
本发明采用支持中文提示信息的段落文本规则定义语言,通过“说明”字段允许用户描述段落文本处理规则的用途和目的等信息,通过标记和串联实现段落文本多种处理方法的组合,通过命名参数、行内参数等多种参数形式对各个处理步骤完成的处理进行调整,通过即时调试界面实现交互式的规则开发,不但能够通过自由组合实现复杂的段落文本处理功能,而且处理规则可读性好,交互性强,开发难度低,易于协作和管理,解决当前在段落文本处理时对开发人员的编程能力要求高、规则受限于特定的一种或几种编程语言、文本处理规则的设计和实现紧耦合、规则的开发和调试交互性不强的问题。
具体地,所述步骤S1具体包括:
(1)定义词法规则。PTPL的词法规则中包括了以下的词法标记:英文大写字符UCASE_LETTER、英文小写字母LCASE_LETTER、中文字符CN_ZH_LETTER、词语、无标记的短字符串UNESCAPED_STRINTG、带标记的短字符串INLINE_STRING、和带标记的长字符串MULTILINE_STRING。其中无标记的短字符串支持在语言中直接扫描一个标记,不需要显式使用单引号和双引号将其括起来,增加了规则编写的直观性;带标记的长字符串实现跨行功能,可以将规则文件中的多行文本识别为一个单独的标记,方便在规则语言中加入注释或者复杂的模式定义。本实施例中的词法规则定义如下:
LCASE_LETTER:"a".."z"
UCASE_LETTER:"A".."Z"
CN_ZH_LETTER:/[u"\u4e00-\u9fa5"]/
LETTER:UCASE_LETTER|LCASE_LETTER|CN_ZH_LETTER
WORD:LETTER+
MULTILINE_STRING:/"""([^"\\]*(\\.[^"\\]*)*)"""///多行字符串
INLINE_STRING:/"([^"\\]*(\\.[^"\\]*)*)"///单行字符串,用双引号开头
SINLINE_STRING:/'([^'\\]*(\\.[^'\\]*)*)'///单行字符串,用单引号开头
UNESCAPED_STRING:/[^=:\n\r\f,#]+///非引号开头的字符串
(2)定义文法规则。文法解析规则包括注释项COMMENT、缩进规则INDENT、规则文件说明DOC_INFO、文本处理步骤STATEMENT、文本处理方式OP、参数列表INLINE_ARGUMENTS和模式定义REGEX_LONG。参数列表INLINE_ARGUMENTS支持布尔型参数UNMAED_ARGUMENT和键值型参数KEYVAL_ARGUMENT;模式定义REGEX_LONG以正则表达式等形式实现,属于算子的特殊参数,一个算子可以拥有零个或多个模式的定义,每个模式由各类字符串标记(跨行的MULTILINE STRING,或者INLINE_STRING)实现;文本处理步骤的文法记号STEP还定义各个处理步骤之间的执行顺序,由处理方式名称OP_NAME引导,表示该步骤放在具有相应OP_NAME的步骤之后执行。本实施例中的文法规则定义如下:
?start:_NL*[doc_info_NL]statement+//规则文件
//定义规则文件说明信息
doc_info:"说明"(MULTILINE_STRING|INLINE_STRING|UNESCAPED_STRING)
//文本处理步骤项(算子)
statement:step
step:[var_name":"]op_name[inline_arguments]_NL[_INDENT named_arguments_DEDENT?]
//文本处理步骤的参数项
op_name:var_name//算子名称
named_arguments:named_argument+//具名参数
named_argument:_NL*var_name_NL*regex_long?
keyval_argument:var_name/=|:/string//键值对参数
unamed_argument:string
inline_arguments:(keyval_argument|unamed_argument)+//行内参数
//模式定义项
regex_long:regex_list_NL[_INDENT regex_long+_DEDENT]
regex_list:regex+
regex:string
//基本文法项
var_name:UNESCAPED_STRING//变量名
string:MULTILINE_STRING|INLINE_STRING|SINLINE_STRING|UNESCAPED_STRING//字符串
COMMENT:/#[^\n]*/
%ignore COMMENT//忽略注释
//缩进记号
%declare_INDENT_DEDENT
(3)定义语义规则。其中语义规则包括:(1)将开发者编写的段落文本处理规则作进一步转换,形成执行过程定义;(2)执行过程定义为文本处理步骤(以下简称STEP)的组合,其中每个STEP分解为处理方式、处理参数和模式定义三部分;每个STEP的处理方式为段落文本的分割、替换、过滤或抽取四类任务之一;每个STEP包含的模式定义可用各编程语言的正则表达式变体,词语匹配规则或者其他针对序列的匹配规则实现。
具体地,所述步骤S2具体包括:
(1)词法扫描阶段,利用正则表达式以贪婪模式匹配遇到的字符,自左向右扫描开发者编写的段落文本处理规则,解析成词法标记的序列;若正则表达式不能匹配S11中任何一个词法标记,则在不能匹配的位置报告扫描错误;
(2)文法解析阶段,使S1步骤(2)中定义的文法规则符合LALR或LR(1)等文法解析器要求的文法规则,编写文法解析规则将上述步骤得到的标记序列解析成文法树;若在当前词法标记位置无法匹配任何一个文法解析规则,则在当前词法标记位置抛出异常,向用户提示该位置匹配错误;
(3)语义处理阶段,利用语法制导翻译等手段,遍历上一步骤生成的文法树,生成文本处理步骤组成的执行过程定义。其中,每个文本处理步骤都包括处理方式,处理参数和模式定义三个部分。处理方式可以为分割、替换、过滤和抽取;处理参数对应于上述S1的步骤(2)中的参数列表INLINE_ARGUMENTS;模式定义对应于上述S1的步骤(2)中的REGEX或REGEX_LONG符号,可以包含一个或多个模式定义。如果某些处理步骤缺少必要的参数或者参数的类型错误,则向用户提示该处理步骤存在语义错误。
具体地,所述步骤S3对S1中的每类文本处理步骤都编写一个与处理步骤的参数和模式定义相一致的函数实现,作为该处理步骤的执行程序。该函数接收S2步骤(3)生成的执行过程定义,按照执行过程定义中的各个步骤依次处理处理输入的测试段落文本,其中将前一个步骤处理后的结果输出作为后一个步骤的输入,将最后一个步骤的输出作为开发者编写的段落文本处理规则的输出,从而形成段落文本处理的结果;S3中按照PTPL规范实现各类执行过程定义对应的执行程序,具体包括但不限于如下类型的文本处理步骤:
(1).文本分割:以一个或多个模式为参数,以一篇段落文本作为输入,对执行过程所关联的每个模式,返回该模式所匹配的文本的开始位置和结束位置,并根据其他参数定义的映射规则,将上述测试的段落文本分割成多段子文本;
(2).文本抽取:利用捕获分组功能,当输入的子文本与所定义的模式匹配时,从子文本中抽取出与模式相匹配的文本并输出;
(3).文本过滤:此类处理方式以段落文本经若干步骤的处理之后形成的多段子文本作为输入,基于所定义的一个或者多个肯定的或者否定的模式与各段子文本的匹配程度决定是否保留该段子文本;
(4).文本转换:对段落文本经过若干步骤的处理之后形成的多段子文本作为输入,按照所定义的模式进行匹配,并对匹配的子文本范围进行转换,用于替换各个段落子文本以形成新的各段子文本。
具体地,所述步骤S4实现为一个调试界面,如图2所示,所述步骤S4具体包括:
(1)在段落文本处理规则的开发调试界面上,用户在左上角交互式地编写处理规则,界面左下角的规则解析区域按照S23和S3解析处理规则,每当解析规则发生变化,调试界面就向后台API发出请求,实时输出当前解析出的执行过程定义。如果当前处理规则语义正确,则界面会输出将要执行的各个处理步骤的信息;如果当前处理规则语义错误,则输出相应错误信息;直到当前处理规则定义文本满足用户的文本处理需求;
(2)用户在调试界面上输入一些用户认为有代表性的测试的段落文本作为示例文本,调试界面在示例文本发生变化时,按照步骤S3的处理逻辑实时返回文本处理的结果,并高亮地在调试界面中显示出来;在调试界面中用户实时地创建和修改段落文本处理规则以及示例文本,直到界面显示的结果达到用户的期望。
具体地,所述步骤S5具体包括:
(1)在S4中如果开发者开发的文本处理规则在测试段落文本上符合期望,则保存相应的文本处理规则定义和测试的段落文本;
(2)添加文本处理规则描述信息,说明规则适用的业务背景;
(3)关联所保存的文本处理规则,段落文本和业务背景描述,并和S2所述规则解析和S3所述规则实现的代码一起发布为Web服务后端。使Web服务后端启动时能够读取所保存的规则定义和测试段落文本,并生成API,在运行使能够接受用户输入的段落文本并返回处理结果。对外提供的一个接口界面的示例可见图3。
优选地,本发明还提供了一种段落文本信息处理系统,包括:语言定义模块,用于设计段落文本处理语言PTPL,该段落文本处理语言定义了对段落文本的模式匹配、处理规则和规则组合方式;
规则解析模块,用于使开发者按照PTPL规范编写段落文本处理规则,根据语言定义模块的定义解析开发者所定义的段落文本处理规则,形成执行过程定义,其中执行过程定义由一个或多个处理步骤组合而成;
规则实现模块,用于首先按照PTPL规范实现各类执行过程定义对应的执行程序,然后按照规则解析模块得到的执行过程定义,对输入的测试段落文本依次执行各个处理步骤对应的执行程序并返回结果;
规则调试模块,用于判断所述返回结果是否符合用户的预期,若结果不正确或不符合预期,则修改规则解析模块中的编写的段落文本处理规则并对输入的测试段落文本继续测试直至符合用户需求;
规则部署模块,用于在规则调试模块得到的符合用户需求的段落文本处理规则中添加描述信息,保存为文件或发布为应用接口。
优选地,本发明还提供了一种计算机存储介质,所述介质上存储有计算机程序,所述计算机程序被处理器执行实现本发明所述的段落文本信息处理方法。
与现有技术手段相比,本发明不但能够通过自由组合实现复杂的段落文本处理功能,而且处理规则可读性好,交互性强,开发难度低,易于协作和管理。适用于开发人员的编程能力要求不高、规则开发需要独立于特定的一种或几种编程语言、交互式地进行规则开发和调试等段落文本处理规则的开发和部署场景。
上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述申请构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求书的保护范围内。
Claims (10)
1.一种段落文本信息处理方法,其特征在于,所述方法包括以下步骤:
S1.语言定义:设计段落文本处理语言PTPL,该段落文本处理语言定义了段落文本的模式匹配、处理规则和规则组合方式;
S2.规则解析:开发者按照PTPL规范编写段落文本处理规则,根据S1的定义解析开发者所编写的段落文本处理规则,形成执行过程定义;
S3.规则实现:按照PTPL规范实现各类执行过程定义对应的执行程序,然后按照S2得到的执行过程定义,对输入的测试段落文本依次执行执行过程定义对应的执行程序并返回结果;
S4.规则调试步骤:判断所述返回结果是否符合用户的预期,若结果不正确或不符合预期,则修改S2中编写的段落文本处理规则并对输入的测试段落文本继续测试直至符合用户需求;
S5.规则部署:在S4得到的符合用户需求的段落文本处理规则中添加描述信息,一起保存为文件或发布为应用接口。
2.根据权利要求1所述的段落文本信息处理方法,其特征在于,所述步骤S1中的所述段落文本处理语言在词法、文法和语义的层面上进行了定义,具体包括:
S11.定义词法规则:词法标记包括英文大写字符UCASE_LETTER、英文小写字母LCASE_LETTER、中文字符CN_ZH_LETTER、词语、无标记的短字符串UNESCAPED_STRINTG、带标记的短字符串INLINE_STRING、和带标记的长字符串MULTILINE_STRING;
S12.定义文法规则:文法规则包括注释项COMMENT、缩进规则INDENT、规则文件说明DOC_INFO、文本处理步骤STATEMENT、文本处理算子OP、参数列表INLINE_ARGUMENTS和模式定义REGEX_LONG;其中参数列表INLINE_ARGUMENTS支持布尔型参数UNMAED_ARGUMENT和键值型参数KEYVAL_ARGUMENT;模式定义REGEX_LONG以正则表达式实现;文本处理步骤用于定义算子之间执行的顺序,由算子名称OP_NAME引导,表示该算子放在具有相应OP_NAME的算子之后执行;
S13.定义语义规则,其中语义规则包括:(1)将开发者编写的段落文本处理规则作进一步转换,形成执行过程定义;(2)执行过程定义为文本处理步骤STEP的组合。
3.根据权利要求2所述的段落文本信息处理方法,其特征在于,步骤S2具体包括:
S21.词法扫描步骤,根据S11的定义,利用正则表达式以贪婪模式匹配遇到的字符,将开发者所编写的段落文本处理规则自左向右匹配,解析成标记的序列;若正则表达式没有匹配上述标记之一,则在当前位置报告扫描错误;
S22.文法解析步骤,编写文法解析规则将所述标记的序列解析成文法树;若在当前词法标记位置无法匹配任何一个文法解析规则,则在当前词法标记位置抛出异常,向用户提示该位置匹配错误;
S23.语义处理步骤,遍历整个文法树,对开发者编写的段落文本处理规则进行文法解析,并根据S13的定义规则,生成执行过程定义。
4.根据权利要求3所述的段落文本信息处理方法,其特征在于,所述步骤S3根据S23解析出的执行过程定义,按照执行过程定义中的各个步骤依次处理输入的测试段落文本,其中将前一个步骤处理后的结果输出作为后一个步骤的输入,将最后一个步骤的输出作为开发者编写的段落文本处理规则的输出,从而形成段落文本处理的结果;根据PTPL的定义所述文本处理过程即执行过程定义为如下四类处理方式的组合:
(1).文本分割:以一个或多个模式为参数,以一篇段落文本作为输入,对执行过程所关联的每个模式,返回该模式所匹配的文本的开始位置和结束位置,并根据其他参数定义的映射规则,将上述测试的段落文本分割成多段子文本;
(2).文本抽取:利用捕获分组功能,当输入的子文本与所定义的模式匹配时,从子文本中抽取出与模式相匹配的文本并输出;
(3).文本过滤:以段落文本经若干步骤的处理之后形成的多段子文本作为输入,基于所定义的一个或者多个肯定的或者否定的模式与各段子文本的匹配程度决定是否保留该段子文本;
(4).文本转换:以段落文本经过若干步骤的处理之后形成的多段子文本作为输入,按照所定义的模式进行匹配,并对匹配的子文本范围进行转换,用于替换各个段落子文本以形成新的各段子文本。
5.根据权利要求4所述的段落文本信息处理方法,其特征在于,所述步骤S4具体包括:
S41.用户在调试界面上编写段落文本处理规则,调试界面中的解析区域实时输出当前解析出的规则;如果当前规则定义正确,则测试界面按照步骤S2的逻辑输出将要执行的执行过程定义的情况;如果当前规则定义错误,则输出相应错误信息,直到当前的规则满足用户的文本处理需求;
S42.用户在调试界面上输入一些输入的测试段落文本作为示例文本,调试界面在示例文本发生变化时,按照步骤S3的处理逻辑实时返回文本处理的结果,并在调试界面中显示出来;在调试界面中用户实时地创建和修改段落文本处理规则以及示例文本,直到界面显示的结果达到用户的期望。
6.根据权利要求5所述的段落文本信息处理方法,其特征在于,所述步骤S5具体包括:
S51.保存符合用户期望的段落文本处理规则和测试的段落文本;
S52.添加处理规则描述信息,说明段落文本处理规则适用的业务背景;
S53.关联所保存的段落文本处理规则,测试的段落文本和业务背景描述,并联合S2所述规则解析和S3所述规则实现,一起发布为Web服务后端。
7.根据权利要求3所述的段落文本信息处理方法,其特征在于,所述执行过程定义是由文本处理步骤组成的顺序组合;生成的每个文本处理步骤包括处理方式,处理参数和模式定义三个部分;所述处理方式为段落文本的分割、替换、过滤和抽取任务之一;所述处理参数对应于上述步骤S12中的参数列表INLINE_ARGUMENTS;模式定义对应于上述步骤S12中的一个或多个REGEX符号;如果某些步骤缺少必要的参数或者出现类型错误,则向用户提示该处理步骤出现语义错误。
8.根据权利要求2所述的段落文本信息处理方法,其特征在于,其中每个STEP分解为处理方式、处理参数和模式定义三部分;每个STEP的处理方式为对段落文本的分割、替换、过滤或抽取四类任务之一;每个STEP包含的模式定义用正则表达式变体,词语匹配规则或者其他针对序列的匹配规则实现。
9.一种段落文本信息处理系统,其特征在于,包括:语言定义模块,用于设计段落文本处理语言PTPL,该段落文本处理语言定义了对段落文本的模式匹配、处理规则和规则组合方式;
规则解析模块,用于使开发者按照PTPL规范编写段落文本处理规则,根据语言定义模块的定义解析开发者所定义的段落文本处理规则,形成执行过程定义;
规则实现模块,用于首先按照PTPL规范实现各类执行过程定义对应的执行程序,然后按照规则解析模块得到的执行过程定义,对输入的测试段落文本依次执行各个处理步骤对应的执行程序并返回结果;
规则调试模块,用于判断所述返回结果是否符合用户的预期,若结果不正确或不符合预期,则修改规则解析模块中的编写的段落文本处理规则并对输入的测试段落文本继续测试直至符合用户需求;
规则部署模块,用于在规则调试模块得到的符合用户需求的段落文本处理规则中添加描述信息,保存为文件或发布为应用接口。
10.一种计算机存储介质,其特征在于,所述介质上存储有计算机程序,所述计算机程序被处理器执行实现权利要求1-8任一项所述的段落文本信息处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210720557.7A CN115130434A (zh) | 2022-06-23 | 2022-06-23 | 一种段落文本信息处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210720557.7A CN115130434A (zh) | 2022-06-23 | 2022-06-23 | 一种段落文本信息处理方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115130434A true CN115130434A (zh) | 2022-09-30 |
Family
ID=83379288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210720557.7A Pending CN115130434A (zh) | 2022-06-23 | 2022-06-23 | 一种段落文本信息处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115130434A (zh) |
-
2022
- 2022-06-23 CN CN202210720557.7A patent/CN115130434A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Grune et al. | Modern compiler design | |
US8762962B2 (en) | Methods and apparatus for automatic translation of a computer program language code | |
CN110347598B (zh) | 一种测试脚本生成方法、装置、服务器及存储介质 | |
Bacchelli et al. | Extracting structured data from natural language documents with island parsing | |
Hoschele et al. | Mining input grammars with AUTOGRAM | |
US7779049B1 (en) | Source level optimization of regular expressions | |
Aarts et al. | Computational tools for the syntactic analysis of corpora | |
Watson | A practical approach to compiler construction | |
Alexandru et al. | Replicating parser behavior using neural machine translation | |
CN117194258A (zh) | 一种代码大模型的评测方法和装置 | |
CN115130434A (zh) | 一种段落文本信息处理方法和系统 | |
Stepney et al. | An outline pattern language for Z: five illustrations and two tables | |
CN112965909A (zh) | 测试数据、测试用例生成方法及系统、存储介质 | |
CN110928535A (zh) | 衍生变量部署方法、装置、设备及可读存储介质 | |
Sadu | Automatic detection of outdated comments in open source Java projects | |
Moser et al. | Towards attribute grammar mining by symbolic execution | |
Shafeek et al. | _toFlowchart: A prototype compiler to convert source-code to flowchart | |
Gilmore | Correctness-oriented approaches to software development | |
Xiao et al. | The design and implementation of c-like language interpreter | |
Rakic et al. | miniC Project for Teaching Compilers Course | |
Yao et al. | Question Generation from Code Snippets and Programming Error Messages | |
PINA | Auto test generator: a framework to generate test cases from requirements in natural language | |
Youn et al. | Bringing the WebAssembly Standard up to Speed with SpecTec | |
CN117033380A (zh) | 一种数据溯源的方法、装置、电子设备及存储介质 | |
Fujisaka et al. | Easy-to-Grasp Compiler Messages: Beginner-Friendly Web System Proposal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |