赞
踩
这里使用一个多任务模型抽取三元组。任务1是抽取subjects, 任务2是同时抽取objects 和 predictions。抽取的方式并不是BIO标注的方式而是采用半指针半标注的方法。
1、模型大体描述如下:基于Bert编码器,利用半指针半标注的方式,先抽取subjects,再同时抽取objects和predictions。
2、模型具体描述如下:
step1 利用Bert等编码器将输入文本编码成词向量。
step2 将词向量经过一个dense层变化成两维的向量。
step3 将得到的2维向量分别过一个sigmoid激活函数,分别代表是否是subject的起始,是否是subject的结束。最终可以得到1or多个subjects.
step4 将得到的subjects过一个dense层转化成词向量维度与step1得到的词向量相加
step5 再将step4得到的结果经过一个dense层输出一个2关系量的向量。
step6 最后再将2关系量的向量转化成 【关系量,2】的矩阵,代表对于每一个可能的prediction对应的objects标识。
1、SubjectModel 流程如下:
2 、ObjectModel 流程如下:
对于验证集,先输入input_ids,attention_mask得到subject_output,设定两个阈值(比如0.5,0.6)决定subject的起始和结尾,进而得到subject。再将subject_output,input_ids, attention_mask再导入objectModel得到obejct_output,同理设定两个阈值(比如0.2,0.3)得到objects和predicate。如此得到的三元组和验证集的labels比对,计算F1。
知识图谱的构建是知识图谱的核心。我们这里介绍的方法是一个baseline的方法,有很多可以改进的空间。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。