一种基于关系模型的超长文本的切分方法及系统与流程

文档序号:31805006发布日期:2022-10-14 20:02阅读:229来源:国知局
一种基于关系模型的超长文本的切分方法及系统与流程

1.本发明涉及人工智能技术领域,具体涉及一种基于关系模型的超长文本的切分方法及系统。


背景技术:

2.基于bert预训练模型,使用序列标注方式解决关系抽取的方案,都存在一个难点,那就是文本超长问题。
3.目前通常的做法是根据模型能够输入的最大文本长度将原文切割成相同长度的几个子句,并基于子句独立的预测结果,在预测完成之后,根据句子长度计算预测结果在原文中的位置,即可解决文本超长的问题。但是在关系模型中一个句子中的实体往往与上下文中的其他实体之间存在着关系,该切割方法会将关系切断,导致信息损失,bert预训练模型在预测时很可能会导致抽取的关系不正确。


技术实现要素:

4.为了解决上述技术问题,本发明的目的在于提供的一种基于关系模型的超长文本的切分方法及系统,所采用的技术方案具体如下:第一方面,本发明一个实施例提供了一种基于关系模型的超长文本的切分方法,所述切分方法包括:s100,根据标点符号对原文本进行分割,得到n个子句p={p1,p2,

,pn},其中n为正整数;s200,将p中的子句按照原文本顺序重组得到m个重组子句{r1, r2,

,rm},每个重组子句均为关系模型的一个输入;其中,第i个重组子句ri与第i-1个重组子句r
i-1
之间具有重叠文本spk,spk为r
i-1
中最后一个子句pk中的文本;其中ri的获取步骤包括:s210,根据pk的文本长度lk和预设重叠长度ol0计算slk=min(ol0,lk),其中,min(ol0,lk)为取ol0和lk的最小值作为spk的重叠长度slk;s220,根据slk获取切分位置sdk,当sdk未将第g个实体ag切断时,由切分位置sdk开始累积pk中的字符得到spk;当sdk将第g个实体ag切断时,根据实体ag中首字符的位置调整sdk并更新slk,根据调整后的切分位置sdk开始累积pk中的字符得到spk;s230,按照原文本的顺序从p
k+1
开始增加子句并累积文本长度,当slk+∑
ej=1
l
k+j
≤s0且slk+∑
e+1j=1
l
k+j
>s0时,确定结束子句为第k+e个子句p
k+e
,其中 l
k+j
为p
k+j
的文本长度,s0为输入关系模型的最大文本长度;s240,根据p
k+1
与p
k+e
确定目标子句{p
k+1
,p
k+2

,p
k+e
},将重叠文本spk和目标子句{p
k+1
,p
k+2

,p
k+e
}拼接为ri。
5.第二方面,本发明另一个实施例提供了基于关系模型的超长文本的切分系统,其特征在于,所述系统包括处理器和非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程
序由处理器加载并执行以实现上述切分方法。
6.本发明具有如下有益效果:该方法根据切割位置和实体的位置确定最终得到的相邻重组子句之间的重叠文本,能够保证被切割的子句之间的关系相互关联,减少信息的损失,使关系模型预测的结果相对于等长度直接切割来说更加准确,解决了目前等长度切割时将关系切断的问题,同时能够保证实体不被切断,进一步的减少信息的损失,使关系模型能够更加准确的提取到相应的关系。
附图说明
7.为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
8.图1为本发明一个实施例所提供的关系模型输入文本的切分方法流程图;图2为本发明一个实施例所提供的ri的获取步骤流程图。
具体实施方式
9.为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种基于关系模型的超长文本的切分方法及系统,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”或“另一个实施例”指的不一定是同一实施例。此外,一个或多个实施例中的特定特征、结构、或特点可由任何合适形式组合。
10.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
11.下面结合附图具体的说明本发明所提供的一种基于关系模型的超长文本的切分方法及系统的具体方案。
12.请参阅图1,其示出了本发明一个实施例提供的一种基于关系模型的超长文本的切分方法流程图,该方法包括以下步骤:s100,根据标点符号对原文本进行分割,得到n个子句p={p1,p2,

,pn},其中n为正整数。
13.可选的,标点符号为句号、感叹号和问号。利用标点符号切分子句能够防止将子句的语义切断,保留更多更完整的语义信息。
14.s200,将p中的子句按照原文本顺序重组得到m个重组子句{r1, r2,

,rm},每个重组子句均为关系模型的一个输入;其中,第i个重组子句ri与第i-1个重组子句r
i-1
之间具有重叠文本spk,spk为r
i-1
中最后一个子句pk中的文本。其中i的取值范围为1到m,k的取值范围为1到n。
15.具体的,按照子句p中的顺序依次重组得到预设长度的子句,并且任意两个相邻的重组子句之间存在重叠文本,得到m个重组子句{r1,r2,

,r
i-1
,ri…
,rm},每个重组子句均为关系模型的一个输入。重叠文本spk为r
i-1
中最后一个子句pk的文本或者根据预设重叠长
度ol0获取的pk中的一部分文本。任意两个相邻的重组子句之间都具有一定重叠长度的重叠文本,前后重组子句之间形成连续的重叠关系,能够保证被切割的子句之间的关系相互关联,能够保留实体与上下文之间的关系,减少信息的损失,使关系模型预测的结果相对于等长度直接切割来说更加准确,解决了目前等长度切割时将关系切断的问题。
16.可选的,关系模型为bert模型。
17.请参阅图2,其中ri的获取步骤包括:s210,根据pk的文本长度lk和预设重叠长度ol0计算slk=min(ol0,lk),其中,min(ol0,lk)为取ol0和lk的最小值作为spk的重叠长度slk。
18.可选的,ol0=s0/t,其中t为重叠文本占关系模型的最大文本长度s0的比例。进一步,t的取值为4。
19.可选的,s0的取值为512,也即输入bert模型的最大文本长度为s0=512个字符。
20.需要说明的是,pk的文本长度lk和重叠长度slk不同,pk的文本长度lk为pk这个子句中所包含的字符的数量,也即为pk整体的文本长度。而重叠长度slk为pk中有多少个连续的字符是ri与r
i-1
的重叠字符。例如,pk为“张三的父亲是王五”,重叠的文本为“是王五”,其中重叠长度slk=3,文本长度lk=8。
21.s220,根据slk获取切分位置sdk,当sdk未将第g个实体ag切断时,由切分位置sdk开始累积pk中的字符得到spk;当sdk将第g个实体ag切断时,根据实体ag中首字符的位置调整sdk并更新slk,根据调整后的切分位置sdk开始累积pk中的字符得到spk。
22.具体的,当slk=lk时,是以r
i-1
中的最后一句pk为重叠长度,此时实体不会被切断,因此,此时的切分位置sdk即为pk的句首,且spk=lk,重叠文本spk为pk中的所有文本。
23.当slk=ol0,是以预设重叠长度作为重叠长度的,根据ol0确定的切分位置sdk可能会将实体切断,因此需要判断切分位置sdk是否将实体切断,若没有将实体切断,则从切分位置sdk开始累积字符,获取相应的重叠文本。其中切分位置sdk为重叠长度为slk的位置,例如“张三的母亲是王五”且ol0=3,得到切分位置为“是”之间,切分得到两部分“张三的母亲”和“是王五”,此时未将实体切断,则累积得到的重叠文本为“是王五”。
24.其中,实体的获取步骤包括:将p中的子句输入命名实体识别模型识别p中的实体,得到g个实体a={a1,a2,

,ag,
…ag
},g的取值范围为1到g。其中,命名实体识别模型的训练集中包括r个训练样本w={w1,w2,

,wr},其中第r个训练样本wr中包括至少一个实体标签,实体标签的首字符标注为“b-姓名”,实体中其他字符为“i-姓名”,将非命名实体的文本均标注为“o”,该命名实体识别模型的损失函数为交叉熵损失函数,在损失函数收敛时训练完成。
25.其中,实体ag被切断是指,sdk位置实体ag的中间位置,例如实体为“张三”,而切分位置刚好位于“张三”的中间位置,将实体“张三”切分为“张”和“三”。
26.为了使实体不被切断,利用实体ag中首字符的位置调整sdk。
27.优选的,slk的更新条件满足:slk=min(ol' 0,lk)且ol' 0=ol
0-(sw+sd
k-d(ag)),式中,sw为相对于实体ag中首字符的向后的偏移量,d(ag)为ag中首个实体字符的位置。可选的,sw=10。
28.例如,在子句中的每一个字符都有自己的位置编号,该位置编号代表了该字符的位置,对于
“…
我叫王五,家住在北京市,公司在
…”
,该子句对应的位置为v={
…vc-130
,vc-129
,v
c-128
,v
c-127
,v
c-126
,v
c-125
,v
c-124
,v
c-123
,v
c-122
,v
c-121
,v
c-120
,v
c-119
,v
c-118
,v
c-117
,v
c-116
,
…”
},其中c为该句的最大长度,由于该子句的长度大于ol0=128,因此以128为重叠长度切分子句,但切分位置位于实体“王五”的中间,且“王五”的位置分别为v
c-128
和v
c-127
,切分位置sdk为v
c-127
,d(ag)为v
c-128
,sw取值为10,因此公式更新ol' 0=128-(10+128-127)=117,得到更新后的长度为117,则新的切分位置为v
c-118
,由v
c-118
这个位置切断。能够保证实体不被切断,尽量的保留子句的语义信息不被切断,使最终提取的关系更加准确。
29.优选的,slk的更新条件满足:slk=min(ol' 0,lk)且ol' 0=ol0+(qw+(sd
k-d(ag))),式中,qw为相对于实体ag中首字符的向前的偏移量,d(ag)为ag中首个实体字符的位置。可选的,qw=10。
30.例如,对于
“…
张三住在北京市,他的母亲是王五
…”
,该子句对应的位置为v={
…vc-141
,v
c-140
,v
c-139
,v
c-138
,v
c-137
,v
c-136
,v
c-135
,v
c-134
,v
c-133
,v
c-132
,v
c-131
,v
c-130
,v
c-129
,v
c-128
,v
c-127
,
…”
},其中c为该句的最大长度,由于该子句的长度大于ol0=128,因此以128为重叠长度切分子句,但切分位置位于实体“王五”的中间,且“王五”的位置分别为v
c-128
和v
c-127
,切分位置sdk为v
c-127
,d(ag)为v
c-128
,qw取值为10,因此公式更新ol' 0=128+(10+128-127)=139,得到更新后的长度为139,则新的切分位置为v
c-138
,在切分时,由v
c-138
这个位置切断。向前偏移能够将被切断的实体调整为重叠文本的一部分,进一步的增加了重叠文本中的实体,使相邻重组子句之间的实体之间的关系更加紧密,也进一步的增加了抽取关系所需要的上下文,使最终抽取的关系更加准确。
31.s230,按照原文本的顺序从p
k+1
开始增加子句并累积文本长度,当slk+∑
ej=1
l
k+j
≤s0且slk+∑
e+1j=1
l
k+j
>s0时,确定结束子句为第k+e个子句p
k+e
,其中 l
k+j
为p
k+j
的文本长度,s0为输入关系模型的最大文本长度。
32.具体的,获取子句p中每个子句的长度,得到对应的n个子句长度{l1,l2,

,ln};其中子句的长度为子句中包含的字符的数量。当slk+∑
ej=1
l
k+j
≤s0且slk+∑
e+1j=1
l
k+j
>s0时,得到的文本长度是接近于s0,由于在切割子句时时按照标点符号进行切割的,因此在重组子句时按照子句的数量进行重组,保留更多的语义信息,而不是在达到s0直接截断,相对于直接截断的方式保留了更多的语义信息。
33.s240,根据p
k+1
与p
k+e
确定目标子句{p
k+1
,p
k+2

,p
k+e
},将重叠文本spk和目标子句{p
k+1
,p
k+2

,p
k+e
}拼接为ri。
34.需要说明的是,在关系模型训练的过程中,可以将多个ri放到一个batch中,将batch输入关系模型中进行训练。
35.综上所述,本发明实施例提供了一种基于关系模型的超长文本的切分方法及系统,该方法通过将原文本切割为多个子句,然后按照原文本的顺序多个子句进行重组得到多个重组子句,获取相邻的两个重组子句r
i-1
和ri之间的重叠文本spk及其重叠长度slk,其中重叠长度slk通过预设重叠长度ol0以及r
i-1
中最后一个子句pk的长度lk来确定,在实体被切断时,根据实体ag中首字符的位置调整sdk并更新slk,该方法最终得到的相邻重组子句之间均存在重叠文本,能够保证被切割的子句之间的关系相互关联,减少信息的损失,使关系模型预测的结果相对于等长度直接切割来说更加准确,解决了目前等长度切割时将关系切断的问题,同时能够保证实体不被切断,进一步的减少信息的损失,使关系模型能够更加准确的提取到相应的关系。
36.优选的,关系模型的训练集包括t个训练样本b={b1,b2,

,b
t
},其中第t个训练样本b
t
为无主语实体的训练样本且在隐含主语实体的位置添加第一标记符号。利用t个训练样本b对命名实体模型进行训练得到隐含主语实体,能够解决在进行子句切割时,将文本中原有的主语实体与关系切分到不同子句,导致切分后的子句中无主语实体,进而导致无主语实体的子句无法提取关系的问题。可选的,第一标记符号为“《s》#《t》”。例如,原文本为“张三是北京人
……
。工作单位是北京钢铁厂
……
。家住在北京市海淀区人民路。”,在进行子句切分时切分为:“张三是北京人
……
。”“工作单位是北京钢铁厂
……
。”“家住在北京市海淀区人民路。”,这样切分会导致后面两句没有主语实体,在抽取关系时,由于后面两句没有主句,因此无法抽取子句中的关系,但是实际上句子中是包含相应关系的,因此,为了解决该问题,在原本中隐含主语实体的位置添加第一标记符号,得到“张三是北京人
……
。《s》#《t》工作单位是北京钢铁厂
……
。《s》#《t》家住在北京市海淀区人民路。”,这样便能够成功的提取子句中所包含的关系:{#,工作单位,北京钢铁厂},{#,居住地,北京市海淀区人民路}。在实际测试的过程中,对于切割的重组子句,在重组子句中无主语实体时,在隐含主语的位置添加第一标记符号,将添加了第一标记符号的重组子句输入相应的关系模型预测关系。
37.基于与上述方法相同的发明构思,本发明实施例还提供了一种基于关系模型的超长文本的切分系统,该系统包括处理器和非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现上述任意一个实施例所提供的切分方法,其中切分方法已经在详细说明,不再赘述。
38.需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
39.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
40.以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1