CN116049437A - 基于自标签与prompt的文档级低资源场景的要素抽取方法 - Google Patents
基于自标签与prompt的文档级低资源场景的要素抽取方法 Download PDFInfo
- Publication number
- CN116049437A CN116049437A CN202310018831.0A CN202310018831A CN116049437A CN 116049437 A CN116049437 A CN 116049437A CN 202310018831 A CN202310018831 A CN 202310018831A CN 116049437 A CN116049437 A CN 116049437A
- Authority
- CN
- China
- Prior art keywords
- bert
- document
- model
- tag
- ner
- 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
- 238000000605 extraction Methods 0.000 title claims abstract description 51
- 238000000034 method Methods 0.000 claims abstract description 56
- 238000010276 construction Methods 0.000 claims abstract description 24
- 238000002372 labelling Methods 0.000 claims abstract description 16
- 238000012549 training Methods 0.000 claims description 117
- 239000013598 vector Substances 0.000 claims description 59
- 238000013507 mapping Methods 0.000 claims description 28
- 238000004364 calculation method Methods 0.000 claims description 15
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 claims description 7
- 230000001502 supplementing effect Effects 0.000 claims description 7
- 238000012935 Averaging Methods 0.000 claims description 6
- 230000004927 fusion Effects 0.000 claims description 6
- 230000011218 segmentation Effects 0.000 claims description 6
- 238000003780 insertion Methods 0.000 claims description 3
- 230000037431 insertion Effects 0.000 claims description 3
- 238000013461 design Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 239000000047 product Substances 0.000 description 5
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007429 general method Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000000275 quality assurance Methods 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 229920004934 Dacron® Polymers 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 239000005020 polyethylene terephthalate Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/367—Ontology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- 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
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/242—Dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/247—Thesauruses; Synonyms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- Probability & Statistics with Applications (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Machine Translation (AREA)
Abstract
本发明提出一种基于自标签与prompt的文档级低资源场景的要素抽取方法,采用自标签方法对标签核心词进行构建进行命名实体识别,采用prompt方法进行关系抽取,解决文档级低资源场景要素抽取标签核心词构建困难、解码速度慢、性能不佳的的问题;本发明提出的方法适用于司法领域、旅游领域、电商领域、电游领域、社交领域、金融领域。
Description
技术领域
本发明属于文档级低资源领域数据处理技术领域,具体设计一种基于自标签与prompt的文档级低资源场景的要素抽取方法。
背景技术
信息时代下互联网数据量呈指数增长,随着互联网技术的飞速发展,网络上的信息呈现爆炸式地增长,不仅信息规模不断扩大,信息种类也不断增多。与此同时,大量数据在各个领域的成功应用宣告了大数据时代的到来,大数据在社会的发展中起着越来越重要的作用,其价值已得到了社会的普遍认可。例如,近年来,随着我国法制化建设的不断深入,司法案件的审理也变得愈发透明,裁判文书在网上的公开就是一个典型例子。裁判文书作为承载法院案件审理过程以及审判结果的“司法产品”,其蕴含着丰富的司法信息,包括判决法院、案号、当事人诉讼请求、案件名称、判决结果、适用法律等,这些恰恰聚集了法院“大数据”的核心要素。通过对这些信息进行深度挖掘,可以总结案件审判规律,预测审判趋势,提升司法公信力,为实现司法公正,建设法制社会提供技术支撑。然而,裁判文书是一种半结构化的领域文本,其既有程式化的法言法语,也有日常的普通用语,同时裁判文书的书写很大程度上决定于法官,这使得裁判文书具有多态性、异构性以及随意性等一系列特征。因此如何在这类特殊的文本中抽取有价值的信息是一项具有重要价值及意义的课题。
司法领域的大量司法文本存在广泛的指标提取需要,用于对司法程序或司法审判改革的成效评判等。随着我国法治社会的建设和信息技术的发展,司法领域的司法文书数量呈指数级增长。案多人少的情况难以满足案件处理的需求,司法人员专业素养的差异性也会对案件判决造成一定程度的影响。因此,司法文书关键要素智能化的抽取能够为司法人员提供参考,辅助办案,提高工作效率,同时也是后续进行深入分析和高效判案的关键。
目前司法文书领域可用标注数据稀少,标注难度大,存在可用数据资源稀缺的问题,属于文档级低资源场景应用场景;司法文书指标要素抽取任务需要保质保量,还要确保能够及时反馈,而目前一般的方法不仅无法确保在极少的资源训练下的抽取精度,也无法做到简单有效的快速反馈。综上可知,司法文书指标要素面临着在低资源应用场景下训练难以收敛、抽取精度低、泛化性差、文档级要素抽取解码速度过慢的问题,这样的司法文书指标要素抽取模型是无法满足辅助司法人员办案,提高工作效率这一目标的。
因此,本发明提出一种基于prompt的文档级低资源场景的要素抽取方法有效的解决了上述问题。
发明内容
针对现有技术的不足,本发明提供了一种基于自标签与prompt的文档级低资源场景的要素抽取方法。首先使用爬虫获取文档所属专业领域数据,对数据统计TF-IDF构建专业领域数据基础词典,通过专业知识图谱对专业领域数据词典中的实体进行查询,检索其临近边(关系)与节点(实体),将未在词典中的实体与关系添加进词典,得到专业领域数据最终词典,利用专业领域数据最终词典和大规模数据无监督预训练得到Bert-NER老师模型,再取一个Bert模型作为Bert-NER学生模型,利用此Bert-NER老师模型与Bert-NER学生模型对大规模无标记数据进行自训练克服专业领域低资源的问题,迭代得到最终的Bert-NER模型。再利用远程知识库远程监督作为无标记数据的注释,分别统计文档与bert辅助模型生成结果entity与relation_trigger的词频,将其融合得到综合词频,对每个标签综合词频top-k的元素进行编码并融合得到该标签的词频token。然后针对专业领域标签层次化显著的特点,设计一种专业领域分层标签,将文档entity与relation_trigger的标签数据转化为自然语言形式,再根据标注样式转化为自然语言注释形式,获得自标签token。再将标签补充进Bert-NER模型词表,再融合自标签token与词频token,将其作为标签token作为Bert-NER词表补充的标签的对应token放入模型。接着针对专业领域文档级的应用场景,将NER任务重新定义为面向要素的语言模型分类任务,显著加快解码速度,并对跨句实体关系语义进行有效吸收,使用Bert-NER模型对文档进行NER抽取,获得Entity集和Relation_trigger集。然后针对专业领域低资源的应用场景,设计用于RE-MRC任务的prompt模板,利用Entity集和Relation_trigger集基于prompt构造模板获得RE-MRC任务训练语料,利用prompt构造模板对数据进行大规模扩充以克服专业领域低资源的问题。最后使用RE-MRC任务训练语料得到Bert-RE模型,利用Bert-RE模型对文档进行RE抽取,得到relation集,完成文档级低资源场景的要素抽取任务。
针对现有技术的不足,本发明提供了一种基于自标签与prompt的文档级低资源场景的要素抽取方法。
prompt方法是一种模型训练方法。prompt是在文本上附加额外的提示(Prompt)信息作为输入,将下游的预测等任务转化为语言模型(Language Model)任务,并将语言模型的预测结果转化为原本下游任务的预测结果。
对于输入的文本x,有函数fprompt(x),将x转化成prompt的形式x′,即:x′=fprompt(x)。
该函数通常会进行两步操作:
(1)使用一个模板,模板通常为一段自然语言,并且包含有两个空位置:用于填输入x的位置[X]和用于生成答案文本z的位置[Z];
(2)把输入x填到[X]的位置:模型则是对[X]处的文本进行预测,语言模型寻找填在[X]处可以使得分数最高的文本z。
根据本发明的一个实施方案,提供一种基于自标签与prompt的文档级低资源场景的要素抽取方法,该方法包括以下步骤:
1)Bert-NER模型的构建:使用爬虫获取专业领域数据,对数据统计TF-IDF构建专业领域数据基础词典;通过专业知识图谱对专业领域数据词典中的实体进行查询,检索其临近边(关系)与节点(实体),将未在词典中的实体与关系添加进词典,得到专业领域数据最终词典;利用专业领域数据最终词典和大规模数据无监督预训练得到Bert-NER老师模型,再取一个Bert模型作为Bert-NER学生模型,利用此Bert-NER老师模型与Bert-NER学生模型对大规模无标记数据进行自训练克服专业领域低资源的问题,迭代得到最终的Bert-NER模型;
2)词频token的获得:利用远程知识库远程监督作为无标记数据的注释,分别统计文档与bert辅助模型生成结果entity与relation_trigger的词频,将其融合得到综合词频,对每个标签综合词频top-k的元素进行编码并融合得到该标签的词频token。
3)自标签token的获得:针对专业领域标签层次化显著的特点,设计一种专业领域分层标签,将文档entity与relation_trigger的标签数据转化为自然语言形式,再根据标注样式转化为自然语言注释形式,获得自标签token。
4)标签的对应token在上述模型中的放入:将标签补充进Bert-NER模型词表,再融合自标签token与词频token,将其作为标签token作为Bert-NER词表补充的标签的对应token放入模型。
5)Entity集和Relation_trigger集的获得:针对专业领域文档级的应用场景,将NER任务重新定义为面向要素的语言模型分类任务,显著加快解码速度,并对跨句实体关系语义进行有效吸收,使用Bert-NER模型对文档进行NER抽取,获得Entity集和Relation_trigger集。
6)语料数据的大规模扩充:针对专业领域低资源的应用场景,设计用于RE-MRC任务的prompt模板,利用Entity集和Relation_trigger集基于prompt构造模板获得RE-MRC任务训练语料,利用prompt构造模板对(语料)数据进行大规模扩充以克服专业领域低资源的问题;使用RE-MRC任务训练语料得到Bert-RE模型。
7)要素的抽取:利用步骤6)得到的Bert-RE模型对文档进行RE抽取,得到relation集,完成文档级低资源场景的要素抽取任务。
作为优选,在步骤1)中,利用此Bert-NER老师模型与Bert-NER学生模型对大规模无标记数据进行自训练与对抗性训练克服专业领域低资源的问题,迭代得到最终的Bert-NER模型。
其中:对抗性训练采用FGM对抗性训练方法,FGM对抗性训练方法中添加的扰动如下:
radv=ε*g/||g||2
新增的对抗样本为:
xadv=x+rad
其中:x为原始样本,radv为添加的扰动,ε取1,L为模型损失函数,g为损失的反向传播梯度,||g||2代表g的L2范数。θ为FGM对抗性训练模型参数,y为FGM对抗性训练模型预测结果,Xadv为添加扰动后的输入样本,L2范数是指数据向量所有元素的平方和的开平方。
在本发明中,自训练方法所使用的数据是含有噪声的数据,通过自训练和对抗训练,起到数据增强,并利用有噪声的数据增强模型鲁棒性。
优选,步骤1)中使用爬虫获取专业领域数据,对数据统计TF-IDF构建专业领域数据基础词典,通过专业知识图谱对专业领域数据词典中的实体进行查询,检索其临近边“关系”与节点“实体”,将未在词典中的实体与关系添加进词典,得到专业领域数据最终词典,利用专业领域数据最终词典和大规模数据无监督预训练得到Bert-NER老师模型,再取一个Bert模型作为Bert-NER学生模型,利用此Bert-NER老师模型与Bert-NER学生模型对大规模无标记数据进行自训练克服专业领域低资源的问题,迭代得到最终的Bert-NER模型的过程更具体地包括:
步骤1.1)所需要抽取的文档所属专业领域为使用基于hadoop的大数据框架在遵守法律与爬虫协议的基础上对可用的网络资源进行爬取。
1.2)使用Bert辅助模型对未标记数据进行分词,对数据中的字符计算其TF-IDF:
TFi,j=(ni,j/Σk nk,j);
IDFi=log(|D|/|j;ti∈dj|);
TF-IDFi=TFi,j×IDFi;
其中:TFi,j表示词条ti在文档dj中出现的频率;ni,j表示文档dj中词条i的数量;nk,j表示文档dj中词条k的数量;IDFi表示词条ti的逆文档频率;D表示所有文档;j表示第j个文档的下标;ti表示第i个词条;dj表示第j个文档;TF-IDFi表示第i个词条的文档-逆文档频率;
1.3)对TF-IDF计算结果进行排序,挑选一定数量(例如10-5000个,优选15-4500个,优选20-4000个,优选30-3000个,例如40、50、60、70、80、90、100、150、200、300、400、500、600、700、800、900、1000、1200、1500、1800、2000、2200、2500、2800个)的词汇组成专业领域数据基础词典。
1.4)对于专业领域数据基础词典中的每一个词汇,通过知识图谱进行远程查询,对知识图谱上所属词汇的相关关系与临近实体节点进行查询,若不在专业领域数据基础词典中,则将其加入专业领域数据基础词典中,构成专业领域数据最终词典。
1.5)将处理好的数据分别放入两个Bert模型利用专业领域数据最终词典使用MLM任务与NSP任务进行预训练,得到一个Bert-NER老师模型和一个Bert-NER学生模型。
其中MLM任务是在输入语料的句子中,随机挑选一定百分比(一般5-40%,如10-30%,或15-20%)的token,将这些token用[MASK]替换,然后用bert模型预测[MASK]是什么词;而NSP任务是对输入语料的句子进行标记,每个样本选择两个句子A、B,预测B是否是A的下一句话。即,在每个样本中依次选择两个句子A、B,预测B是否是A的下一句话,依次进行,直至完成整个样本的预测。所述标记为记录句子的顺序。
1.6)使用Bert-NER老师模型对未标记数据进行预测,预测结果作为伪标签。
1.7)再将标记数据和未标记数据结合标签和伪标签一起训练Bert-NER学生模型。
1.8)这之后将Bert-NER学生模型作为新的Bert-NER老师模型,而Bert-NER老师模型则作为下一阶段的Bert-NER学生模型。
1.9)重复迭代一定次数(一般3-300次,优选4-100次,优选5-10次,例如3、4、5、6、7、8、9、10、20、30、40、50、60、70、80次),得到最终的Bert-NER模型。
优选,步骤2)中分别统计文档与bert辅助模型生成结果entity与relation_trigger的词频,将其融合得到综合词频,对每个标签综合词频top-k的元素进行编码并融合得到该标签的词频token的过程更具体地包括:
步骤2.1)对于具有n个文档的文档数据,其含有m个要素标签类别,要素标签类别的集合:{C1,C2,C3,...,Cm-1,Cm};
对文档数据进行词频统计,得到要素标签类别的数据词频映射:
F1(Ci)=argmaxα(x=w,y=Ci);
其中x为文档中的字符,w代表某一具体字符内容,y代表要素标签类别,Ci表示第i个要素标签类别。
其中,Bert辅助模型直接使用开源的Bert-base模型,由12层transformer-encoder组成。
2.2)对n个文档的所有要素标签预测结果进行词频统计,得到要素标签类别的生成词频映射:F2(Ci)=argmaxβ(x=w,y=Ci);其中x为文档中的字符,w代表某一具体字符内容,y代表要素标签类别。
2.3)使用数据词频映射与生成词频映射得到综合词频:F(Ci)=η1*F1(Ci)+η2*F2(Ci);其中η1和η2为设置的权重,取值为0.2-0.8,例如0.5。
2.4)使用Bert-NER模型对标签Ci综合词频处于前k个的元素Ei={e1,e2,e3,...,ek-1,ek}进行编码,其中k为设置的数量,取值为1-10,例如为5;再对所有编码取平均得到词频token:
T(Ci)=Avg(Bert-NER(Et));
说明:由于在本申请中公式太多,英文小写字母的数量不够用。因此,为了方便起见,不同的公式都可以使用i,j,k,l,m,n,o,p,q,r,s,t,u,v,w等,它们在公式计算中各自独立地赋值,例如:在不同的公式中都采用了i,则在不同的公式中i单独赋值,以此类推。
优选,步骤3)中针对专业领域标签层次化显著的特点,设计一种专业领域分层标签,将文档entity与relation_trigger的标签数据转化为自然语言形式,再根据标注样式转化为自然语言注释形式,获得自标签token的过程更具体地包括:
步骤3.1)对于文档数据具有的要素标签类别C={C1,C2,C3,...,Cm-1,Cm}:
对于专业领域标签层次化显著的特点,设计一种专业领域分层标签,对于父级标签Ci,其包含多个子标签(C1,C2,C3,...,Ck-1,Ck),那么我们则将其标签设定为Pos_tag+Sup_Type_tag+Type_tag。
其中Sup_Type_tag可为零层或一层或多层(例如1-20层,优选1-10层,优选2-5层)。
3.2)对要素标签类别拆解后得到三部分Pos_tag、Sup_Type_tag和Type_tag。
3.3)先对Pos_tag、Sup_Type_tag和Type_tag分别进行自然语言转化,得到Pos_pre_word、Sup_Type_pre_word和Type_pre_word。
3.4)再根据标注样式转化为自然语言注释形式,得到Pos_word、Sup_Type_word和Type_word。
3.5)将Pos_word、Sup_Type_word和Type_word输入Bert辅助模型得到自标签token:
G(C)=(Bert[Pos_word]+Bert[Sup_Type_word]+Bert[Type_word])/n;
其中n为Pos_tag、Sup_Type_tag和Type_tag的总数。
其中:对Pos_tag、Sup_Type_tag和Type_tag分别进行自然语言转化,具体为:要素标签拆解得到的Pos_tag,将Pos_tag中的位置标签简称转化为位置标签全称或位置标签全称的同义词,得到位置标签的自然语言词组组合,即为Pos_pre_word。要素标签拆解得到的Sup_Type_tag,将Sup_Type_tag中的子类型标签简称转化为子类型标签全称或子类型标签全称同义词,得到子类型标签的自然语言词组组合,即为Sup_Type_pre_word。要素标签拆解得到的Type_tag,将Type_tag中的类型标签简称转化为类型标签全称或类型标签全称同义词,得到类型标签的自然语言词词组组合,即为Type_pre_word。例如:如pos标签的自然语言形式为position、loc标签的自然语言形式为position。
优选,步骤4)中将标签补充进Bert-NER模型词表,再融合自标签token与词频token,将其作为标签token作为Bert-NER词表补充的标签的对应token放入模型的过程更具体地包括:
步骤4.1)对于标签类别C={C1,C2,C3,...,Cm-1,Cm},其词频token为T(Ci),自标签token为G(Ci),对其进行加权融合:Final(Ci)=α1*T(Ci)+α2*G(Ci);其中α1、α2为设置的权重取值为0.2-0.8,例如0.5。
得到标签与标签token的映射词典:Dic={Ci:Final(Ci)};
4.2)将该词典导入进Bert-NER模型。
优选,步骤5)针对专业领域文档级的应用场景,将NER任务重新定义为面向要素的语言模型分类任务,显著加快解码速度,并对跨句实体关系语义进行有效吸收,使用Bert-NER模型对文档进行NER抽取,获得Entity集和Relation_trigger集的过程更具体地包括:
步骤5.1)对于具有n个文档的数据,依次取出每个文档,最长的文档长度为MAX_L,最短的文档长度为MIN_L,取出的文档长度为L∈[MIN_L,MAX_L],每个文档中含有C种要素,其中C∈[MIN_C,MAX_C],MIN_C代表最少的文档要素种类数,MAX_C代表最多的文档要素种类数。对于文档L={x1,x2,x3,...,xm-1,xm},x代表文档具有的字符元素。
5.2)首先使用Bert-NER模型的tokenizer对L进行分词,随后进行向量嵌入,该向量嵌入包括token嵌入,段嵌入,和位置嵌入。Token嵌入指在每个句子的句首插入[CLS]标记,句尾插入[SEP]标记,其中[CLS]标记代表当前句子的向量,[SEP]标记代表分句用于切分文本中的句子。段嵌入用于区分两个句子,不同句子之前分别为A和B标记,所以输入的句子表示为(EA,EB,EA,EB,……)。位置嵌入则是根据句子的下标索引相对位置添加位置信息,如或即[0,1,2,3…50,…100,…150,…200,…500,…]。
5.3)经过嵌入之后,会经过12个串联的transformer结构层,通过多头注意力机制计算得到隐藏层输出向量:h={h1,h2,h3,...,hm-1,hm};
Entity标签集合为:EL={l1,l2,l3,...,lw-1,lw};
Relation_trigger标签集合为:RL={l1,l2,l3,...,lq-1,lq};
其所有标签集合为:l=EL+RL={l1,l2,l3,...,lm-1,lm};
其中P(Xi=li|X)=softmax(h*w),h是隐藏层输出向量,w是LM线性层权重(例如0.2-0.8,如0.5)。
5.4)利用损失反向传播迭代更新模型参数训练得到Bert-NER模型。
5.5)使用训练好的Bert-NER模型对文档进行NER抽取,获得Entity集EG={e1,e2,e3,...,ep-1,ep}和Relation_trigger集RG={r1,r2,r3,...,ro-1,ro}。
优选,步骤6)中针对专业领域低资源的应用场景,设计用于RE-MRC任务的prompt模板,利用Entity集和Relation_trigger集基于prompt构造模板获得RE-MRC任务训练语料,利用prompt构造模板对数据进行大规模扩充以克服专业领域低资源的问题的过程更具体地包括:
p1:“[Entity_1]和[Entity_2]是什么关系?”、
p2::“[Relation_trigger_1]代表什么关系?”、
p3:“[Entity_1]和[Entity_2]是否具有关系?”、
p4:“[Entity_1]和[Relation_trigger_1]是否有关?”、
p5:“[Entity_2]和[Relation_trigger_1]是否有关?”;
得到prompt模板P={p1,p2,p3,p4,p5};
6.2)prompt答案空间映射的构造:
将Entity集EG={e1,e2,e3,...,ep-1,ep}和Relation_trigger集RG={r1,r2,r3,...,ro-1,ro}分别填入prompt模板P中,得到训练语料;人工对prompt模板P中的训练语料填入[Z]作为答案空间映射,获得答案集[Z]={z1,z2,z3,z4,z5},从而得到完整的RE-MRC任务的训练语料;
其中:[z1]、[z2]、[z3]、[z4]、[z5]分别为训练语料p1、p2、p3、p4、p5进行人工判别的答案;
6.3)Bert-RE模型的构建:
对于Relation_trigger集RG={r1,r2,r3,...,ro-1,ro}和Entity集EG={e1,e2,e3,...,ep-1,ep},将r和e作为文本放入prompt模板作为输入,使用预训练语言模型对输入的文本进行预测;
将预测的结果作为label与答案集[Z]进行比较,迭代进行损失计算、损失反向传播迭代更新Bert-NER模型,直至预测结果label与答案集[Z]一致,获得Bert-RE模型。
优选,步骤6.3)中Bert-RE模型的构建具体为:
步骤6.3.1)对于具有n个文档的数据,依次取出每个文档,最长的文档长度为MAX_L,最短的文档长度为MIN_L,取出的文档长度为L∈[MIN_L,MAX_L],每个文档中含有C种要素,其中C∈[MIN_C,MAX_C],MIN_C代表最少的文档要素种类数,MAX_C代表最多的文档要素种类数。
对于文档L={x1,x2,x3,...,xm-1,xm},x代表文档具有的字符元素。
对于问句Q={q1,q2,q3,...,qz-1,qz}。
依次取出Q中的q,每一个q与L组成输入语料。
6.3.2)首先使用Bert-RE模型的tokenizer对L与q进行分词,随后进行向量嵌入,该向量嵌入包括token嵌入,段嵌入,和位置嵌入。
其中,Token嵌入指在每个句子的句首插入[CLS]标记,句尾插入[SEP]标记,其中[CLS]标记代表当前句子的向量,[SEP]标记代表分句用于切分文本中的句子。
段嵌入用于区分两个句子,不同句子之前分别为A和B标记,所以输入的句子表示为(EA,EB,EA,EB,……)。
位置嵌入则是根据句子的下标索引相对位置添加位置信息,如或即[0,1,2,3…50,…100,…200,…]。
6.3.3)经过嵌入之后,会经过12个串联的transformer结构层,通过多头注意力机制计算得到隐藏层输出向量:h={h1,h2,h3,...,hn-1,hn};
其所有标签集合为:l={l1,l2,l3,...,ln-1,ln};
其中P(Xi=li|X)=softmax(h*w),h是隐藏层输出向量,w是LM线性层权重(例如0.2-0.8,如0.5)。
模型是隐藏层后接线性层,通过线性层得到输出概率p,再根据p对结果作出预测,h是隐藏层输出向量,w是线性层模型权重(例如0.2-0.8,如0.5),二者进行矩阵乘法之后再进行softmax,得到最终预测概率。
6.3.4)利用损失反向传播迭代更新模型参数训练得到Bert-RE模型。
目前专业文书领域可用标注数据稀少,标注难度大,存在可用数据资源稀缺的问题,属于文档级低资源场景应用场景;专业文书指标要素抽取任务需要保质保量,还要确保能够及时反馈,而目前一般的方法不仅无法确保在极少的资源训练下的抽取精度,也无法做到简单有效的快速反馈。因此,亟需一种文档级低资源场景要素抽取方法,以解决专业文书指标要素在低资源应用场景下面临的难以收敛、抽取精度低、泛化性差、文档级要素抽取解码速度过慢的问题。
在本发明中,使用爬虫获取专业领域数据,对数据统计TF-IDF构建专业领域数据基础词典,通过专业知识图谱对专业领域数据词典中的实体进行查询,检索其临近边(关系)与节点(实体),将未在词典中的实体与关系添加进词典,得到专业领域数据最终词典,利用专业领域数据最终词典和大规模数据无监督预训练得到Bert-NER老师模型,再取一个Bert模型作为Bert-NER学生模型,利用此Bert-NER老师模型与Bert-NER学生模型对大规模无标记数据进行自训练克服专业领域低资源的问题,迭代得到最终的Bert-NER模型。
所需要抽取的文档所属专业领域为使用基于hadoop的大数据框架在遵守法律与爬虫协议的基础上对可用的网络资源进行爬取。
使用Bert辅助模型对未标记数据进行分词,对数据中的字符计算其TF-IDF:
TFi,j=(ni,j,/Σk nk,j);
IDFi=log(|D|/|j:ti∈dj|);
TF-IDFi=TFi,j,×IDFi;
其中:TFi,j表示词条ti在文档dj中出现的频率;ni,j表示文档dj中词条i的数量;nk,j表示文档dj中词条k的数量;IDFi表示词条ti的逆文档频率;D表示所有文档;j表示第j个文档的下标;ti表示第i个词条;dj表示第j个文档;TF-IDFi表示第i个词条的文档-逆文档频率。
对TF-IDF计算结果进行排序,挑选一定数量(例如4000个)的词汇组成专业领域数据基础词典。
对于专业领域数据基础词典中的每一个词汇,通过知识图谱进行远程查询,对知识图谱上所属词汇的相关关系与临近实体节点进行查询,若不在专业领域数据基础词典中,则将其加入专业领域数据基础词典中,构成专业领域数据最终词典。
将处理好的数据分别放入两个Bert模型利用专业领域数据最终词典使用MLM任务与NSP任务进行预训练,得到一个Bert-NER老师模型和一个Bert-NER学生模型。
其中MLM任务是在输入语料的句子中,随机挑选一定百分比(一般取5-40%,例如15%)的token,将这些token用[MASK]替换,然后用bert模型预测[MASK]是什么词。
而NSP任务是对输入语料的句子进行标记,每个样本选择两个句子A、B,预测B是否是A的下一句话。
使用Bert-NER老师模型对未标记数据进行预测,预测结果作为伪标签。
再将标记数据和未标记数据结合标签和伪标签一起训练Bert-NER学生模型。
这之后将Bert-NER学生模型作为新的Bert-NER老师模型,而Bert-NER老师模型则作为下一阶段的Bert-NER学生模型。
重复迭代一定次数(例如30次),得到最终的Bert-NER模型。
在本发明中,利用远程知识库远程监督作为无标记数据的注释,分别统计文档与bert辅助模型生成结果entity与relation_trigger的词频,将其融合得到综合词频,对每个标签综合词频top-k的元素进行编码并融合得到该标签的词频token。
对于具有n个文档的文档数据,其含有m个要素标签类别,要素标签类别的集合:
{C1,C2,C3,…,Cm-1,Cm};
对文档数据进行词频统计,得到要素标签类别的数据词频映射:
F1(Ci)=argmaxα(x=w,y=Ci);
其中x为文档中的字符,w代表某一具体字符内容,y代表要素标签类别,Ci表示第i个要素标签类别。
Bert辅助模型直接使用开源的Bert-base模型,由12层transformer-encoder组成。
对n个文档的所有要素标签预测结果进行词频统计,得到要素标签类别的生成词频映射:
F2(Ci)=argmaxβ(x=w,y=Ci);
其中x为文档中的字符,w代表某一具体字符内容,y代表要素标签类别。
使用数据词频映射与生成词频映射得到综合词频:
F(Ci)=η1*F1(Ci)+η2*F2(Ci);
其中η1和η2为设置的权重,取值为0.2-0.8,例如0.5。
使用Bert-NER模型对标签Ci综合词频处于前k个的元素Ei={e1,e2,e3,...,ek-1,ek}进行编码,其中k为设置的数量,取值为1-10,例如5;再对所有编码取平均得到词频token:
T(Ci)=Avg(Bert-NER(Ei))。
在本发明中,针对专业领域标签层次化显著的特点,设计一种专业领域分层标签,将文档entity与relation_trigger的标签数据转化为自然语言形式,再根据标注样式转化为自然语言注释形式,获得自标签token。
对文档数据具有的要素标签类别C={C1,C2,C3,...,Cm-1,Cm}:
对于专业领域标签层次化显著的特点,设计一种专业领域分层标签,对于父级标签Ci,其包含多个子标签(C1,C2,C3,...,Cm-1,Cm),那么我们则将其标签设定为Pos_tag+Sup_Type_tag+Type_tag。
其中Sup_Type_tag可为零层或一层或多层(1-20层,优选1-10层,更优选2-5层)。
对要素标签类别拆解后得到三部分Pos_tag、Sup_Type_tag和Type_tag。
先对Pos_tag、Sup_Type_tag和Type_tag分别进行自然语言转化,得到Pos_pre_word、Sup_Type_pre_word和Type_pre_word。
再根据标注样式转化为自然语言注释形式,得到Pos_word、Sup_Type_word和Type_word。
将Pos_word、Sup_Type_word和Type_word输入Bert辅助模型得到自标签token:
G(C)=(Bert[Pos_word]+Bert[Sup_Type_word]+Bert[Type_word])/n
其中n为Pos_tag、Sup_Type_tag和Type_tag的总数。
在本发明中,将标签补充进Bert-NER模型词表,再融合自标签token与词频token,将其作为标签token作为Bert-NER词表补充的标签的对应token放入模型。
对于标签类别C={C1,C2,C3,...,Cm-1,Cm},其词频token为T(Ci),自标签token为G(Ci_)对其进行加权融合:Final(Ci)=α1*T(Ci)+α2*G(Ci);其中α1、α2为设置的权重,取值为0.2-0.8,例如0.5。
得到标签与标签token的映射词典:Dic={Ci:Final(Ci)};
将该词典导入进Bert-NER模型。
在本发明中,针对专业领域文档级的应用场景,将NER任务重新定义为面向要素的语言模型分类任务,显著加快解码速度,并对跨句实体关系语义进行有效吸收,使用Bert-NER模型对文档进行NER抽取,获得Entity集和Relation_trigger集。
对于具有n个文档的数据,依次取出每个文档,最长的文档长度为MAX_L,最短的文档长度为MIN_L,取出的文档长度为L∈[MIN_L,MAX_L],每个文档中含有C种要素,其中C∈[MIN_C,MAX_C],MIN_C代表最少的文档要素种类数,MAX_C代表最多的文档要素种类数。
对于文档L={x1,x2,x3,...,xm-1,xm},x代表文档具有的字符元素。
首先使用Bert-NER模型的tokenizer对L进行分词,随后进行向量嵌入,包括token嵌入,段嵌入,位置嵌入。
Token嵌入指在每个句子的句首插入[CLS]标记,句尾插入[SEP]标记,其中[CLS]标记代表当前句子的向量,[SEP]标记代表分句用于切分文本中的句子。
段嵌入用于区分两个句子,不同句子之前分别为A和B标记,所以输入的句子表示为(EA,EB,EA,EB,……)。
位置嵌入则是根据句子的下标索引相对位置添加位置信息,如或即[0,1,2,3…50,…100,…150,…200,…300,…]。
经过嵌入之后,会经过12个串联的transformer结构层,通过多头注意力机制计算得到隐藏层输出向量:h={h1,h2,h3,...,hm-1,hm};
Entity标签集合为:EL={l1,l2,l3,...,lw-1,lw};
Relation_trigger标签集合为:RL={l1,l2,l3,...,lq-1,lq};
其所有标签集合为:l=EL+RL={l1,l2,l3,...,lm-1,lm};
其中P(Xi=li|X)=softmax(h*w),h是隐藏层输出向量,w是LM线性层权重(例如0.2-0.8,如0.5)。
利用损失反向传播迭代更新模型参数训练得到Bert-NER模型。
使用训练好的Bert-NER模型对文档进行NER抽取,获得Entity集EG={e1,e2,e3,...,ep-1,ep}和Relation_trigger集RG={r1,r2,r3,...,ro-1,ro}。
在本发明中,针对专业领域低资源的应用场景,设计用于RE-MRC任务的prompt模板,利用Entity集和Relation_trigger集基于prompt构造模板获得RE-MRC任务训练语料,利用prompt构造模板对数据进行大规模扩充以克服专业领域低资源的问题。
设计用于RE-MRC任务的prompt模板为:
p1:“[Entity_1]和[Entity_2]是什么关系?”、
p2::“[Relation_trigger_1]代表什么关系?”、
p3:“[Entity_1]和[Entity_2]是否具有关系?”、
p4:“[Entity_1]和[Relation_trigger_1]是否有关?”、
p5:“[Entity_2]和[Relation_trigger_1]是否有关?”;
得到prompt模板P={p1,p2,p3,p4,p5};
prompt答案空间映射的构造:
将Entity集EG={e1,e2,e3,...,ep-1,ep}和Relation_trigger集RG={r1,r2,r3,...,ro-1,ro}分别填入prompt模板P中,得到训练语料;人工对prompt模板P中的训练语料填入[Z]作为答案空间映射,获得答案集[Z]={z1,z2,z3,z4,z5},从而得到完整的RE-MRC任务的训练语料;
其中:[z1]、[z2]、[z3]、[z4]、[z5]分别为训练语料p1、p2、p3、p4、p5进行人工判别的答案;
Bert-RE模型的构建:
对于Relation_trigger集RG={r1,r2,r3,...,ro-1,ro}和Entity集EG={e1,e2,e3,...,ep-1,ep},将r和e作为文本放入prompt模板作为输入,使用预训练语言模型对输入的文本进行预测;
将预测的结果作为label与答案集[Z]进行比较,迭代进行损失计算、损失反向传播迭代更新Bert-NER模型,直至预测结果label与答案集[Z]一致,获得Bert-RE模型。。
在本发明中,使用RE-MRC任务训练语料得到Bert-RE模型,利用Bert-RE模型对文档进行RE抽取,得到relation集,完成文档级低资源场景的要素抽取任务。
对于具有n个文档的数据,依次取出每个文档,最长的文档长度为MAX_L,最短的文档长度为MIN_L,取出的文档长度为L∈[MIN_L,MAX_L],每个文档中含有C种要素,其中C∈[MIN_C,MAX_C],MIN_C代表最少的文档要素种类数,MAX_C代表最多的文档要素种类数。
对于文档L={x1,x2,x3,...,xm-1,xm},x代表文档具有的字符元素。
对于问句Q={q1,q2,q3,...,qz-1,qz}。
依次取出Q中的q,每一个q与L组成输入语料。
首先使用Bert-RE模型的tokenizer对L与q进行分词,随后进行向量嵌入,包括token嵌入,段嵌入,位置嵌入。
Token嵌入指在每个句子的句首插入[CLS]标记,句尾插入[SEP]标记,其中[CLS]标记代表当前句子的向量,[SEP]标记代表分句用于切分文本中的句子。
段嵌入用于区分两个句子,不同句子之前分别为A和B标记,所以输入的句子表示为(EA,EB,EA,EB,……)。
位置嵌入则是根据句子的下标索引相对位置添加位置信息,如或即[0,1,2,3…50,…100,…150,…200,…300,…]。
经过嵌入之后,会经过12个串联的transformer结构层,通过多头注意力机制计算得到隐藏层输出向量:h={h1,h2,h3,...,hn-1,hn};
其所有标签集合为:l={l1,l2,l3,...,ln-1,ln};
其中P(Xi=li|X)=softmax(h*w),h是隐藏层输出向量,w是LM线性层权重(例如0.2-0.8,如0.5)。
模型是隐藏层后接线性层,通过线性层得到输出概率p,再根据p对结果作出预测,h是隐藏层输出向量,w是线性层模型权重(例如0.2-0.8,如0.5),二者进行矩阵乘法之后再进行softmax,得到最终预测概率。
利用损失反向传播迭代更新模型参数训练得到Bert-RE模型。
在本发明中,所属专业领域可以为司法领域、旅游领域、电商领域、电游领域、社交领域、金融领域等。本发明提出的方法适用于司法领域、旅游领域、电商领域、电游领域、社交领域、金融领域等专业领域。
在本发明中,自标签token是将由之前标签得到的自标签词组经过预训练模型嵌入层的得到的平均词向量。自标签token的作用是用于命名实体识别任务作为标签核心词。
在本发明中,所述远程知识库和知识图谱均为现有技术中的知识图谱,例如CASIA-KB知识图谱、Galaxybase知识图谱、TechKG知识图谱知识库、Wiki知识库系统、中国法律知识资源总库、中国旅游景点知识图谱、EasyDL、达观知识图谱、百度知识图谱等。
在本发明中,使用爬虫获取专业领域的数据为所有文本数据,包括论文、期刊、报道、文书等。
在本发明中,人工对prompt模板P中的训练语料填入[Z]作为答案空间映射,基于正常人的基本常识,本领域技术人员(甚至普通人)即可知晓训练语料的答案空间映射[Z]。例如,老师属于学校的员工,老师和学校属于雇佣关系;父亲是儿子的长辈,父亲和儿子属于父子关系;案件属于法官的工作,案件与法官属于审判关系,原告是被告的起诉方,原告和被告属于诉讼关系等。
与现有技术相比,本发明的技术方案具有以下有益技术效果:
1、在本发明中,本发明采用自标签与prompt对标签核心词进行构建,解决文档级低资源场景标签核心词构建困难、解码速度慢、性能不佳的问题。
2、在本发明中,对于NER方法,提出采用师生模型进行自训练的方法,对大量未标记数据自动构建标签,缓解专业领域低资源的问题。
3、在本发明中,对于NER方法,对于语义相似度训练方法作出改进,设计一种针对于专业领域标签层次化显著的专业领域分层标签,使用自标签语义和预训练辅助模型解决该训练方法中核心词的token表示构建过于复杂、过于依赖远程监督数据库的问题。
4、在本发明中,对于NER方法,添加relation_trigger标签,所抽取出的relation_trigger将作为prompt辅助构造标签,解决pipeline方法导致的NER任务与RE任务之间信息不共享的问题。
5、在本发明中,对于RE方法,提出使用prompt的MRC任务进行训练,将RE任务重新定义为适应于专业领域低资源环境的MRC任务。
6、在本发明中,对于RE方法,设计一种基于prompt的MRC模板,使用NER抽取得到的entity与relation_trigger标签填入MRC数据模板,解决文档级低资源环境下的关系抽取性能不佳的问题。
附图说明
图1本发明基于prompt的文档级低资源场景的要素抽取方法结构示意图;
图2本发明基于prompt的文档级低资源场景的要素抽取方法的NER模块结构图;
图3本发明基于prompt的文档级低资源场景的要素抽取方法的RE模块结构图。
具体实施方式
下面对本发明的技术方案进行举例说明,本发明请求保护的范围包括但不限于以下实施例。
一种基于自标签与prompt的文档级低资源场景的要素抽取方法,该方法包括以下几个步骤:
1)使用爬虫获取专业领域数据,对数据统计TF-IDF构建专业领域数据基础词典,通过专业知识图谱对专业领域数据词典中的实体进行查询,检索其临近边(关系)与节点(实体),将未在词典中的实体与关系添加进词典,得到专业领域数据最终词典,利用专业领域数据最终词典和大规模数据无监督预训练得到Bert-NER老师模型,再取一个Bert模型作为Bert-NER学生模型,利用此Bert-NER老师模型与Bert-NER学生模型对大规模无标记数据进行自训练克服专业领域低资源的问题,迭代得到最终的Bert-NER模型。
2)利用远程知识库远程监督作为无标记数据的注释,分别统计文档与bert辅助模型生成结果entity与relation_trigger的词频,将其融合得到综合词频,对每个标签综合词频top-k的元素进行编码并融合得到该标签的词频token。
3)针对专业领域标签层次化显著的特点,设计一种专业领域分层标签,将文档entity与relation_trigger的标签数据转化为自然语言形式,再根据标注样式转化为自然语言注释形式,获得自标签token。
4)将标签补充进Bert-NER模型词表,再融合自标签token与词频token,将其作为标签token作为Bert-NER词表补充的标签的对应token放入模型。
5)针对专业领域文档级的应用场景,将NER任务重新定义为面向要素的语言模型分类任务,显著加快解码速度,并对跨句实体关系语义进行有效吸收,使用Bert-NER模型对文档进行NER抽取,获得Entity集和Relation_trigger集。
6)针对专业领域低资源的应用场景,设计用于RE-MRC任务的prompt模板,利用Entity集和Relation_trigger集基于prompt构造模板获得RE-MRC任务训练语料,利用prompt构造模板对数据进行大规模扩充以克服专业领域低资源的问题,使用RE-MRC任务训练语料得到Bert-RE模型。
7)利用步骤6)得到的Bert-RE模型对文档进行RE抽取,得到relation集,完成文档级低资源场景的要素抽取任务。
作为优选,步骤1)中对文档数据进行词频统计,得到数据词频映射包括:
步骤1.1)使用爬虫获取专业领域数据,对数据统计TF-IDF构建专业领域数据基础词典,通过专业知识图谱对专业领域数据词典中的实体进行查询,检索其临近边(关系)与节点(实体),将未在词典中的实体与关系添加进词典,得到专业领域数据最终词典,利用专业领域数据最终词典和大规模数据无监督预训练得到Bert-NER老师模型,再取一个Bert模型作为Bert-NER学生模型,利用此Bert-NER老师模型与Bert-NER学生模型对大规模无标记数据进行自训练克服专业领域低资源的问题,迭代得到最终的Bert-NER模型
所需要抽取的文档所属专业领域为使用基于hadoop的大数据框架在遵守法律与爬虫协议的基础上对可用的网络资源进行爬取。
使用Bert辅助模型对未标记数据进行分词,对数据中的字符计算其TF-IDF:
TFi,j=(ni,j/∑k nk,j);
IDFi=log(|D|/|j:ti∈dj|);
TF-IDFi=TFi,j×IDFi;
其中:TFi,j表示词条ti在文档dj中出现的频率;ni,j表示文档dj中词条i的数量;nk,j表示文档dj中词条k的数量;IDFi表示词条ti的逆文档频率;D表示所有文档;j表示第j个文档的下标;ti表示第i个词条;dj表示第j个文档;TF-IDFi表示第i个词条的文档-逆文档频率;
对TF-IDF计算结果进行排序,挑选一定数量(例如2000个)的词汇组成专业领域数据基础词典。
对于专业领域数据基础词典中的每一个词汇,通过知识图谱进行远程查询,对知识图谱上所属词汇的相关关系与临近实体节点进行查询,若不在专业领域数据基础词典中,则将其加入专业领域数据基础词典中,构成专业领域数据最终词典。
将处理好的数据分别放入两个Bert模型利用专业领域数据最终词典使用MLM任务与NSP任务进行预训练,得到一个Bert-NER老师模型和一个Bert-NER学生模型。
其中MLM任务是在输入语料的句子中,随机挑选一定百分比(例如15%)的token,将这些token用[MASK]替换,然后用bert模型预测[MASK]是什么词。
而NSP任务是对输入语料的句子进行标记,每个样本选择两个句子A、B,预测B是否是A的下一句话。
使用Bert-NER老师模型对未标记数据进行预测,预测结果作为伪标签。
再将标记数据和未标记数据结合标签和伪标签一起训练Bert-NER学生模型。
这之后将Bert-NER学生模型作为新的Bert-NER老师模型,而Bert-NER老师模型则作为下一阶段的Bert-NER学生模型。
重复迭代一定次数(例如20次),得到最终的Bert-NER模型。
作为优选,在步骤1)中,利用此Bert-NER老师模型与Bert-NER学生模型对大规模无标记数据进行自训练与对抗性训练克服专业领域低资源的问题,迭代得到最终的Bert-NER模型。
其中:对抗性训练采用FGM对抗性训练方法,FGM对抗性训练方法中添加的扰动如下:
radv=ε*g/||g||2
新增的对抗样本为:
xadv=x+radv
其中:x为原始样本,radv为添加的扰动,ε取1,L为模型损失函数,g为损失的反向传播梯度,||g||2代表g的L2范数。θ为FGM对抗性训练模型参数,y为FGM对抗性训练模型预测结果,Xadv为添加扰动后的输入样本,L2范数是指数据向量所有元素的平方和的开平方。
作为优选,步骤2)分别统计文档与bert辅助模型生成结果entity与relation_trigger的词频,将其融合得到综合词频,对每个标签综合词频top-k的元素进行编码并融合得到该标签的词频token包括:
步骤2.1)对于具有n个文档的文档数据,其含有m个要素标签类别,要素标签类别的集合:{C1,C2,C3,...,Cm-1,Cm};
对文档数据进行词频统计,得到要素标签类别的数据词频映射:
F1(Ci)=argmaxα(x=w,y=Ci);
其中x为文档中的字符,w代表某一具体字符内容,y代表要素标签类别,Ci表示第i个要素标签类别。
Bert辅助模型直接使用开源的Bert-base模型,由12层transformer-encoder组成。
对n个文档的所有要素标签预测结果进行词频统计,得到要素标签类别的生成词频映射:
F2(Ci)=argmaxβ(x=w,y=Ci);
其中x为文档中的字符,w代表某一具体字符内容,y代表要素标签类别。
使用数据词频映射与生成词频映射得到综合词频:
F(Ci)=η1,F1(Ci)+η2,F2(Ci);
其中η1和η2为设置的权重,取值为0.2-0.8,例如0.5。
使用Bert-NER模型对标签Ci综合词频处于前k个的元素Ei={e1,e2,e3,...,ek-1,ek},进行编码,其中k为设置的数量,取值为1-10,例如5;再对所有编码取平均得到词频token:
T(Ci)=Avg(Bert-NER(Ei))。
作为优选,步骤3)针对专业领域标签层次化显著的特点,设计一种专业领域分层标签,将文档entity与relation_trigger的标签数据转化为自然语言形式,再根据标注样式转化为自然语言注释形式,获得自标签token包括:
步骤3.1)对文档数据具有的要素标签类别C={C1,C2,C3,...,Cm-1,Cm}:
对于专业领域标签层次化显著的特点,设计一种专业领域分层标签,对于父级标签Ci,其包含多个子标签(C1,C2,C3,...,Ck-1,Ck),那么我们则将其标签设定为Pos_tag+Sup_Type_tag+Type_tag。
其中Sup_Type_tag可为零层或多层(1-20层,优选1-10层,更优选2-5层)。
对要素标签类别拆解后得到三部分Pos_tag、Sup_Type_tag和Type_tag。
先对Pos_tag、Sup_Type_tag和Type_tag分别进行自然语言转化,得到Pos_pre_word、Sup_Type_pre_word和Type_pre_word。
再根据标注样式转化为自然语言注释形式,得到Pos_word、Sup_Type_word和Type_word。
将Pos_word、Sup_Type_word和Type_word输入Bert辅助模型得到自标签token:
G(C)=(Bert[Pos_word]+Bert[Sup_Type_word]+Bert[Type_word])/n;
其中n为Pos_tag、Sup_Type_tag和Type_tag的总数。
作为优选,步骤4)将标签补充进Bert-NER模型词表,再融合自标签token与词频token,将其作为标签token作为Bert-NER词表补充的标签的对应token放入模型包括:
根据步骤4.1)对于标签类别C={C1,C2,C3,...,Cm-1,Cm},其词频token为T(Ci),自标签token为G(Ci),对其进行加权融合:
Final(Ci)=α1*T(Ci)+α2*G(Ci);其中α1、α2为设置的权重,取值为0.2-0.8,例如0.5。
得到标签与标签token的映射词典:Dic={Ci:Final(Ci)};
将该词典导入进Bert-NER模型。
作为优选,步骤5)针对专业领域文档级的应用场景,将NER任务重新定义为面向要素的语言模型分类任务,显著加快解码速度,并对跨句实体关系语义进行有效吸收,使用Bert-NER模型对文档进行NER抽取,获得Entity集和Relation_trigger集包括:
步骤5.1)对于具有n个文档的数据,依次取出每个文档,最长的文档长度为MAX_L,最短的文档长度为MIN_L,取出的文档长度为L∈[MIN_L,MAX_L],每个文档中含有C种要素,其中C∈[MIN_C,MAX_C],MIN_C代表最少的文档要素种类数,MAX_C代表最多的文档要素种类数。
对于文档L={x1,x2,x3,...,xm-1,xm},x代表文档具有的字符元素。
首先使用Bert-NER模型的tokenizer对L进行分词,随后进行向量嵌入,包括token嵌入,段嵌入,位置嵌入。
Token嵌入指在每个句子的句首插入[CLS]标记,句尾插入[SEP]标记,其中[CLS]标记代表当前句子的向量,[SEP]标记代表分句用于切分文本中的句子。
段嵌入用于区分两个句子,不同句子之前分别为A和B标记,所以输入的句子表示为(EA,EB,EA,EB,……)。
位置嵌入则是根据句子的下标索引相对位置添加位置信息,如或即[0,1,2,3…50,…100,…200,…]。
经过嵌入之后,会经过12个串联的transformer结构层,通过多头注意力机制计算得到隐藏层输出向量:h={h1,h2,h3,...,hm-1,hm};
Entity标签集合为:EL={l1,l2,l3,...,lw-1,lw};
Relation_trigger标签集合为:RL={l1,l2,l3,...,lq-1,lq};
其所有标签集合为:l=EL+RL={l1,l2,l3,...,lm-1,lm};
其中P(Xi=li|X)=softmax(h*w),h是隐藏层输出向量,w是LM线性层权重(例如0.2-0.8,如0.5)。
利用损失反向传播迭代更新模型参数训练得到Bert-NER模型。
使用训练好的Bert-NER模型对文档进行NER抽取,获得Entity集EG={e1,e2,e3,...,ep-1,ep}和Relation_trigger集RG={r1,r2,r3,...,ro-1,ro}。
作为优选,步骤6)针对专业领域低资源的应用场景,设计用于RE-MRC任务的prompt模板,利用Entity集和Relation_trigger集基于prompt构造模板获得RE-MRC任务训练语料,利用prompt构造模板对数据进行大规模扩充以克服专业领域低资源的问题包括:
根据步骤6.1)设计用于RE-MRC任务的prompt模板为:
p1:“[Entity_1]和[Entity_2]是什么关系?”、
p2::“[Relation_trigger_1]代表什么关系?”、
p3:“[Entity_1]和[Entity_2]是否具有关系?”、
p4:“[Entity_1]和[Relation_trigger_1]是否有关?”、
p5:“[Entity_2]和[Relation_trigger_1]是否有关?”;
得到prompt模板P={p1,p2,p3,p4,p5};
6.2)prompt答案空间映射的构造:
将Entity集EG={e1,e2,e3,...,ep-1,ep}和Relation_trigger集RG={r1,r2,r3,...,ro-1,ro}分别填入prompt模板P中,得到训练语料;人工对prompt模板P中的训练语料填入[Z]作为答案空间映射,获得答案集[Z]={z1,z2,z3,z4,z5},从而得到完整的RE-MRC任务的训练语料;
其中:[z1]、[z2]、[z3]、[z4]、[z5]分别为训练语料p1、p2、p3、p4、p5进行人工判别的答案;
6.3)Bert-RE模型的构建:
对于Relation_trigger集RG={r1,r2,r3,...,ro-1,ro}和Entity集EG={e1,e2,e3,...,ep-1,ep},将r和e作为文本放入prompt模板作为输入,使用预训练语言模型对输入的文本进行预测;
将预测的结果作为label与答案集[Z]进行比较,迭代进行损失计算、损失反向传播迭代更新Bert-NER模型,直至预测结果label与答案集[Z]一致,获得Bert-RE模型。
作为优选,步骤6.3)Bert-RE模型的构建具体为::
对于具有n个文档的数据,依次取出每个文档,最长的文档长度为MAX_L,最短的文档长度为MIN_L,取出的文档长度为L∈[MIN_L,MAX_L],每个文档中含有C种要素,其中C∈[MIN_C,MAX_C],MIN_C代表最少的文档要素种类数,MAX_C代表最多的文档要素种类数。
对于文档L={x1,x2,x3,...,xm-1,xm},x代表文档具有的字符元素。
对于问句Q={q1,q2,q3,...,qz-1,qz}。
依次取出Q中的q,每一个q与L组成输入语料。
首先使用Bert-RE模型的tokenizer对L与q进行分词,随后进行向量嵌入,包括token嵌入,段嵌入,位置嵌入。
Token嵌入指在每个句子的句首插入[CLS]标记,句尾插入[SEP]标记,其中[CLS]标记代表当前句子的向量,[SEP]标记代表分句用于切分文本中的句子。
段嵌入用于区分两个句子,不同句子之前分别为A和B标记,所以输入的句子表示为(EA,EB,EA,EB,……)。
位置嵌入则是根据句子的下标索引相对位置添加位置信息,如或即[0,1,2,3…50,…100,…200,…]。
经过嵌入之后,会经过12个串联的transformer结构层,通过多头注意力机制计算得到隐藏层输出向量:h={h1,h2,h3,...,hn-1,hn};
其所有标签集合为:l={l1,l2,l3,...,ln-1,ln};
其中P(Xi=li|X)=softmax(h*w),h是隐藏层输出向量,w是LM线性层权重(例如0.2-0.8,如0.5)。
利用损失反向传播迭代更新模型参数训练得到Bert-RE模型。
本发明提出的方法适用于司法领域、旅游领域、电商领域、电游领域、社交领域、金融领域等。以下以司法领域为例进行具体说明,将本发明所述方法用于其他领域时同样适用。
实施例1
如图1所示,一种基于自标签与prompt的司法领域文档级低资源场景的要素抽取方法,该方法包括以下几个步骤:
1)使用爬虫获取司法领域数据,对数据统计TF-IDF构建司法领域数据基础词典,通过司法Galaxybase知识图谱对司法领域数据词典中的实体进行查询,检索其临近边(关系)与节点(实体),将未在词典中的实体与关系添加进词典,得到司法领域数据最终词典,利用司法领域数据最终词典和大规模数据无监督预训练得到Bert-NER老师模型,再取一个Bert模型作为Bert-NER学生模型,利用此Bert-NER老师模型与Bert-NER学生模型对大规模无标记数据进行自训练克服司法领域低资源的问题,迭代得到最终的Bert-NER模型。
2)利用Galaxybase知识图谱远程监督作为无标记数据的注释,分别统计文档与bert辅助模型生成结果entity与relation_trigger的词频,将其融合得到综合词频,对每个标签综合词频top-k的元素进行编码并融合得到该标签的词频token。
3)针对司法领域标签层次化显著的特点,设计一种司法领域分层标签,将文档entity与relation_trigger的标签数据转化为自然语言形式,再根据标注样式转化为自然语言注释形式,获得自标签token。
4)将标签补充进Bert-NER模型词表,再融合自标签token与词频token,将其作为标签token作为Bert-NER词表补充的标签的对应token放入模型。
5)针对司法领域文档级的应用场景,将NER任务重新定义为面向要素的语言模型分类任务,显著加快解码速度,并对跨句实体关系语义进行有效吸收,使用Bert-NER模型对文档进行NER抽取,获得Entity集和Relation_trigger集。
6)针对司法领域低资源的应用场景,设计用于RE-MRC任务的prompt模板,利用Entity集和Relation_trigger集基于prompt构造模板获得RE-MRC任务训练语料,利用prompt构造模板对数据进行大规模扩充以克服司法领域低资源的问题,使用RE-MRC任务训练语料得到Bert-RE模型。
7)利用步骤6)得到的Bert-RE模型对文档进行RE抽取,得到relation集,完成文档级低资源场景的要素抽取任务。
实施例2
重复实施例1,只是步骤1)使用爬虫获取司法领域数据,对数据统计TF-IDF构建司法领域数据基础词典,通过Galaxybase知识图谱对司法领域数据词典中的实体进行查询,检索其临近边(关系)与节点(实体),将未在词典中的实体与关系添加进词典,得到司法领域数据最终词典,利用司法领域数据最终词典和大规模数据无监督预训练得到Bert-NER老师模型,再取一个Bert模型作为Bert-NER学生模型,利用此Bert-NER老师模型与Bert-NER学生模型对大规模无标记数据进行自训练克服司法领域低资源的问题,迭代得到最终的Bert-NER模型包括,如图1所示:
步骤2.1)所需要抽取的文档所属专业领域为使用基于hadoop的大数据框架在遵守法律与爬虫协议的基础上对可用的网络资源进行爬取。
使用Bert辅助模型对未标记数据进行分词,对数据中的字符计算其TF-IDF:
TFi,j=(ni,j/∑knk,j);
表示词条ti在文档dj中出现的频率。
IDFi=log(|D|/|j:ti∈dj|);
总文档包含词条ti的文档数。
TF-IDFi=TFi,j×IDFi;
其中:TFi,j表示词条ti在文档dj中出现的频率;ni,j表示文档dj中词条i的数量;nk,j表示文档dj中词条k的数量;IDFi表示词条ti的逆文档频率;D表示所有文档;j表示第j个文档的下标;ti表示第i个词条;dj表示第j个文档;TF-IDFi表示第i个词条的文档-逆文档频率;
对TF-IDF计算结果进行排序,挑选1500个的词汇组成司法领域数据基础词典。
对于司法领域数据基础词典中的每一个词汇,通过Galaxybase知识图谱进行远程查询,对Galaxybase知识图谱上所属词汇的相关关系与临近实体节点进行查询,若不在司法领域数据基础词典中,则将其加入司法领域数据基础词典中,构成司法领域数据最终词典。
将处理好的数据分别放入两个Bert模型利用司法领域数据最终词典使用MLM任务与NSP任务进行预训练,得到一个Bert-NER老师模型和一个Bert-NER学生模型。
其中MLM任务是在输入语料的句子中,随机挑选15%的token,将这些token用[MASK]替换,然后用bert模型预测[MASK]是什么词。
而NSP任务是对输入语料的句子进行标记,每个样本选择两个句子A、B,预测B是否是A的下一句话。
使用Bert-NER老师模型对未标记数据进行预测,预测结果作为伪标签。
再将标记数据和未标记数据结合标签和伪标签一起训练Bert-NER学生模型。
这之后将Bert-NER学生模型作为新的Bert-NER老师模型,而Bert-NER老师模型则作为下一阶段的Bert-NER学生模型。
重复迭代25次,得到最终的Bert-NER模型。
实施例3
重复实施例2,只是步骤2)分别统计文档与bert辅助模型生成结果entity与relation_trigger的词频,将其融合得到综合词频,对每个标签综合词频top-k的元素进行编码并融合得到该标签的词频token,如图1所示:
步骤2.1)对于具有n个文档的文档数据,其含有m个要素标签类别,要素标签类别的集合:{C1,C2,C3,...,Cm-1,Cm};
对文档数据进行词频统计,得到要素标签类别的数据词频映射:
F1(Ci)=argmaxα(x=w,y=Ci);
其中x为文档中的字符,w代表某一具体字符内容,y代表要素标签类别,Ci表示第i个要素标签类别。
Bert辅助模型直接使用开源的Bert-base模型,由12层transformer-encoder组成。
对n个文档的所有要素标签预测结果进行词频统计,得到要素标签类别的生成词频映射:
F2(Ci)=argmaxβ(x=w,y=Ci);
其中x为文档中的字符,w代表某一具体字符内容,y代表要素标签类别。
使用数据词频映射与生成词频映射得到综合词频:
F(Ci)=η1*F1(Ci)+η2*F2(Ci);
其中η1和η2为设置的权重,取值为0.5。
使用Bert-NER模型对标签Ci综合词频处于前k个的元素Ei={e1,e2,e3,...,ek-1,ek}进行编码,其中k为设置的数量,取值为5,再对所有编码取平均得到词频token:
T(Ci)=Avg(Bert-NER(Ei))。
实施例4
重复实施例3,如图1所示,只是步骤3)针对司法领域标签层次化显著的特点,设计一种司法领域分层标签,将文档entity与relation_trigger的标签数据转化为自然语言形式,再根据标注样式转化为自然语言注释形式,获得自标签token,如图3所示:
步骤3.1)对文档数据具有的标签类别C={C1,C2,C3,...,Cm-1,Cm}:
对于司法领域标签层次化显著的特点,设计一种司法领域分层标签,对于父级标签Ci,其包含多个子标签(C1,C2,C3,...,Ck-1,Ck),那么我们则将其标签设定为Pos_tag+Sup_Type_tag+Type_tag。
其中Sup_Type_tag为3层)。
对要素标签类别拆解后得到三部分Pos_tag、Sup_Type_tag和Type_tag。
先对Pos_tag、Sup_Type_tag和Type_tag分别进行自然语言转化,得到Pos_pre_word、Sup_Type_pre_word和Type_pre_word。
再根据标注样式转化为自然语言注释形式,得到Pos_word、Sup_Type_word和Type_word。
将Pos_word、Sup_Type_word和Type_word输入Bert辅助模型得到自标签token:
G(C)=(Bert[Pos_word]+Bert[Sup_Type_word]+Bert[Type_word])/n
其中n为Pos_tag、Sup_Type_tag和Type_tag的总数。
实施例5
重复实施例4,如图1所示,只是步骤4)将标签补充进Bert-NER模型词表,再融合自标签token与词频token,将其作为标签token作为Bert-NER词表补充的标签的对应token放入模型:
根据步骤4.1)对于标签类别C={C1,C2,C3,...,Cm-1,Cm},其词频token为T(Ci),自标签token为G(Ci),对其进行加权融合:Final(Ci)=α1*T(Ci)+α2*G(Ci);其中α1、α2为设置的权重,取值为0.5。
得到标签与标签token的映射词典:Dic={Ci:Final(Ci)};
将该词典导入进Bert-NER模型。
实施例6
重复实施例5,如图2所示,只是步骤5)针对司法领域文档级的应用场景,将NER任务重新定义为面向要素的语言模型分类任务,显著加快解码速度,并对跨句实体关系语义进行有效吸收,使用Bert-NER模型对文档进行NER抽取,获得Entity集和Relation_trigger集:
步骤5.1)对于具有n个文档的数据,依次取出每个文档,最长的文档长度为MAX_L,最短的文档长度为MIN_L,取出的文档长度为L∈[MIN_L,MAX_L],每个文档中含有C种要素,其中C∈[MIN_C,MAX_C],MIN_C代表最少的文档要素种类数,MAX_C代表最多的文档要素种类数。
对于文档L={x1,x2,x3,...,xm-1,xm},x代表文档具有的字符元素。
首先使用Bert-NER模型的tokenizer对L进行分词,随后进行向量嵌入,包括token嵌入,段嵌入,位置嵌入。
Token嵌入指在每个句子的句首插入[CLS]标记,句尾插入[SEP]标记,其中[CLS]标记代表当前句子的向量,[SEP]标记代表分句用于切分文本中的句子。
段嵌入用于区分两个句子,不同句子之前分别为A和B标记,所以输入的句子表示为(EA,EB,EA,EB,……)。
位置嵌入则是根据句子的下标索引相对位置添加位置信息,如或即[0,1,2,3…50,…100,…200,…]。
经过嵌入之后,会经过12个串联的transformer结构层,通过多头注意力机制计算得到隐藏层输出向量:h={h1,h2,h3,...,hm-1,hm};
Entity标签集合为:EL={l1,l2,l3,...,lw-1,lw};
Relation_trigger标签集合为:RL={l1,l2,l3,...,lq-1,lq};
其所有标签集合为:l=EL+RL={l1,l2,l3,...,lm-1,lm};
其中P(Xi=li|X)=softmax(h*w),h是隐藏层输出向量,w是LM线性层权重(例如0.2-0.8,如0.5)。
利用损失反向传播迭代更新模型参数训练得到Bert-NER模型。
使用训练好的Bert-NER模型对文档进行NER抽取,获得Entity集EG={e1,e2,e3,...,ep-1,ep}和Relation_trigger集RG={r1,r2,r3,...,ro-1,ro}。
实施例7
重复实施例6,如图3所示,只是步骤6)针对司法领域低资源的应用场景,设计用于RE-MRC任务的prompt模板,利用Entity集和Relation_trigger集基于prompt构造模板获得RE-MRC任务训练语料,利用prompt构造模板对数据进行大规模扩充以克服司法领域低资源的问题:
设计用于RE-MRC任务的prompt模板为:
p1:“[Entity_1]和[Entity_2]是什么关系?”、
p2::“[Relation_trigger_1]代表什么关系?”、
p3:“[Entity_1]和[Entity_2]是否具有关系?”、
p4:“[Entity_1]和[Relation_trigger_1]是否有关?”、
p5:“[Entity_2]和[Relation_trigger_1]是否有关?”;
得到prompt模板P={p1,p2,p3,p4,p5};
6.2)prompt答案空间映射的构造:
将Entity集EG={e1,e2,e3,...,ep-1,ep}和Relation_trigger集RG={r1,r2,r3,...,ro-1,ro}分别填入prompt模板P中,得到训练语料;人工对prompt模板P中的训练语料填入[Z]作为答案空间映射,获得答案集[Z]={z1,z2,z3,z4,z5},从而得到完整的RE-MRC任务的训练语料;
其中:[z1]、[z2]、[z3]、[z4]、[z5]分别为训练语料p1、p2、p3、p4、p5进行人工判别的答案;
6.3)Bert-RE模型的构建:
对于Relation_trigger集RG={r1,r2,r3,...,ro-1,ro}和Entity集EG={e1,e2,e3,...,ep-1,ep},将r和e作为文本放入prompt模板作为输入,使用预训练语言模型对输入的文本进行预测;
将预测的结果作为label与答案集[Z]进行比较,迭代进行损失计算、损失反向传播迭代更新Bert-NER模型,直至预测结果label与答案集[Z]一致,获得Bert-RE模型。
实施例8
重复实施例7,如图3所示,只是步骤6.3)具体为:
对于具有n个文档的数据,依次取出每个文档,最长的文档长度为MAX_L,最短的文档长度为MIN_L,取出的文档长度为L∈[MIN_L,MAX_L],每个文档中含有C种要素,其中C∈[MIN_C,MAX_C],MIN_C代表最少的文档要素种类数,MAX_C代表最多的文档要素种类数。
对于文档L={x1,x2,x3,...,xm-1,xm},x代表文档具有的字符元素。
对于问句Q={q1,q2,q3,...,qz-1,qz}。
依次取出Q中的q,每一个q与L组成输入语料。
首先使用Bert-RE模型的tokenizer对L与q进行分词,随后进行向量嵌入,包括token嵌入,段嵌入,位置嵌入。
Token嵌入指在每个句子的句首插入[CLS]标记,句尾插入[SEP]标记,其中[CLS]标记代表当前句子的向量,[SEP]标记代表分句用于切分文本中的句子。
段嵌入用于区分两个句子,不同句子之前分别为A和B标记,所以输入的句子表示为(EA,EB,EA,EB,……)。
位置嵌入则是根据句子的下标索引相对位置添加位置信息,为[0,1,2,3…50,…100,…200,…]。
经过嵌入之后,会经过12个串联的transformer结构层,通过多头注意力机制计算得到隐藏层输出向量:h={h1,h2,h3,...,hn-1,hn};
其所有标签集合为:l={l1,l2,l3,...,ln-1,ln};
其中P(Xi=li|X)=softmax(h*w);h是隐藏层输出向量;w是LM线性层权重,取值为0.5。
利用损失反向传播迭代更新模型参数训练得到Bert-RE模型。
实施例9
一种基于自标签与prompt的旅游领域文档级低资源场景的要素抽取方法,该方法包括以下几个步骤:
1)使用爬虫获取旅游领域数据,对数据统计TF-IDF构建旅游领域数据基础词典,通过中国旅游景点知识图谱对旅游领域数据词典中的实体进行查询,检索其临近边(关系)与节点(实体),将未在词典中的实体与关系添加进词典,得到旅游领域数据最终词典,利用旅游领域数据最终词典和大规模数据无监督预训练得到Bert-NER老师模型,再取一个Bert模型作为Bert-NER学生模型,利用此Bert-NER老师模型与Bert-NER学生模型对大规模无标记数据进行自训练克服旅游领域低资源的问题,迭代得到最终的Bert-NER模型。
2)利用中国旅游景点知识图谱远程监督作为无标记数据的注释,分别统计文档与bert辅助模型生成结果entity与relation_trigger的词频,将其融合得到综合词频,对每个标签综合词频top-k的元素进行编码并融合得到该标签的词频token。
3)针对旅游领域标签层次化显著的特点,设计一种旅游领域分层标签,将文档entity与relation_trigger的标签数据转化为自然语言形式,再根据标注样式转化为自然语言注释形式,获得自标签token。
4)将标签补充进Bert-NER模型词表,再融合自标签token与词频token,将其作为标签token作为Bert-NER词表补充的标签的对应token放入模型。
5)针对旅游领域文档级的应用场景,将NER任务重新定义为面向要素的语言模型分类任务,显著加快解码速度,并对跨句实体关系语义进行有效吸收,使用Bert-NER模型对文档进行NER抽取,获得Entity集和Relation_trigger集。
6)针对旅游领域低资源的应用场景,设计用于RE-MRC任务的prompt模板,利用Entity集和Relation_trigger集基于prompt构造模板获得RE-MRC任务训练语料,利用prompt构造模板对数据进行大规模扩充以克服旅游领域低资源的问题,使用RE-MRC任务训练语料得到Bert-RE模型。
7)利用步骤6)得到的Bert-RE模型对文档进行RE抽取,得到relation集,完成文档级低资源场景的要素抽取任务。
实施例10
重复实施例9,只是步骤1)使用爬虫获取旅游领域数据,对数据统计TF-IDF构建旅游领域数据基础词典,通过中国旅游景点知识图谱对旅游领域数据词典中的实体进行查询,检索其临近边(关系)与节点(实体),将未在词典中的实体与关系添加进词典,得到旅游领域数据最终词典,利用旅游领域数据最终词典和大规模数据无监督预训练得到Bert-NER老师模型,再取一个Bert模型作为Bert-NER学生模型,利用此Bert-NER老师模型与Bert-NER学生模型对大规模无标记数据进行自训练克服旅游领域低资源的问题,迭代得到最终的Bert-NER模型包括,如图1所示:
步骤2.1)所需要抽取的文档所属专业领域为使用基于hadoop的大数据框架在遵守法律与爬虫协议的基础上对可用的网络资源进行爬取。
使用Bert辅助模型对未标记数据进行分词,对数据中的字符计算其TF-IDF:
TFi,j=(ni,j/Σk nk,j);
表示词条ti在文档dj中出现的频率。
IDFi=log(|D|/|j:ti∈dj|);
总文档包含词条ti的文档数。
TF-IDFi=TFi,j×IDFi;
其中:TFi,j表示词条ti在文档dj中出现的频率;ni,j表示文档dj中词条i的数量;nk,j表示文档dj中词条k的数量;IDFi表示词条ti的逆文档频率;D表示所有文档;j表示第j个文档的下标;ti表示第i个词条;dj表示第j个文档;TF-IDFi表示第i个词条的文档-逆文档频率;
对TF-IDF计算结果进行排序,挑选1000个的词汇组成旅游领域数据基础词典。
对于旅游领域数据基础词典中的每一个词汇,通过中国旅游景点知识图谱进行远程查询,对中国旅游景点知识图谱上所属词汇的相关关系与临近实体节点进行查询,若不在旅游领域数据基础词典中,则将其加入旅游领域数据基础词典中,构成旅游领域数据最终词典。
将处理好的数据分别放入两个Bert模型利用旅游领域数据最终词典使用MLM任务与NSP任务进行预训练,得到一个Bert-NER老师模型和一个Bert-NER学生模型。
其中MLM任务是在输入语料的句子中,随机挑选15%的token,将这些token用[MASK]替换,然后用bert模型预测[MASK]是什么词。
而NSP任务是对输入语料的句子进行标记,每个样本选择两个句子A、B,预测B是否是A的下一句话。
使用Bert-NER老师模型对未标记数据进行预测,预测结果作为伪标签。
再将标记数据和未标记数据结合标签和伪标签一起训练Bert-NER学生模型。
这之后将Bert-NER学生模型作为新的Bert-NER老师模型,而Bert-NER老师模型则作为下一阶段的Bert-NER学生模型。
重复迭代20次,得到最终的Bert-NER模型。
实施例11
重复实施例10,只是步骤2)分别统计文档与bert辅助模型生成结果entity与relation_trigger的词频,将其融合得到综合词频,对每个标签综合词频top-k的元素进行编码并融合得到该标签的词频token,如图1所示:
步骤2.1)对于具有n个文档的文档数据,其含有m个要素标签类别,要素标签类别的集合:{C1,C2,C3,...,Cm-1,Cm};
对文档数据进行词频统计,得到要素标签类别的数据词频映射:
F1(Ci)=argmaxα(x=w,y=Ci);
其中x为文档中的字符,w代表某一具体字符内容,y代表要素标签类别,Ci表示第i个要素标签类别。
Bert辅助模型直接使用开源的Bert-base模型,由12层transformer-encoder组成。
对n个文档的所有要素标签预测结果进行词频统计,得到要素标签类别的生成词频映射:
F2(Ci)=argmaxβ(x=w,y=Ci);
其中x为文档中的字符,w代表某一具体字符内容,y代表要素标签类别。
使用数据词频映射与生成词频映射得到综合词频:
F(Ci)=η1*F1(Ci)+η2*F2(Ci);
其中η1和η2为设置的权重,取值为0.5。
使用Bert-NER模型对标签Ci综合词频处于前k个的元素Ei={e1,e2,e3,...,ek-1,ek}进行编码,其中k为设置的数量,取值为5,再对所有编码取平均得到词频token:
T(Ci)=Avg(Bert-NER(Ei))。
实施例12
重复实施例11,只是步骤3)针对旅游领域标签层次化显著的特点,设计一种旅游领域分层标签,将文档entity与relation_trigger的标签数据转化为自然语言形式,再根据标注样式转化为自然语言注释形式,获得自标签token:
步骤3.1)对文档数据具有的标签类别C={C1,C2,C3,...,Cm-1,Cm}:
对于旅游领域标签层次化显著的特点,设计一种旅游领域分层标签,对于父级标签Ci,其包含多个子标签(C1,C2,C3,...,Ck-1,Ck),那么我们则将其标签设定为Pos_tag+Sup_Type_tag+Type_tag。
其中Sup_Type_tag为3层)。
对要素标签类别拆解后得到三部分Pos_tag、Sup_Type_tag和Type_tag。
先对Pos_tag、Sup_Type_tag和Type_tag分别进行自然语言转化,得到Pos_pre_word、Sup_Type_pre_word和Type_pre_word。
再根据标注样式转化为自然语言注释形式,得到Pos_word、Sup_Type_word和Type_word。
将Pos_word、Sup_Type_word和Type_word输入Bert辅助模型得到自标签token:
G(C)=(Bert[Pos_word]+Bert[Sup_Type_word]+Bert[Type_word])/n
其中n为Pos_tag、Sup_Type_tag和Type_tag的总数。
实施例13
重复实施例12,只是步骤4)将标签补充进Bert-NER模型词表,再融合自标签token与词频token,将其作为标签token作为Bert-NER词表补充的标签的对应token放入模型:
根据步骤4.1)对于标签类别C={C1,C2,C3,...,Cm-1,Cm},其词频token为T(Ci),自标签token为G(Ci),对其进行加权融合:Final(Ci)=α1*T(Ci)+α2*G(Ci);其中α1、α2为设置的权重,取值为0.5。
得到标签与标签token的映射词典:Dic={ci:Final(Ci)};
将该词典导入进Bert-NER模型。
实施例14
重复实施例13,只是步骤5)针对旅游领域文档级的应用场景,将NER任务重新定义为面向要素的语言模型分类任务,显著加快解码速度,并对跨句实体关系语义进行有效吸收,使用Bert-NER模型对文档进行NER抽取,获得Entity集和Relation_trigger集:
步骤5.1)对于具有n个文档的数据,依次取出每个文档,最长的文档长度为MAX_L,最短的文档长度为MIN_L,取出的文档长度为L∈[MIN_L,MAX_L],每个文档中含有C种要素,其中C∈[MIN_C,MAX_C],MIN_C代表最少的文档要素种类数,MAX_C代表最多的文档要素种类数。
对于文档L={x1,x2,x3,...,xm-1,xm},x代表文档具有的字符元素。
首先使用Bert-NER模型的tokenizer对L进行分词,随后进行向量嵌入,包括token嵌入,段嵌入,位置嵌入。
Token嵌入指在每个句子的句首插入[CLS]标记,句尾插入[SEP]标记,其中[CLS]标记代表当前句子的向量,[SEP]标记代表分句用于切分文本中的句子。
段嵌入用于区分两个句子,不同句子之前分别为A和B标记,所以输入的句子表示为(EA,EB,EA,EB,……)。
位置嵌入则是根据句子的下标索引相对位置添加位置信息,如或即[0,1,2,3…50,…100,…200,…]。
经过嵌入之后,会经过12个串联的transformer结构层,通过多头注意力机制计算得到隐藏层输出向量:h={h1,h2,h3,...,hm-1,hm};
Entity标签集合为:EL={l1,l2,l3,...,lw-1,lw};
Relation_trigger标签集合为:RL={l1,l2,l3,...,lq-1,lq};
其所有标签集合为:l=EL+RL={l1,l2,l3,...,lm-1,lm};
其中P(Xi=li|X)=softmax(h*w),h是隐藏层输出向量,w是LM线性层权重(例如0.2-0.8,如0.5)。
利用损失反向传播迭代更新模型参数训练得到Bert-NER模型。
使用训练好的Bert-NER模型对文档进行NER抽取,获得Entity集EG={e1,e2,e3,...,ep-1,ep}和Relation_trigger集RG={r1,r2,r3,...,ro-1,ro}。
实施例15
重复实施例14,如图3所示,只是步骤6)针对旅游领域低资源的应用场景,设计用于RE-MRC任务的prompt模板,利用Entity集和Relation_trigger集基于prompt构造模板获得RE-MRC任务训练语料,利用prompt构造模板对数据进行大规模扩充以克服旅游领域低资源的问题:
设计用于RE-MRC任务的prompt模板为:
p1:“[Entity_1]和[Entity_2]是什么关系?”、
p2::“[Relation_trigger_1]代表什么关系?”、
p3:“[Entity_1]和[Entity_2]是否具有关系?”、
p4:“[Entity_1]和[Relation_trigger_1]是否有关?”、
p5:“[Entity_2]和[Relation_trigger_1]是否有关?”;
得到prompt模板P={p1,p2,p3,p4,p5};
6.2)prompt答案空间映射的构造:
将Entity集EG={e1,e2,e3,...,ep-1,ep}和Relation_trigger集RG={r1,r2,r3,...,ro-1,ro}分别填入prompt模板P中,得到训练语料;人工对prompt模板P中的训练语料填入[Z]作为答案空间映射,获得答案集[Z]={z1,z2,z3,z4,z5},从而得到完整的RE-MRC任务的训练语料;
其中:[z1]、[z2]、[z3]、[z4]、[z5]分别为训练语料p1、p2、p3、p4、p5进行人工判别的答案;
6.3)Bert-RE模型的构建:
对于Relation_trigger集RG={r1,r2,r3,...,ro-1,ro}和Entity集EG={e1,e2,e3,...,ep-1,ep},将r和e作为文本放入prompt模板作为输入,使用预训练语言模型对输入的文本进行预测;
将预测的结果作为label与答案集[Z]进行比较,迭代进行损失计算、损失反向传播迭代更新Bert-NER模型,直至预测结果label与答案集[Z]一致,获得Bert-RE模型。
实施例16
重复实施例15,如图3所示,只是步骤6.3)具体为:
对于具有n个文档的数据,依次取出每个文档,最长的文档长度为MAX_L,最短的文档长度为MIN_L,取出的文档长度为L∈[MIN_L,MAX_L],每个文档中含有C种要素,其中C∈[MIN_C,MAX_C],MIN_C代表最少的文档要素种类数,MAX_C代表最多的文档要素种类数。
对于文档L={x1,x2,x3,...,xm-1,xm},x代表文档具有的字符元素。
对于问句Q={q1,q2,q3,...,qz-1,qz}。
依次取出Q中的q,每一个q与L组成输入语料。
首先使用Bert-RE模型的tokenizer对L与q进行分词,随后进行向量嵌入,包括token嵌入,段嵌入,位置嵌入。
Token嵌入指在每个句子的句首插入[CLS]标记,句尾插入[SEP]标记,其中[CLS]标记代表当前句子的向量,[SEP]标记代表分句用于切分文本中的句子。
段嵌入用于区分两个句子,不同句子之前分别为A和B标记,所以输入的句子表示为(EA,EB,EA,EB,……)。
位置嵌入则是根据句子的下标索引相对位置添加位置信息,如或即[0,1,2,3…50,…100,…200,…]。
经过嵌入之后,会经过12个串联的transformer结构层,通过多头注意力机制计算得到隐藏层输出向量:h={h1,h2,h3,...,hn-1,hn};
其所有标签集合为:l={l1,l2,l3,...,ln-1,ln};
其中P(Xi=li|X)=softmax(h*w);h是隐藏层输出向量;w是LM线性层权重,取值为0.5。
利用损失反向传播迭代更新模型参数训练得到Bert-RE模型。
Claims (10)
1.基于自标签与prompt的文档级低资源场景的要素抽取方法,该方法包括以下步骤:
1)Bert-NER模型的构建:使用爬虫获取专业领域数据,对数据统计TF-IDF构建专业领域数据基础词典,通过知识图谱对专业领域数据词典中的实体进行查询,检索其临近边“关系”与节点“实体”,将未在词典中的实体与关系添加进词典,得到专业领域数据最终词典,利用专业领域数据最终词典和大规模数据无监督预训练得到Bert-NER老师模型,再取一个Bert模型作为Bert-NER学生模型,利用此Bert-NER老师模型与Bert-NER学生模型对大规模无标记数据进行自训练克服专业领域低资源的问题,迭代得到最终的Bert-NER模型;
2)词频token的获得:利用远程知识库远程监督作为无标记数据的注释,分别统计文档与bert辅助模型生成结果entity与relation_trigger的词频,将其融合得到综合词频,对每个标签综合词频top-k的元素进行编码并融合得到该标签的词频token;
3)自标签token的获得:针对专业领域标签层次化显著的特点,设计一种专业领域分层标签,将文档entity与relation_trigger的标签数据转化为自然语言形式,再根据标注样式转化为自然语言注释形式,获得自标签token;
4)标签的对应token在上述模型中的放入:将标签补充进Bert-NER模型词表,再融合自标签token与词频token,将其作为标签token作为Bert-NER词表补充的标签的对应token放入模型;
5)Entity集和Relation_trigger集的获得:针对专业领域文档级的应用场景,将NER任务重新定义为面向要素的语言模型分类任务,显著加快解码速度,并对跨句实体关系语义进行有效吸收,使用Bert-NER模型对文档进行NER抽取,获得Entity集和Relation_trigger集;
6)语料数据的大规模扩充:针对专业领域低资源的应用场景,设计用于RE-MRC任务的prompt模板,利用Entity集和Relation_trigger集基于prompt构造模板获得RE-MRC任务训练语料,利用prompt构造模板对语料数据进行大规模扩充以克服专业领域低资源的问题;使用RE-MRC任务训练语料得到Bert-RE模型;
7)要素的抽取:利用步骤6)得到的Bert-RE模型对文档进行RE抽取,得到relation集,完成文档级低资源场景的要素抽取任务。
2.根据权利要求1所述的要素抽取方法,其特征在于,步骤1)更具体地包括:
1.1)所需要抽取的文档所属专业领域为使用基于hadoop的大数据框架在遵守法律与爬虫协议的基础上对可用的网络资源进行爬取;
1.2)使用Bert辅助模型对未标记数据进行分词,对数据中的字符计算其TF-IDF:
TFi,j=(ni,j/∑knk,j);
IDFi=log(|D|/|j:ti∈dj|);
TF-IDFi=TFi,j×IDFi;
其中:TFi,j表示词条ti在文档dj中出现的频率;ni,j表示文档dj中词条i的数量;nk,j表示文档dj中词条k的数量;IDFi表示词条ti的逆文档频率;D表示所有文档;j表示第j个文档的下标;ti表示第i个词条;dj表示第j个文档;TF-IDFi表示第i个词条的文档-逆文档频率;
1.3)对TF-IDF计算结果进行排序,挑选一定数量(例如10-5000个)的词汇组成专业领域数据基础词典;
1.4)对于专业领域数据基础词典中的每一个词汇,通过知识图谱进行远程查询,对知识图谱上所属词汇的相关关系与临近实体节点进行查询,若不在专业领域数据基础词典中,则将其加入专业领域数据基础词典中,构成专业领域数据最终词典;
1.5)将处理好的数据分别放入两个Bert模型利用专业领域数据最终词典使用MLM任务与NSP任务进行预训练,得到一个Bert-NER老师模型和一个Bert-NER学生模型;
其中MLM任务是在输入语料的句子中,随机挑选百分比5-40%的token,将这些token用[MASK]替换,然后用bert模型预测[MASK]是什么词,而NSP任务是对输入语料的句子进行标记,每个样本选择两个句子A、B,预测B是否是A的下一句话;
1.6)使用Bert-NER老师模型对未标记数据进行预测,预测结果作为伪标签;
1.7)再将标记数据和未标记数据结合标签和伪标签一起训练Bert-NER学生模型;
1.8)这之后将Bert-NER学生模型作为新的Bert-NER老师模型,而Bert-NER老师模型则作为下一阶段的Bert-NER学生模型;
1.9)重复迭代一定次数(例如3-300次),得到最终的Bert-NER模型。
3.根据权利要求1所述的要素抽取方法,其特征在于,步骤2)更具体地包括:
2.1)对于具有n个文档的文档数据,其含有m个要素标签类别,要素标签类别的集合:
{C1,C2,C3,...,Cm-1,Cm};
对文档数据进行词频统计,得到要素标签类别的数据词频映射:
F1(Ci)=argmaxα(x=w,y=Ci);
其中x为文档中的字符,w代表某一具体字符内容,y代表要素标签类别,Ci表示第i个要素标签类别;其中,Bert辅助模型直接使用开源的Bert-base模型,由12层transformer-encoder组成;
2.2)对n个文档的所有要素标签预测结果进行词频统计,得到要素标签类别的生成词频映射:
F2(Ci)=argmaxβ(x=w,y=Ci);
其中x为文档中的字符,w代表某一具体字符内容,y代表要素标签类别;
2.3)使用数据词频映射与生成词频映射得到综合词频:
F(Ci)=η1*F1(Ci)+η2*F2(Ci);
其中η1和η2为设置的权重,取值为0.2-0.8;
2.4)使用Bert-NER模型对标签Ci综合词频处于前k个的元素Ei={e1,e2,e3,...,ek-1,ek}进行编码,其中k为设置的数量,取值为1-10;再对所有编码取平均得到词频token:
T(Ci)=Avg(Bert-NER(Ei))。
4.根据权利要求1所述的要素抽取方法,其特征在于,步骤3)更具体地包括:
3.1)对文档数据具有的要素标签类别C={C1,C2,C3,...,Cm-1,Cm}:
对于专业领域标签层次化显著的特点,设计一种专业领域分层标签,对于父级标签Ci,其包含多个子标签(C1,C2,C3,...,Ck-1,Ck),那么我们则将其标签设定为Pos_tag+Sup_Type_tag+Type_tag;
其中Sup_Type_tag可为零层或一层或多层(1-20层,优选1-10层,更优选2-5层);
3.2)对要素标签类别拆解后得到三部分Pos_tag、Sup_Type_tag和Type_tag;
3.3)先对Pos_tag、Sup_Type_tag和Type_tag分别进行自然语言转化,得到Pos_pre_word、Sup_Type_pre_word和Type_pre_word;
3.4)再根据标注样式转化为自然语言注释形式,得到Pos_word、Sup_Type_word和Type_word;
3.5)将Pos_word、Sup_Type_word和Type_word输入Bert辅助模型得到自标签token:
G(C)=(Bert[Pos_word]+Bert[Sup_Type_word]+Bert[Type_word])/n;
其中n为Pos_tag、Sup_Type_tag和Type_tag的总数。
5.根据权利要求1所述的要素抽取方法,其特征在于,步骤4)更具体地包括:
4.1)对于标签类别C={C1,C2,C3,...,Cm-1,Cm},其词频token为T(Ci),自标签token为G(Ci)对其进行加权融合:
Final(Ci)=α1*T(Ci)+α2*G(Ci);
其中:α1、α2为设置的权重,取值为0.2-0.8;得到标签与标签token的映射词典:
Dic={Ci:Final(Ci)};
4.2)将该词典导入进Bert-NER模型。
6.根据权利要求1所述的要素抽取方法,其特征在于,步骤5)更具体地包括:
5.1)对于具有n个文档的数据,依次取出每个文档,最长的文档长度为MAX_L,最短的文档长度为MIN_L,取出的文档长度为L∈[MIN_L,MAX_L],每个文档中含有C种要素,其中C∈[MIN_C,MAX_C],MIN_C代表最少的文档要素种类数,MAX_C代表最多的文档要素种类数,对于文档L={x1,x2,x3,...,xm-1,xm},x代表文档具有的字符元素;
5.2)首先使用Bert-NER模型的tokenizer对L进行分词,随后进行向量嵌入,该向量嵌入包括token嵌入,段嵌入,和位置嵌入;其中,Token嵌入指在每个句子的句首插入[CLS]标记,句尾插入[SEP]标记,其中[CLS]标记代表当前句子的向量,[SEP]标记代表分句用于切分文本中的句子;段嵌入用于区分两个句子,不同句子之前分别为A和B标记,所以输入的句子表示为(EA,EB,EA,EB,……);位置嵌入则是根据句子的下标索引相对位置添加位置信息,如或即[0,1,2,3…50,…100,…200,…];
5.3)经过嵌入之后,会经过12个串联的transformer结构层,通过多头注意力机制计算得到隐藏层输出向量:h={h1,h2,h3,...,hm-1,hm};
Entity标签集合为:EL={l1,l2,l3,...,lw-1,lw};
Relation_trigger标签集合为:RL={l1,l2,l3,...,lq-1,lq};
其所有标签集合为:l=EL+RL={l1,l2,l3,...,lm-1,lm};
其中P(Xi=li|X)=softmax(h*w),h是隐藏层输出向量,w是LM线性层权重(例如0.2-0.8,如0.5);
5.4)利用损失反向传播迭代更新模型参数训练得到Bert-NER模型;
5.5)使用训练好的Bert-NER模型对文档进行NER抽取,获得Entity集EG={e1,e2,e3,...,ep-1,ep}和Relation_trigger集RG={r1,r2,r3,...,ro-1,ro}。
7.根据权利要求1所述的要素抽取方法,其特征在于,步骤6)更具体地包括:
6.1)设计用于RE-MRC任务的prompt模板为:
p1:“[Entity_1]和[Entity_2]是什么关系?”、
p2::“[Relation_trigger_1]代表什么关系?”、
p3:“[Entity_1]和[Entity_2]是否具有关系?”、
p4:“[Entity_1]和[Relation_trigger_1]是否有关?”、
p5:“[Entity_2]和[Relation_trigger_1]是否有关?”;
得到prompt模板P={p1,p2,p3,p4,p5};
6.2)prompt答案空间映射的构造:
将Entity集EG={e1,e2,e3,...,ep-1,ex}和Relation_trigger集RG={r1,r2,r3,...,ro-1,ro}分别填入prompt模板P中,得到训练语料;人工对prompt模板P中的训练语料填入[Z]作为答案空间映射,获得答案集[Z]={z1,z2,z3,z4,z5},从而得到完整的RE-MRC任务的训练语料;
其中:[z1]、[z2]、[z3]、[z4]、[z5]分别为训练语料p1、p2、p3、p4、p5进行人工判别的答案;
6.3)Bert-RE模型的构建:
对于Relation_trigger集RG={r1,r2,r3,...,ro-1,ro}和Entity集EG={e1,e2,e3,...,ep-1,ep},将r和e作为文本放入prompt模板作为输入,使用预训练语言模型对输入的文本进行预测;
将预测的结果作为label与答案集[Z]进行比较,迭代进行损失计算、损失反向传播迭代更新Bert-NER模型,直至预测结果label与答案集[Z]一致,获得Bert-RE模型。
8.根据权利要求7所述的要素抽取方法,其特征在于,步骤6.3)具体为:
6.3.1)对于具有n个文档的数据,依次取出每个文档,最长的文档长度为MAX_L,最短的文档长度为MIN_L,取出的文档长度为L∈[MIN_L,MAX_L],每个文档中含有C种要素,其中C∈[MIN_C,MAX_C],MIN_C代表最少的文档要素种类数,MAX_C代表最多的文档要素种类数,对于文档L={x1,x2,x3,...,xm-1,xm},x代表文档具有的字符元素,对于问句Q={q1,q2,q3,...,qz-1,qz},依次取出Q中的q,每一个q与L组成输入语料;
6.3.2)首先使用Bert-RE模型的tokenizer对L与q进行分词,随后进行向量嵌入,该向量嵌入包括token嵌入,段嵌入,和位置嵌入;其中,Token嵌入指在每个句子的句首插入[CLS]标记,句尾插入[SEP]标记,其中[CLS]标记代表当前句子的向量,[SEP]标记代表分句用于切分文本中的句子;段嵌入用于区分两个句子,不同句子之前分别为A和B标记,所以输入的句子表示为(EA,EB,EA,EB,……);位置嵌入则是根据句子的下标索引相对位置添加位置信息,如或即[0,1,2,3…50,…100,…200,…];
6.3.3)经过嵌入之后,会经过12个串联的transformer结构层,通过多头注意力机制计算得到隐藏层输出向量:h={h1,h2,h3,...,hn-1,hn};
其所有标签集合为:l={l1,l2,l3,...,ln-1,ln};
其中P(Xi=li|X)=softmax(h*w),h是隐藏层输出向量,w是LM线性层权重(例如0.2-0.8,如0.5);
6.3.4)利用损失反向传播迭代更新模型参数训练得到Bert-RE模型。
9.根据权利要求2所述的要素抽取方法,其特征在于,
1.3)对TF-IDF计算结果进行排序,挑选15-4500个的词汇组成专业领域数据基础词典;和/或
在步骤1.5)中,随机挑选百分比10-30%的token,将这些token用[MASK]替换,然后用bert模型预测[MASK]是什么词;和/或
1.9)重复迭代4-100次,得到最终的Bert-NER模型。
10.根据权利要求9所述的要素抽取方法,其特征在于,
1.3)对TF-IDF计算结果进行排序,挑选20-4000个的词汇组成专业领域数据基础词典;
和/或
在步骤1.5)中,随机挑选百分比15-20%的token,将这些token用[MASK]替换,然后用bert模型预测[MASK]是什么词;和/或
1.9)重复迭代5-10次,得到最终的Bert-NER模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310018831.0A CN116049437A (zh) | 2023-01-06 | 2023-01-06 | 基于自标签与prompt的文档级低资源场景的要素抽取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310018831.0A CN116049437A (zh) | 2023-01-06 | 2023-01-06 | 基于自标签与prompt的文档级低资源场景的要素抽取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116049437A true CN116049437A (zh) | 2023-05-02 |
Family
ID=86112834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310018831.0A Pending CN116049437A (zh) | 2023-01-06 | 2023-01-06 | 基于自标签与prompt的文档级低资源场景的要素抽取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116049437A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116977436A (zh) * | 2023-09-21 | 2023-10-31 | 小语智能信息科技(云南)有限公司 | 基于缅甸语字符簇特征的缅甸语文本图像识别方法及装置 |
-
2023
- 2023-01-06 CN CN202310018831.0A patent/CN116049437A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116977436A (zh) * | 2023-09-21 | 2023-10-31 | 小语智能信息科技(云南)有限公司 | 基于缅甸语字符簇特征的缅甸语文本图像识别方法及装置 |
CN116977436B (zh) * | 2023-09-21 | 2023-12-05 | 小语智能信息科技(云南)有限公司 | 基于缅甸语字符簇特征的缅甸语文本图像识别方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110633409B (zh) | 一种融合规则与深度学习的汽车新闻事件抽取方法 | |
CN113642330B (zh) | 基于目录主题分类的轨道交通规范实体识别方法 | |
CN109857990B (zh) | 一种基于文档结构与深度学习的金融类公告信息抽取方法 | |
CN111985239B (zh) | 实体识别方法、装置、电子设备及存储介质 | |
CN114020768B (zh) | 中文自然语言的sql语句生成模型的构建方法及应用 | |
CN112101028B (zh) | 一种多特征双向门控领域专家实体抽取方法及系统 | |
CN106844349B (zh) | 基于协同训练的垃圾评论识别方法 | |
CN111291188B (zh) | 一种智能信息抽取方法及系统 | |
WO2015043075A1 (zh) | 面向微博的情感实体搜索系统 | |
CN103886020B (zh) | 一种房地产信息快速搜索方法 | |
CN110956041A (zh) | 一种基于深度学习的并购重组公告摘要方法 | |
CN113191148A (zh) | 一种基于半监督学习和聚类的轨道交通实体识别方法 | |
CN111814477B (zh) | 一种基于争议焦点实体的争议焦点发现方法、装置及终端 | |
CN111967267B (zh) | 一种基于XLNet的新闻文本地域提取的方法及系统 | |
CN112364623A (zh) | 基于Bi-LSTM-CRF的三位一体字标注汉语词法分析方法 | |
CN114818717A (zh) | 融合词汇和句法信息的中文命名实体识别方法及系统 | |
CN115759092A (zh) | 一种基于albert的网络威胁情报命名实体识别方法 | |
CN115952794A (zh) | 融合双语敏感词典和异构图的汉泰跨语言敏感信息识别方法 | |
CN112507717A (zh) | 融合实体关键字特征的医疗领域实体分类方法 | |
CN115935995A (zh) | 面向知识图谱生成的非遗丝织领域实体关系抽取方法 | |
CN116049437A (zh) | 基于自标签与prompt的文档级低资源场景的要素抽取方法 | |
CN113378024B (zh) | 一种基于深度学习面向公检法领域的相关事件识别方法 | |
CN118260464A (zh) | 一种提取网页中感兴趣文本的方法和装置 | |
CN114330349A (zh) | 一种特定领域命名实体识别方法 | |
CN116562291A (zh) | 一种基于边界检测的中文嵌套命名实体识别方法 |
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 |