一种结合RPA与AI的文本信息提取方法、装置、设备及介质
相关申请的交叉引用
本申请要求北京来也网络科技有限公司和北京奔影网络科技有限公司于2020年06月30日提交的、申请名称为“一种基于AI的信息提取方法、装置、设备及介质”的、中国专利申请号“202010612633.3”的优先权。
技术领域
本申请涉及文本理解技术领域,具体而言,涉及一种结合RPA(Robotic ProcessAutomation,机器人流程自动化)与AI(Artificial Intelligence,人工智能)的文本信息提取方法、装置、设备及介质。
背景技术
机器人流程自动化(Robotic Process Automation,简称:RPA)是通过特定的“机器人软件”,模拟人在计算机上的操作,按规则自动执行流程任务。
人工智能(Artificial Intelligence,AI)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。指由人制造出来的机器所表现出来的智能。通常人工智能是指通过普通计算机程序来呈现人类智能的技术。
在财务管理过程中,通常需要从财务文本中提取各种信息,例如:谁以什么方式增持或减持了多少股份。现有的方法中,可以通过基于目标的算法对需要提取信息的文本进行提取,得到提取结果,然后用户从提取的内容中继续查找所要提取的信息。可见,由于上述基于目标的算法并不是针对文本提取的算法,因此上述信息提取方法得到的提取结果仅仅是大致内容,无法准确定位到用户所要提取的信息,在得到提取结果后,仍然需要人工进行进一步的信息提取,导致提取效率较低。
发明内容
本申请提供了一种结合RPA与AI的文本信息提取方法、装置、设备及介质,以提高提取效率。具体的技术方案如下。
第一方面,本申请实施例提供一种结合RPA与AI的文本信息提取方法,所述方法包括:
S1、获取待提取文本;
S2、根据预先建立的信息提取模板提取所述待提取文本中的提取信息。
可选的,所述信息提取模板中包括字段提取类型和多个匹配规则,所述步骤S2具体包括:
S21、对所述待提取文本进行分词得到词序列;
S22、分别将所述词序列中的词依次与匹配方式为严格匹配的匹配规则进行匹配;
S23、将所述词序列中匹配成功的词作为锚点,将所述信息提取模板中与所述锚点匹配的匹配规则作为匹配点;
S24、基于所述锚点和所述匹配点建立锚点树;
S25、从所述锚点树中识别出所述字段提取类型的词作为提取信息。
可选的,所述步骤S24具体包括:
S241、将匹配得到的第一个锚点作为锚点树的根节点;
S242、将所述第一个锚点作为当前锚点,将所述当前锚点的匹配点作为当前匹配点,将所述当前锚点的下一个锚点作为所述当前锚点的右子树的根节点;
S243、将所述词序列中位于所述当前锚点与所述下一个锚点之间的文本片段以及所述信息提取模板中位于所述当前匹配点与下一个匹配点之间的模板片段作为所述当前锚点的左子树的根节点;
S244、将所述下一个锚点作为当前锚点,将所述下一个匹配点作为当前匹配点,返回执行将所述当前锚点的下一个锚点作为所述当前锚点的右子树的根节点的步骤;
S245、当不存在下一个锚点时,将所述词序列中位于所述当前锚点之后的文本片段以及所述信息提取模板中位于所述当前匹配点之后的模板片段作为所述当前锚点的左子树的根节点。
可选的,所述步骤S25具体包括:
S251、针对每个左子树的根节点,将该左子树的根节点包含的文本片段和模板片段进行片段匹配,得到片段匹配对,其中,每个片段匹配对包含一对相互匹配的词和匹配规则;
S252、从所述片段匹配对和各个右子树的根节点包含的锚点中识别出所述字段提取类型的词作为提取信息。
可选的,所述步骤S251具体包括:
S2511、针对每个左子树的根节点,将该左子树的根节点包含的模板片段中的每个匹配规则倒序入栈;
S2512、将该左子树的根节点包含的文本片段中的第一个位置作为当前匹配位置,将位于所述当前匹配位置的词作为待判断的词,将所述栈的栈顶作为当前栈点;
S2513、判断所述待判断的词是否被位于所述当前栈点的匹配规则语义包含;
S2514、如果被语义包含,将所述待判断的词和所述位于所述当前栈点的匹配规则作为一个片段匹配对,并将所述当前栈点的匹配规则出栈;
S2515、判断所述当前栈点的下一个栈点是否为空;
S2516、如果为空,匹配结束;
S2517、如果不为空,将所述当前栈点的下一个栈点作为当前栈点,将所述当前匹配位置的下一个位置作为当前匹配位置,返回执行步骤S2513;
S2518、如果未被语义包含,将位于所述当前匹配位置的下一个位置的词加入所述待判断的词,返回执行步骤S2513。
可选的,所述信息提取模板通过如下方式得到:
S3、对匹配规则列表进行配置;
S4、对字段提取类型列表进行配置;
S5、构建初始模板,基于所述匹配规则列表和所述字段提取类型列表对所述初始模板进行配置得到所述信息提取模板。
可选的,所述步骤S3具体包括:
S31、配置所述匹配规则列表包括正则表达式匹配规则、词表匹配规则、任意长度文本匹配规则和短语匹配规则中的至少两项。
可选的,所述词表匹配规则中的词表包括身份词表和方式词表。
可选的,所述正则表达式匹配规则中的正则表达式包括数字过滤正则表达式。
第二方面,本申请实施例提供一种结合RPA与AI的文本信息提取装置,所述装置包括:
待提取文本获取模块,被配置为获取待提取文本;
信息提取模块,被配置为根据预先建立的信息提取模板提取所述待提取文本中的提取信息。
第三方面,本申请实施例提供一种计算设备,所述设备包括:
存储有可执行程序代码的存储器;
与存储器耦合的处理器;
其中,处理器调用存储器中存储的可执行程序代码,执行如上述第一方面所述的结合RPA与AI的文本信息提取方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的结合RPA与AI的文本信息提取方法。
由上述内容可知,本申请实施例中,获取待提取文本,根据预先建立的信息提取模板提取待提取文本中的提取信息。由于本申请实施例是预先建立了用于信息提取的信息提取模板,也就是说所建立的信息提取模板是针对文本提取进行应用的,更具有针对性,因此,根据预先建立的信息提取模板可以准确提取待提取文本中的提取信息,无需人工再进一步进行信息提取,提高了提取效率。当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
本申请实施例的创新点包括:
1、本申请实施例中,获取待提取文本,根据预先建立的信息提取模板提取待提取文本中的提取信息。由于本申请实施例是预先建立了用于信息提取的信息提取模板,也就是说所建立的信息提取模板是针对文本提取进行应用的,更具有针对性,因此,根据预先建立的信息提取模板可以准确提取待提取文本中的提取信息,无需人工再进一步进行信息提取,提高了提取效率。
2、通过构建初始模板,基于匹配规则列表和字段提取类型列表对初始模板进行配置的方式得到了信息提取模板。由于在进行模板建立时,已经有针对性的配置了字段提取类型,因此,基于所建立的信息提取模板可以准确定位提取字段提取类型的词作为提取信息,无需人工再进一步进行信息提取,提高了提取效率。
3、通过栈匹配的方式对每个左子树的根节点包含的文本片段和模板片段进行片段匹配,得到片段匹配对,由于栈的读取速度快,因此,栈匹配的效率高,进一步使得片段匹配的效率较高。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍。显而易见地,下面描述中的附图仅仅是本申请的一些实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的信息提取模板的示意图;
图2是本申请实施例提供的一种结合RPA与AI的文本信息提取方法的流程示意图;
图3为锚点树的结构示意图;
图4为栈的结构示意图;
图5是本申请实施例提供的一种结合RPA与AI的文本信息提取装置的结构示意图;
图6是本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例及附图中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含的一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本申请的描述中,术语“字段提取类型”,是指所要提取的词的类型,例如:所要提取的词为“肖宝玉”,由于“肖宝玉”是一个人名,所以“字段提取类型”为人名。
在本申请的描述中,术语“匹配规则”,是指用于进行匹配的规则,例如:正则表达式就是一种匹配规则。
在本申请的描述中,术语“严格匹配”,是指根据所提出的条件或要求,给予一定精确程度的匹配。与模糊匹配相对,模糊匹配是指根据所给的条件或者说要求,给予大致程度的匹配。
在本申请的描述中,术语“语义包含”是指在中文词的粒度上进行的,基于词的分布式表示计算词与匹配规则的语义相似度从而实现的模糊匹配,如果词与匹配规则的语义相似度达到预设标准,则确定词被匹配规则语义包含,如果词与匹配规则的语义相似度未达到预设标准,则确定词未被匹配规则语义包含。
在本申请的描述中,术语“锚点树”,是指基于锚点建立的二叉树,二叉树的根节点和每个右子树根节点均为锚点。
在本申请的描述中,术语“短语匹配规则”是指对于特定句式的说法,可以定义确定的文本作为匹配条件。
在本申请的描述中,术语“词表匹配规则”是指对于像身份、持股方式这类可枚举的信息,需要将它们以及各自对应的同义词添加到字典中,这样在做匹配时,可以对词进行基于词典的检索,以此判断词是否满足要求。
在本申请的描述中,术语“正则表达式匹配规则”是指对于像股数这类具有通用格式的信息可采用正则表达式进行表示,在做匹配时,判断词是否满足给定的正则表达式。
在本申请的描述中,术语“任意长度文本匹配规则”是指对于像人名、地点等这类不可枚举的信息,在做匹配时,通过语义是否包含的方式来进行匹配。
在本申请的描述中,术语“栈”,是限定仅在表尾进行插入和删除操作的线性表。是指数据暂时存储的地方,栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶,另一端为栈底。插入一般称为进栈,删除则称为出栈。
下面将结合附图,对本申请实施例提供的内容进行详细介绍。
实施例一
在很多场景中,都需要从某一文本中提取某些信息,例如:上市公司的股东减持或增持股票需要发布公告做信息披露,这时,上市公司想从公告文本中提取信息:谁以什么方式增持或减持了多少股。
假设公告文本为:
持有本公司股份300,000股(占本公司总股本0.0284%)的高级管理人员肖宝玉拟自本公告起十五个交易日后的六个月内,以集中竞价方式减持本公司股份不超过75,000股(占公司总股本的0.0071%),已跟监事进行确认;
持有本公司股份158,858股(占本公司总股本0.0150%)的监事赵毅拟自本公告起十五个交易日后的六个月内,以集中竞价或大宗交易方式减持本公司股份不超过39,715股(占公司总股本的0.0038%);
持有本公司股份1,208,035股(占本公司总股本0.1143%)的高级管理人员敖志强拟自本公告起十五个交易日后的六个月内,以集中竞价或大宗交易方式减持本公司股份不超过250,000股(占公司总股本的0.0237%);
持有本公司股份130,162,360股(占本公司总股本12.3180%)的控股股东、实际控制人之一的霍卫平拟自本公告起十五个交易日后的六个月内,以集中竞价或大宗交易方式减持本公司股份不超过2,000,000股(占公司总股本的0.1893%)。
为了在上述公告文本中提取信息,在获取了上述公告文本后,参见图1,图1为本申请实施例提供的信息提取模板的示意图,本申请实施例预先建立了如图1所示的信息提取模板,然后根据图1所示的信息提取模板提取公告文本中的信息,得到如下表所示的提取结果:
人名 |
方式 |
减持/增持 |
股数 |
肖宝玉 |
集中竞价 |
减持 |
75,000 |
赵毅 |
集中竞价或大宗交易 |
减持 |
39,715 |
熬志强 |
集中竞价或大宗交易 |
减持 |
250,000 |
霍卫平 |
集中竞价或大宗交易 |
减持 |
2,000,000 |
实施例二
请参阅图2,图2是本申请实施例提供的一种结合RPA与AI的文本信息提取方法的流程示意图。该方法可由结合RPA与AI的文本信息提取装置来执行,该装置可通过软件和/或硬件的方式实现。如图2所示,本实施例提供的方法具体包括:
S210、获取待提取文本。
为了从文本中提取信息,首先需要获取待提取文本,例如获取实施例一中的公告文本。
S220、根据预先建立的信息提取模板提取待提取文本中的提取信息。
在获取待提取文本后,即可根据预先建立的信息提取模板提取待提取文本中的提取信息。
示例性的,信息提取模板中包括字段提取类型和多个匹配规则,步骤S220具体可以包括:
S21、对待提取文本进行分词得到词序列。
由于待提取文本是有多段文字组成的,而每段文字又是由多个词构成的,因此,为了将待提取文本中词与信息提取模板中的匹配规则进行匹配,需要对待提取文本进行分词,分词就是确定每段文字中包含哪些词,其中,对待提取文本进行分词的方式可以为现有技术中的任一种分词的方式,本申请实施例对此不作任何限定。
在对待提取文本进行分词后得到词序列,其中,词序列为词的下方带有序列标号的词的序列。
例如:针对下述文本进行分词:
持有本公司股份300,000股(占本公司总股本0.0284%)的高级管理人员肖宝玉拟自本公告起十五个交易日后的六个月内,以集中竞价方式减持本公司股份不超过75,000股(占公司总股本的0.0071%),已跟监事进行确认。
得到的词序列为:
[0]持有[1]本[2]公司[3]股份[4]300[5],[6]000[7]股[8]([9]占[10]本[11]公司[12]总[13]股本[14]0.0284[15]%[16])[17]的[18]高级[19]管理人员[20]肖[21]宝玉[22]拟[23]自本[24]公告[25]起[26]十五个[27]交易日[28]后[29]的[30]六个月[31]内[32],[33]以[34]集中[35]竞价[36]方式[37]减持[38]本[39]公司[40]股份[41]不[42]超过[43]75[44],[45]000[46]股[47]([48]占[49]公司[50]总[51]股本[52]的[53]0.0071[54]%[55])[56],[57]已[58]跟[59]监事[60]进行[61]确认[62]。
可见分词后,每个词的下方都有序列标号,代表这个词在词序列中的位置。
S22、分别将词序列中的词依次与匹配方式为严格匹配的匹配规则进行匹配。
匹配规则的匹配方式有多种,至少可以包括严格匹配和模糊匹配,由于严格匹配的精确度是高于模糊匹配的,因此,在得到词序列后,分别将词序列中的词依次与匹配方式为严格匹配的匹配规则进行匹配。
例如:针对下述词序列,分别将词序列中的词依次与图1所示的信息提取模板中匹配方式为严格匹配的匹配规则进行匹配:
[0]持有[1]本[2]公司[3]股份[4]300[5],[6]000[7]股[8]([9]占[10]本[11]公司[12]总[13]股本[14]0.0284[15]%[16])[17]的[18]高级[19]管理人员[20]肖[21]宝玉[22]拟[23]自本[24]公告[25]起[26]十五个[27]交易日[28]后[29]的[30]六个月[31]内[32],[33]以[34]集中[35]竞价[36]方式[37]减持[38]本[39]公司[40]股份[41]不[42]超过[43]75[44],[45]000[46]股[47]([48]占[49]公司[50]总[51]股本[52]的[53]0.0071[54]%[55])[56],[57]已[58]跟[59]监事[60]进行[61]确认[62]。
在图1所示的信息提取模板中,匹配规则的匹配方式为严格匹配的有:[@V身份]、[减持|增持]和[@R数字],则将词序列中的词分别与[@V身份]、[减持|增持]和[@R数字]进行匹配。
S23、将词序列中匹配成功的词作为锚点,将信息提取模板中与锚点匹配的匹配规则作为匹配点。
在进行匹配后,将词序列中匹配成功的词作为锚点,由于匹配成功的不仅包括词序列中的词,还包括信息提取模板中的匹配规则,因此,将信息提取模板中与锚点匹配的匹配规则作为匹配点。
例如:承接步骤S22中的例子,词序列中匹配成功的词为:高级管理人员、减持和75000,信息提取模板中与锚点匹配的匹配规则为:[@V身份]、[减持|增持]和[@R数字],因此,将高级管理人员、减持和75000作为锚点,将[@V身份]作为与锚点高级管理人员匹配的匹配点,将[减持|增持]作为与[减持|增持]匹配的匹配点,将[@R数字]作为与锚点75000匹配的匹配点。
S24、基于锚点和匹配点建立锚点树。
由于在得到锚点和匹配点后,并未得到所要提取的提取信息,为了得到提取信息,需要基于锚点和匹配点建立锚点树。
示例性的,步骤S24具体可以包括:
S241、将匹配得到的第一个锚点作为锚点树的根节点。
步骤S23中匹配得到的锚点有多个,为了建立锚点树,将匹配得到的第一个锚点作为锚点树的根节点。
例如:承接步骤S23的例子,匹配得到的第一个锚点为高级管理人员,则将高级管理人员作为锚点树的根节点。
S242、将第一个锚点作为当前锚点,将当前锚点的匹配点作为当前匹配点,将当前锚点的下一个锚点作为当前锚点的右子树的根节点。
在得到锚点树的根节点后,将匹配得到的其他锚点按顺序作为前一个锚点的右子树的根节点。
具体的,将第一个锚点作为当前锚点,将当前锚点的匹配点作为当前匹配点,将当前锚点的下一个锚点作为当前锚点的右子树的根节点。
例如:承接步骤S241的例子,将高级管理人员作为当前锚点,将当前锚点的匹配点[@V身份]作为当前匹配点,将当前锚点的下一个锚点减持作为当前锚点的右子树的根节点。
S243、将词序列中位于当前锚点与下一个锚点之间的文本片段以及信息提取模板中位于当前匹配点与下一个匹配点之间的模板片段作为当前锚点的左子树的根节点。
在得到多个锚点后,将两个锚点之间的的文本片段以及两个匹配点之间的模板片段按顺序作为锚点树的左子树的根节点。
具体的,将词序列中位于当前锚点与下一个锚点之间的文本片段以及信息提取模板中位于当前匹配点与下一个匹配点之间的模板片段作为当前锚点的左子树的根节点。
例如:承接步骤S242的例子,将词序列中位于当前锚点高级管理人员与下一个锚点减持之间的文本片段“[20]肖[21]宝玉[22]拟[23]自本[24]公告[25]起[26]十五个[27]交易日[28]后[29]的[30]六个月[31]内[32],[33]以[34]集中[35]竞价[36]方式”以及信息提取模板中位于当前匹配点[@V身份]与下一个匹配点[减持|增持]之间的模板片段“<*><拟自本公告起><*><以><@V方式><*>”作为当前锚点高级管理人员的左子树的根节点。
S244、将下一个锚点作为当前锚点,将下一个匹配点作为当前匹配点,返回执行将当前锚点的下一个锚点作为当前锚点的右子树的根节点的步骤。
截止到步骤S243已经建立了锚点树的一对左子树的根节点和右子树的根节点,后续建立子树的方式与之前相同。
具体的,将下一个锚点作为当前锚点,将下一个匹配点作为当前匹配点,返回执行将当前锚点的下一个锚点作为当前锚点的右子树的根节点的步骤。
例如:承接步骤S243的例子,将下一个锚点减持作为当前锚点,将下一个匹配点[减持|增持]作为当前匹配点,将当前锚点减持的下一个锚点75000作为当前锚点减持的右子树的根节点;
将词序列中位于当前锚点减持与下一个锚点75000之间的文本片段“[38]本[39]公司[40]股份[41]不[42]超过”以及信息提取模板中位于当前匹配点[减持|增持]与下一个匹配点[@R数字]之间的模板片段“<本公司股份不超过>”作为当前锚点减持的左子树的根节点,然后继续将下一个锚点75000作为当前锚点,将下一个匹配点[@R数字]作为当前匹配点继续建立子树。
S245、当不存在下一个锚点时,将词序列中位于当前锚点之后的文本片段以及信息提取模板中位于当前匹配点之后的模板片段作为当前锚点的左子树的根节点。
由于词序列是有限的,因此,会存在最后一个锚点,也就是当前锚点不再有下一个锚点,具体的,当不存在下一个锚点时,将词序列中位于当前锚点之后的文本片段以及信息提取模板中位于当前匹配点之后的模板片段作为当前锚点的左子树的根节点。
例如:承接步骤S244的例子,由于锚点75000已经是最后一个锚点,不存在下一个锚点,此时,将词序列中位于当前锚点75000之后的文本片段“[46]股[47]([48]占[49]公司[50]总[51]股本[52]的[53]0.0071[54]%[55])[56],[57]已[58]跟[59]监事[60]进行[61]确认[62”以及信息提取模板中位于当前匹配点之后的模板片段“<股>”作为当前锚点的左子树的根节点,最后建立如图3所示的锚点树,其中,图3为锚点树的结构示意图。
S25、从锚点树中识别出字段提取类型的词作为提取信息。
在建立了锚点树后,为了得到所要提取的提取信息,需要从锚点树中识别出字段提取类型的词作为提取信息。
具体的,在步骤S24具体可以包括S241-S245的情况下,步骤S25具体可以包括:
S251、针对每个左子树的根节点,将该左子树的根节点包含的文本片段和模板片段进行片段匹配,得到片段匹配对,其中,每个片段匹配对包含一对相互匹配的词和匹配规则。
由于锚点树的左子树的根节点中还包含有可以提取的信息,因此,本申请实施例中针对每个左子树的根节点采取片段匹配的方式来得到左子树的根节点中可能包含的所要提取的信息。
示例性的,步骤S251具体可以包括:
S2511、针对每个左子树的根节点,将该左子树的根节点包含的模板片段中的每个匹配规则倒序入栈。
本申请实施例中采用栈匹配的方式来进行片段匹配,具体的,针对每个左子树的根节点,将该左子树的根节点包含的模板片段中的每个匹配规则倒序入栈。
例如:承接步骤S245的例子,以高级管理人员的左子树的根节点为例进行说明,将模板片段“<*><拟自本公告起><*><以><@V方式><*>”中的每个匹配规则倒序入栈得到如图4所示的栈,其中,图4为栈的结构示意图。
S2512、将该左子树的根节点包含的文本片段中的第一个位置作为当前匹配位置,将位于当前匹配位置的词作为待判断的词,将栈的栈顶作为当前栈点。
在各匹配规则入栈后,将该左子树的根节点包含的文本片段中的第一个位置作为当前匹配位置,将位于当前匹配位置的词作为待判断的词,将栈的栈顶作为当前栈点。
例如:承接步骤S2511的例子,将该左子树的根节点包含的文本片段“[20]肖[21]宝玉[22]拟[23]自本[24]公告[25]起[26]十五个[27]交易日[28]后[29]的[30]六个月[31]内[32],[33]以[34]集中[35]竞价[36]方式”中的第一个位置[20]作为当前匹配位置,将位于当前匹配位置的词“肖”作为待判断的词,将栈的栈顶作为当前栈点。
S2513、判断待判断的词是否被位于当前栈点的匹配规则语义包含。
在得到待判断的词后,判断待判断的词是否被位于当前栈点的匹配规则语义包含,并根据判断结果执行后续步骤。
例如:承接步骤S2512的例子,判断待判断的词“肖”是否被位于当前栈点的匹配规则<*>语义包含。
S2514、如果被语义包含,将待判断的词和位于当前栈点的匹配规则作为一个片段匹配对,并将当前栈点的匹配规则出栈。
如果判断结果为被语义包含,说明匹配成功,将待判断的词和位于当前栈点的匹配规则作为一个片段匹配对,并将当前栈点的匹配规则出栈。
S2515、判断当前栈点的下一个栈点是否为空。
由于当前栈点已经匹配成功并出栈,因此,继续按顺序向栈底进行匹配,在匹配之前,需要判断当前栈点的下一个栈点是否为空,并根据判断结果执行后续步骤。
S2516、如果为空,匹配结束。
如果判断结果为空,说明没有可以匹配的栈点,此时,确定匹配结束。
S2517、如果不为空,将当前栈点的下一个栈点作为当前栈点,将当前匹配位置的下一个位置作为当前匹配位置,返回执行步骤S2513。
如果判断结果不为空,说明还有可以匹配的栈点,则继续进行匹配,即将当前栈点的下一个栈点作为当前栈点,将当前匹配位置的下一个位置作为当前匹配位置,返回执行步骤S2513。
S2518、如果未被语义包含,将位于当前匹配位置的下一个位置的词加入待判断的词,返回执行步骤S2513。
如果判断结果为未被语义包含,说明匹配不成功,则需要继续加入词来进行匹配,即将位于当前匹配位置的下一个位置的词加入待判断的词,返回执行步骤S2513。
例如:承接步骤S2513的例子,假设待判断的词“肖”未被位于当前栈点的匹配规则<*>语义包含,将位于当前匹配位置[20]的下一个位置[21]的词加入待判断的词,继续判断待判断的词“肖宝玉”是否被位于当前栈点的匹配规则<*>语义包含并继续进行后续步骤直至下一个栈点为空,得到的片段匹配对为:<*>和肖宝玉、<拟自本公告起>和拟自本公告起、<*>和十五个交易日后的六个月内、<以>和以、<@V方式>和集中竞价方式。
由此,通过栈匹配的方式对每个左子树的根节点包含的文本片段和模板片段进行片段匹配,得到片段匹配对,由于栈的读取速度快,因此,栈匹配的效率高,进一步使得片段匹配的效率较高。
S252、从片段匹配对和各个右子树的根节点包含的锚点中识别出字段提取类型的词作为提取信息。
在得到片段匹配对后,即可从片段匹配对和各个右子树的根节点包含的锚点中识别出字段提取类型的词作为提取信息。其中,字段提取类型在模板建立时由开发人员确定。
例如:承接步骤S2518的例子,假设字段提取类型为:人名、持股方式、减持/增持和股数,则从片段匹配对和各个右子树的根节点包含的锚点中识别出字段提取类型的词“肖宝玉、集中竞价、减持、75,000”作为提取信息。
由此,通过栈匹配的方式得到片段匹配对,再从片段匹配对和各个右子树的根节点包含的锚点中识别出字段提取类型的词作为提取信息。
示例性的,在上述方法中的信息提取模板是通过如下方式得到:
S3、对匹配规则列表进行配置。
由于信息提取是从文本中进行提取,因此,开发人员基于文本匹配所包含的匹配规则配置匹配规则列表。其中,文本匹配包含的匹配规则有多种,例如正则表达式匹配规则、词表匹配规则、任意长度文本匹配规则和短语匹配规则。
示例性的,步骤S3具体可以包括:
S31、配置匹配规则列表包括正则表达式匹配规则、词表匹配规则、任意长度文本匹配规则和短语匹配规则中的至少两项。
由于所要提取的提取信息通常至少包括两种类型的词,因此,可以配置匹配规则列表包括正则表达式匹配规则、词表匹配规则、任意长度文本匹配规则和短语匹配规则中的至少两项。
其中,词表匹配规则中的词表包括身份词表和方式词表。正则表达式匹配规则中的正则表达式包括数字过滤正则表达式。
例如:实施例一中的信息提取模板的身份词表包括:实际控制人、控股股东/大股东、监事、股东、董事、高级管理人员,方式词表包括:协议转让、大宗交易、集中竞价、协议转让或集中竞价、协议转让或大宗交易、大宗交易或集中竞价。
S4、对字段提取类型列表进行配置。
开发人员基于所要提取的提取信息配置字段提取类型列表,字段提取类型列表也就是提取信息所包含的词的类型的列表。
S5、构建初始模板,基于匹配规则列表和字段提取类型列表对初始模板进行配置得到信息提取模板。
为了建立信息提取模板,需要构建初始模板,其中,初始模板的构建方法可以为现有技术中的任一种初始模板构建方法,本申请实施例对此不做任何限定。
在构建了初始模板后,就将配置的匹配规则列表和字段提取类型列表填入初始模板中的相应位置得到信息提取模板,即基于匹配规则列表和字段提取类型列表对初始模板进行配置得到信息提取模板。
由此,通过构建初始模板,基于匹配规则列表和字段提取类型列表对初始模板进行配置的方式得到了信息提取模板。由于在进行模板建立时,已经有针对性的配置了字段提取类型,因此,基于所建立的信息提取模板可以准确定位提取字段提取类型的词作为提取信息,无需人工再进一步进行信息提取,提高了提取效率。
由上述内容可知,本申请实施例中,获取待提取文本,根据预先建立的信息提取模板提取待提取文本中的提取信息。由于本申请实施例是预先建立了用于信息提取的信息提取模板,也就是说所建立的信息提取模板是针对文本提取进行应用的,更具有针对性,因此,根据预先建立的信息提取模板可以准确提取待提取文本中的提取信息,无需人工再进一步进行信息提取,提高了提取效率。
实施例三
请参阅图5,图5是本申请实施例提供的一种结合RPA与AI的文本信息提取装置的结构示意图,如图5所示,该装置包括:待提取文本获取模块510和信息提取模块520;其中,
待提取文本获取模块510,被配置为获取待提取文本;
信息提取模块520,被配置为根据预先建立的信息提取模板提取所述待提取文本中的提取信息。
可选的,所述信息提取模板中包括字段提取类型和多个匹配规则,所述信息提取模块520,具体包括:
词序列确定子模块,被配置为对所述待提取文本进行分词得到词序列;
匹配子模块,被配置为分别将所述词序列中的词依次与匹配方式为严格匹配的匹配规则进行匹配;
锚点确定子模块,被配置为将所述词序列中匹配成功的词作为锚点,将所述信息提取模板中与所述锚点匹配的匹配规则作为匹配点;
锚点树建立子模块,被配置为基于所述锚点和所述匹配点建立锚点树;
识别子模块,被配置为从所述锚点树中识别出所述字段提取类型的词作为提取信息。
可选的,所述锚点树建立子模块,具体包括:
锚点树根节点确定单元,被配置为将匹配得到的第一个锚点作为锚点树的根节点;
右子树根节点确定单元,被配置为将所述第一个锚点作为当前锚点,将所述当前锚点的匹配点作为当前匹配点,将所述当前锚点的下一个锚点作为所述当前锚点的右子树的根节点;
第一左子树根节点确定单元,被配置为将所述词序列中位于所述当前锚点与所述下一个锚点之间的文本片段以及所述信息提取模板中位于所述当前匹配点与下一个匹配点之间的模板片段作为所述当前锚点的左子树的根节点;
当前锚点确定单元,被配置为将所述下一个锚点作为当前锚点,将所述下一个匹配点作为当前匹配点,触发所述右子树根节点确定单元将所述当前锚点的下一个锚点作为所述当前锚点的右子树的根节点;
第二左子树根节点确定单元,被配置为当不存在下一个锚点时,将所述词序列中位于所述当前锚点之后的文本片段以及所述信息提取模板中位于所述当前匹配点之后的模板片段作为所述当前锚点的左子树的根节点。
可选的,所述识别子模块,具体包括:
片段匹配对确定单元,被配置为针对每个左子树的根节点,将该左子树的根节点包含的文本片段和模板片段进行片段匹配,得到片段匹配对,其中,每个片段匹配对包含一对相互匹配的词和匹配规则;
提取信息确定单元,被配置为从所述片段匹配对和各个右子树的根节点包含的锚点中识别出所述字段提取类型的词作为提取信息。
可选的,所述片段匹配对确定单元,具体包括:
入栈子单元,被配置为针对每个左子树的根节点,将该左子树的根节点包含的模板片段中的每个匹配规则倒序入栈;
当前匹配位置确定子单元,被配置为将该左子树的根节点包含的文本片段中的第一个位置作为当前匹配位置,将位于所述当前匹配位置的词作为待判断的词,将所述栈的栈顶作为当前栈点;
第一判断子单元,被配置为判断所述待判断的词是否被位于所述当前栈点的匹配规则语义包含;
片段匹配对确定单元,被配置为如果被语义包含,将所述待判断的词和所述位于所述当前栈点的匹配规则作为一个片段匹配对,并将所述当前栈点的匹配规则出栈;
第二判断子单元,被配置为判断所述当前栈点的下一个栈点是否为空;
第一匹配结果确定子单元,被配置为如果为空,匹配结束;
第二匹配结果确定子单元,被配置为如果不为空,将所述当前栈点的下一个栈点作为当前栈点,将所述当前匹配位置的下一个位置作为当前匹配位置,触发所述第一判断子单元;
待判断的词确定子单元,被配置为如果未被语义包含,将位于所述当前匹配位置的下一个位置的词加入所述待判断的词,触发所述第一判断子单元。
可选的,上述装置还包括模板建立模块,所述模板建立模块,具体包括:
匹配规则配置单元,被配置为对匹配规则列表进行配置;
字段提取类型配置单元,被配置为对字段提取类型列表进行配置;
构建单元,被配置为构建初始模板,基于所述匹配规则列表和所述字段提取类型列表对所述初始模板进行配置得到所述信息提取模板。
可选的,匹配规则配置单元,具体被配置为:
配置所述匹配规则列表包括正则表达式匹配规则、词表匹配规则、任意长度文本匹配规则和短语匹配规则中的至少两项。
可选的,所述词表匹配规则中的词表包括身份词表和方式词表。
可选的,所述正则表达式匹配规则中的正则表达式包括数字过滤正则表达式。
由上述内容可知,本申请实施例中,获取待提取文本,根据预先建立的信息提取模板提取待提取文本中的提取信息。由于本申请实施例是预先建立了用于信息提取的信息提取模板,也就是说所建立的信息提取模板是针对文本提取进行应用的,更具有针对性,因此,根据预先建立的信息提取模板可以准确提取待提取文本中的提取信息,无需人工再进一步进行信息提取,提高了提取效率。
本申请实施例所提供的结合RPA与AI的文本信息提取装置可执行本申请任意实施例所提供的结合RPA与AI的文本信息提取方法,具备执行方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的结合RPA与AI的文本信息提取方法。
实施例四
请参阅图6,图6是本申请实施例提供的一种计算设备的结构示意图。如图6所示,该设备可以包括:
存储有可执行程序代码的存储器601;
与存储器601耦合的处理器602;
其中,处理器602调用存储器601中存储的可执行程序代码,执行本申请任意实施例所提供的结合RPA与AI的文本信息提取方法。
本申请实施例公开一种计算机可读存储介质,其存储计算机程序,其中,该计算机程序使得计算机执行本申请任意实施例所提供的结合RPA与AI的文本信息提取方法。
在本申请的各种实施例中,应理解,上述各过程的序号的大小并不意味着执行顺序的必然先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的实施例中,应理解,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。
另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元若以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可获取的存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或者部分,可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干请求用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本申请的各个实施例上述方法的部分或全部步骤。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
以上对本申请实施例公开的一种结合RPA与AI的文本信息提取方法、装置、设备和介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。