CN112329440B - 一种基于两阶段筛选和分类的关系抽取方法和装置 - Google Patents
一种基于两阶段筛选和分类的关系抽取方法和装置 Download PDFInfo
- Publication number
- CN112329440B CN112329440B CN202011429449.1A CN202011429449A CN112329440B CN 112329440 B CN112329440 B CN 112329440B CN 202011429449 A CN202011429449 A CN 202011429449A CN 112329440 B CN112329440 B CN 112329440B
- Authority
- CN
- China
- Prior art keywords
- sta
- model
- sentence
- entity
- relationship
- 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.)
- Active
Links
Classifications
-
- 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/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/253—Grammatical analysis; Style critique
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Machine Translation (AREA)
Abstract
本发明公开一种基于两阶段筛选和分类的关系抽取方法和装置,涉及数据信息处理技术领域;S1:生成实体对的上下文词法特征向量;S2:训练基于逻辑回归的关系存在性判定模型;S3:使用模型筛选可能存在关系的实体对和句子;S4:生成“实体对‑句子”特征向量序列集合;S5:生成关系类型向量;S6:训练基于卷积神经网络的关系分类模型;S7:使用模型预测实体对的关系类型。
Description
技术领域
本发明公开一种关系抽取方法和装置,涉及数据信息处理技术领域,具体地说是一种基于两阶段筛选和分类的关系抽取方法和装置。
背景技术
关系是描述实体对之间语义联系的三元组,其形式是(A,ɑ,B),其中A、B是实体,ɑ是实体间的语义联系。关系大量存在于自然文本中。关系抽取是信息抽取领域的重要研究内容,可以建立不同实体间的依赖类型,将非结构化文本转化为结构化或半结构化知识,形成由知识构成的关系网络,用于智能问答、语义搜索、社团发现等智能型服务。
目前,常用的关系抽取方法包括下述四种:
(1)规则模板法
通过分析句式特点,设计若干模板(正则表达式),使用模板在文本中匹配出关系三元组。这种方法需要构建庞大的模板库,早期由专家手工写出模板,人力耗费极大;近年来开始采用自动化方式生成模板,最常用的是Bootstrapping算法,根据最初几个实例从文本中提取种子模板,然后将进一步应用于文本,获得新的实例,重复上述过程,获得更多的模板。但是,如果初始实例质量不佳,提取出的种子模板适用面窄,在后继迭代中容易陷入局部收敛,缺乏扩展性和普适性;此外,在模板扩增的过程中,会产生适用面窄、不正确或彼此冲突(对于同一句话的相同实体,得到彼此矛盾的关系)的新模板,影响关系抽取的准确性。
(2)依存分析法
对文本进行句法或语法分析,根据关系三元组各个元素在句中的依存关系(如主谓、动宾、动补、定中、介宾等),确定对应的抽取规范。该方法与规则模板法类似,但处理对象是文本的句法或语法分析结果,要综合多条规则进行抽取,而不是使用模板直接匹配。因为依存关系种类有限,导致可用的抽取规则数量不多;此外,不同树库(或相同树库的不同版本)的依存关系定义和符号均有差异,更换树库类型或版本后,原有的关系抽取规则会失去效果;上述问题,影响本方法的普适性。
(3)机器学习法
该方法把关系抽取任务当作分类训练问题,训练机器学习模型进行预测。首先,对句子进行词法和句法分析,得到每个实体的平面特征和句法特征;然后,综合平面特征和句法特征,以及语义角色标注特征,生成完整的关系特征;最后,根据关系特征和已标注的特征标签,采用合适的方法(LR、SVM、CRF等)进行训练,从而得到不同关系的生成模型。但是,两个实体之间的关系类型依赖于实体所在的上下文环境,尤其是实体两侧近邻要素的语义特征,对于两个相同的实体,在不同的语境中会存在不同的关系类型。常用的平面特征、句法特征和语义角色标注特征仅是实体本身的特征,不能很好地反映实体所在上下文环境的特征,会影响关系(尤其是多义关系)抽取的准确性。此外,如何根据实际应用的需要,设计适用的平面特征、句法特征和语义角色标注特征,是个技巧性较强的工作,需要反复测试和调整,没有固定的规律可循。
(4)深度学习法
该方法把关系抽取任务当作分类训练问题,训练深度学习模型进行预测。首先,获取句子中每个词汇的特征向量,主要包括:词嵌入、类型嵌入、词性嵌入、相对距离等;然后,将词汇各种特征向量拼接起来,并按照词汇在句子中的顺序构成向量序列;最后,采用合适的深度学习网络(CNN、RNN、LSTM等)进行训练,从而得到关系类型判定模型。当前,该方法在关系抽取中的效果优于其它方法。但是,构造向量序列时使用的词汇特征向量通常来自预训练模型,都是已经固化的向量,不能反映词汇在不同上下文中的多义性。此外,深度学习网络结构复杂、参数众多,模型训练和关系预测的成本都很高,应用范围有限。
发明内容
本发明提供一种基于两阶段筛选和分类的关系抽取方法和装置,解决当前关系抽取中存在的下述问题:机器学习方法的特征设计困难、全部采用深度学习方法抽取关系的成本很高、采用预训练模型构建深度学习向量序列无法反映词汇在不同上下文中的多义性,从而提高关系抽取的效果。
本发明提出的具体方案是:
一种基于两阶段筛选和分类的关系抽取方法,包括以下步骤:
S1:生成实体对的上下文词法特征向量;
S2:训练基于逻辑回归的关系存在性判定模型;
S3:使用模型筛选可能存在关系的实体对和句子;
S4:生成“实体对-句子”特征向量序列集合;
S5:生成关系类型向量;
S6:训练基于卷积神经网络的关系分类模型;
S7:使用模型预测实体对的关系类型。
所述的一种基于两阶段筛选和分类的关系抽取方法中所述步骤S1中,对实体对(EA,EB)上下文的词汇和词性进行静态向量化,形成对应的上下文词法特征向量,具体包括:
S11:生成词汇的静态词嵌入;
S12:生成词汇的静态词性嵌入;
S13:合成上下文词法特征向量,即本步骤拼接静态词嵌入和静态词性嵌入,得到上下文词法特征向量;
S14:返回上下文词法特征向量。
所述的一种基于两阶段筛选和分类的关系抽取方法中,所述步骤S11中,使用预训练模型ModelSta_Emd_W,对实体对(EA,EB)上下文中各个词汇进行向量化,然后进行拼接,得到词汇的静态词嵌入ESta_AB_Cont_W,具体包括:
S111:读取用于静态词嵌入的预训练模型ModelSta_Emd_W;
S112:使用ModelSta_Emd_W计算词汇WA_Pre、EA、WA_Aft、WB_Pre、EB、WB_Aft的静态词嵌入ESta_WA_Pre、ESta_WA、ESta_WA_Aft、ESta_WB_Pre、ESta_WB、ESta_WB_Aft;
S113:拼接词嵌入结果,得到词汇的静态词嵌入ESta_AB_Cont_W=[ESta_WA_Pre,ESta_WA,ESta_WA_Aft,ESta_WB_Pre,ESta_WB,ESta_WB_Aft];
S114:返回词汇的静态词嵌入;
所述步骤S12中,首先训练用于词性嵌入的预训练模型ModelSta_Emd_S,然后对实体对(EA,EB)上下文中各个词汇的词性进行向量化,然后进行拼接,得到词汇的静态词性嵌入ESta_AB_Cont_S,具体包括:
S121:训练用于词性嵌入的预训练模型ModelSta_Emd_S;
S122:加载用于词性嵌入的预训练模型ModelSta_Emd_S;
S123:使用ModelSta_Emd_S计算词性SA_Pre、SA、SA_Aft、SB_Pre、SB、SB_Aft的静态词性嵌入ESta_SA_Pre、ESta_SA、ESta_SA_Aft、ESta_SB_Pre、ESta_SB、ESta_SB_Aft;
S124:拼接词性嵌入结果,得到词汇的静态词性嵌入ESta_AB_Cont_S=[ESta_SA_Pre,ESta_SA,ESta_SA_Aft,ESta_SB_Pre,ESta_SB,ESta_SB_Aft];
S125:返回词汇的静态词性嵌入。
上述及后续描述中(EA,EB)表示句子S中的任意两个实体EA和EB构成的实体对,WA_Pre和WA_Aft是EA两侧的词汇,WB_Pre和WB_Aft是EB两侧的词汇,WAB_Hyper是EA和EB的上位词,词汇WA_Pre、EA、WA_Aft、WB_Pre、EB、WB_Aft的词性是SA_Pre、SA、SA_Aft、SB_Pre、SB和SB_Aft,上述描述构成实体对(EA,EB)的上下文。
所述的一种基于两阶段筛选和分类的关系抽取方法中,所述步骤S2中,首先对实体对的上下文词法特征向量EAB_Cont_WS进行降维,然后把降维结果EAB_Cont_WS_Reduce和关系存在性标识送入逻辑回归模型,通过训练得到关系存在性判定模型,具体包括:
S21:对上下文词法特征向量进行降维,即本步骤采用主成分分析法对上下文词法特征向量EAB_Cont_WS进行降维,得到降维结果EAB_Cont_WS_Reduce;
S22:生成实体对关系存在标识,即用RExt(EA,EB)表示实体EA和EB之间是否存在关系,如果二者存在关系,那么RExt(EA,EB)=1,否则RExt(EA,EB)=0;
S23:初始化逻辑回归模型的参数;
S24:将所有实体对上下文词法特征向量的降维结果送入逻辑回归模型的输入端;
S25:将所有实体对关系存在标识送入逻辑回归模型的输出端;
S26:根据收敛条件训练逻辑回归模型;
S27:返回逻辑回归模型的参数。
所述的一种基于两阶段筛选和分类的关系抽取方法中,所述步骤S3中,使用关系存在性判定模型处理每个句子中的实体对,找出可能存在关系的实体对和对应句子,用S1、S2、……、Sm表示待处理句子,具体包括:
S31:初始化句子编号i=1,可能存在关系的实体对和句子集合DataSetE_S=φ;
S32:读取句子Si;
S33:从句子中读取实体对(EA,EB);
S34:生成实体对(EA,EB)的上下文词法特征向量EAB_Cont_WS;
S35:对上下文词法特征向量EAB_Cont_WS进行降维,得到降维结果EAB_Cont_WS_Reduce;
S36:把降维结果EAB_Cont_WS_Reduce送入关系存在性判定模型的输入端;
S37:从关系存在性判定模型的输出端获取判定结果RExt(EA,EB);
S38:如果RExt(EA,EB)=1,那么转至S39,否则转至S3A;
S39:将实体对和句子((EA,EB),Si)添加到DataSetE_S;
S3A:如果句子中还存在未读取的实体对(EA,EB),那么转至S33,否则转至S3B;
S3B:i=i+1;
S3C:如果i<=m,那么转至S32,否则转S3D;
S3D:返回可能存在关系的实体对和句子集合DataSetE_S。
所述的一种基于两阶段筛选和分类的关系抽取方法中,所述步骤S4中,用((EA,EB),S)表示DataSetE_S中的任意元素,用W1、W2、……、Wn表示待处理句子中的词汇,本步骤生成句子S中每个词汇的动态词嵌入和词性嵌入,以及每个词汇与实体EA和EB之间的位置特征向量,通过拼接上述特征得到每个词汇的特征向量,按照词汇在句子中的顺序构成“实体对-句子”特征向量序列,具体包括:
S41:从DataSetE_S中读取((EA,EB),S);
S42:初始化((EA,EB),S)对应的“实体对-句子”特征向量序列SeqAttVecAB_S=φ,词汇编号j=1;
S43:生成句子S的动态词嵌入序列SeqDymWordEmdS;
S44:生成句子S的动态词性嵌入序列SeqDymPosEmdS;
S45:从句子S中读取Wj;
S46:生成词汇Wj的特征向量
S47:将添加到SeqAttVecAB_S;
S48:j=j+1;
S49:如果j<=n,那么转至S45,否则转至S4A;
S4A:保存SeqAttVecAB_S到“实体对-句子”特征向量序列集合DataSetSeq_Att_Vec;
S4B:如果DataSetE_S中还存在未读取的((EA,EB),S),那么转至S41,否则转至S4C;
S4C:返回所生成的“实体对-句子”特征向量序列集合DataSetSeq_Att_Vec。
所述的一种基于两阶段筛选和分类的关系抽取方法中,所述步骤S5中,用Relk表示实体EA和EB之间的关系,k∈[1,T],采用One-Hot编码表示实体之间的关系类型,即用长度为T的向量RelVeck表示实体EA和EB之间的关系Relk,k∈[1,T],在RelVeck中,除了第k位是1外,其它位均为0。
所述的一种基于两阶段筛选和分类的关系抽取方法中,所述步骤S6中,首先设置卷积神经网络的超参数,初始化对应的权重矩阵,然后把DataSetE_S元素((EA,EB),S)对应的“实体对-句子”特征向量序列和关系类型向量送入卷积神经网络,通过训练得到关系分类模型,具体包括:
S61:设置卷积神经网络的超参数,即本步骤设置输入层、卷积层、池化层、全连接层、输出层等模块的结构参数;
S62:初始化不同模块的权重矩阵;
S63:将所有“实体对-句子”特征向量序列送入卷积神经网络的输入层;
S64:将所有关系类型向量送入卷积神经网络的输出层;
S65:根据收敛条件训练卷积神经网络模型;
S66:返回卷积神经网络的权重矩阵。
所述的一种基于两阶段筛选和分类的关系抽取方法中,所述步骤S7中,使用已训练卷积神经网络预测待处理句子中实体对的关系类型,用EA'和EB'表示待处理句子S'中任意两个实体,具体包括:
S71:从句子S'中读取实体对(EA',EB');
S72:生成((EA',EB'),S')对应的“实体对-句子”特征向量序列SeqAttVecA'B'_S';
S73:将“实体对-句子”特征向量序列SeqAttVecA'B'_S'送入卷积神经网络的输入层;
S74:运行卷积神经网络,获取输出层信息;
S75:根据输出层结果确定关系类型;
S76:如果S'中还存在未读取的(EA',EB'),那么转S71,否则转S77;
S77:返回待处理句子S'中存在的关系。
本发明还提供一种基于两阶段筛选和分类的关系抽取装置,包括:
实体对上下文词法特征向量生成部件M1,用于生成实体对的上下文词法特征向量;
关系存在性判定模型训练部件M2,用于训练基于逻辑回归的关系存在性判定模型;
可能存在关系的实体对和句子生成部件M3,用于根据关系存在性判定模型,筛选出可能存在关系的实体对和所在句子;
“实体对-句子”特征向量序列集合生成部件M4,用于生成可能存在关系实体对所在句子对应的特征向量序列集合;
关系类型向量生成部件M5,用于生成关系类型对应的向量;
关系分类模型训练部件M6,用于训练基于卷积神经网络的关系分类模型;
实体对关系类型预测部件M7,用于根据关系分类模型,预测句子中实体对的关系类型。
所述的一种基于两阶段筛选和分类的关系抽取装置中,M1具体包括:
静态词嵌入生成部件M11,用于生成实体对上下文词汇的静态词嵌入序列;
静态词性嵌入生成部件M12,用于生成实体对上下文词汇的静态词性嵌入序列;
序列拼接部件M13,用于拼接实体对的静态词嵌入序列和静态词性嵌入序列。
所述的一种基于两阶段筛选和分类的关系抽取装置中,M2具体包括:
上下文词法特征向量降维部件M21,用于对实体对的上下文词法特征向量进行降维;
实体对关系存在标识生成部件M22,用于生成表示实体对之间关系是否存在的标识;
参数初始化部件M23,用于设置逻辑回归模型的初始化参数;
第一类输入端设置部件M24,用于将所有实体对上下文词法特征向量的降维结果送入逻辑回归模型的输入端;
第一类输出端设置部件M25,用于将所有实体对关系存在标识送入逻辑回归模型的输出端;
第一类训练收敛部件M26,用于根据收敛条件训练逻辑回归模型。
所述的一种基于两阶段筛选和分类的关系抽取装置中,M4包括:
动态词嵌入序列生成部件M41,用于生成句子中所有词汇的动态词嵌入序列;
动态词性嵌入序列生成部件M42,用于生成句子中所有词汇的动态词性嵌入序列;
词汇特征向量生成部件M43,用于生成句子中词汇的特征向量,所述词汇特征向量生成部件M43包括:
动态词法特征生成部件M431,用于拼接动态词嵌入和词性嵌入来生成词汇的动态词法特征;
位置特征生成部件M432,用于生成词汇和实体之间位置关系的特征;
特征拼接部件M433,用于拼接词汇的动态词法特征和位置特征;
特征向量序列生成部件M44,用于生成由句子中所有词汇特征向量拼接而成的序列。
特征向量序列保存部件M45,用于保存特征向量序列到集合中。
所述的一种基于两阶段筛选和分类的关系抽取装置中,M6具体包括:
超参数设置部件M61,用于设置卷积神经网络中不同模块的结构参数;
权重矩阵初始化部件M62,用于设置卷积神经网络的初始权重矩阵;
第二类输入端设置部件M63,用于将所有“实体对-句子”特征向量序列送入卷积神经网络的输入层;
第二类输出端设置部件M64,用于将所有关系类型向量送入卷积神经网络的输出层;
第二类训练收敛部件M65,用于根据收敛条件训练卷积神经网络模型。
本发明的有益之处是:
本发明提供一种基于两阶段筛选和分类的关系抽取方法和装置,采用二分类模型筛选出不可能存在关系的实体对后,再使用多分类模型预测具体关系类型,可以节省大量无关实体的关系类型计算成本,提高关系抽取的效率。在第一阶段,根据实体对上下文生成对应的词法特征向量,并训练基于逻辑回归的关系存在性判定模型,所选模型简单高效,可以快速判定实体之间是否存在关系;在第二阶段,结合词汇和实体对之间的位置特征生成“实体对-句子”特征向量,适宜于描述词汇在不同上下文中的多义性,并训练基于卷积神经网络的关系分类模型,所选模型可以自动选择特征、准确判定关系类型。本发明通过前后两个阶段分别保证速度和精度,能够更好地平衡这两种彼此矛盾的性能指标,提高关系抽取的效果。
附图说明
图1是本发明的基于两阶段筛选和分类的关系抽取方法的步骤流程图。
图2是实体对(EA,EB)的上下文关系示意图;
图3是步骤S1的具体步骤流程图;
图4是步骤S2的具体步骤流程图;
图5是步骤S3的具体步骤流程图;
图6是步骤S4的具体步骤流程图;
图7是步骤S6的具体步骤流程图;
图8是步骤S7的具体步骤流程图;
图9是本发明的基于两阶段筛选和分类的关系抽取装置的结构框图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明提供一种基于两阶段筛选和分类的关系抽取方法,包括以下步骤:
S1:生成实体对的上下文词法特征向量;
S2:训练基于逻辑回归的关系存在性判定模型;
S3:使用模型筛选可能存在关系的实体对和句子;
S4:生成“实体对-句子”特征向量序列集合;
S5:生成关系类型向量;
S6:训练基于卷积神经网络的关系分类模型;
S7:使用模型预测实体对的关系类型。
采用二分类模型筛选出不可能存在关系的实体对后,再使用多分类模型预测具体关系类型,可以节省大量无关实体的关系类型计算成本,提高关系抽取的效率。
在第一阶段,本发明一个实施例根据实体对上下文生成对应的词法特征向量。
用(EA,EB)表示句子S中的任意两个实体EA和EB构成的实体对,WA_Pre和WA_Aft是EA两侧的词汇,WB_Pre和WB_Aft是EB两侧的词汇,WAB_Hyper是EA和EB的上位词,词汇WA_Pre、EA、WA_Aft、WB_Pre、EB、WB_Aft的词性是SA_Pre、SA、SA_Aft、SB_Pre、SB和SB_Aft,上述描述构成实体对(EA,EB)的上下文。
所述步骤S1中具体包括:
S11:生成词汇的静态词嵌入;
本步骤使用预训练模型ModelSta_Emd_W,对实体对(EA,EB)上下文中各个词汇进行向量化,然后进行拼接,得到词汇的静态词嵌入ESta_AB_Cont_W。进一步,所述步骤S11中具体包括:
S111:读取用于静态词嵌入的预训练模型ModelSta_Emd_W;
S112:使用ModelSta_Emd_W计算词汇WA_Pre、EA、WA_Aft、WB_Pre、EB、WB_Aft的静态词嵌入ESta_WA_Pre、ESta_WA、ESta_WA_Aft、ESta_WB_Pre、ESta_WB、ESta_WB_Aft;
S113:拼接词嵌入结果,得到词汇的静态词嵌入ESta_AB_Cont_W=[ESta_WA_Pre,ESta_WA,ESta_WA_Aft,ESta_WB_Pre,ESta_WB,ESta_WB_Aft];
S114:返回词汇的静态词嵌入。
S12:生成词汇的静态词性嵌入;
本步骤首先训练用于词性嵌入的预训练模型ModelSta_Emd_S,然后对实体对(EA,EB)上下文中各个词汇的词性进行向量化,然后进行拼接,得到词汇的静态词性嵌入ESta_AB_Cont_S。
进一步,所述步骤S12中具体包括:
S121:训练用于词性嵌入的预训练模型ModelSta_Emd_S;
S122:加载用于词性嵌入的预训练模型ModelSta_Emd_S;
S123:使用ModelSta_Emd_S计算词性SA_Pre、SA、SA_Aft、SB_Pre、SB、SB_Aft的静态词性嵌入ESta_SA_Pre、ESta_SA、ESta_SA_Aft、ESta_SB_Pre、ESta_SB、ESta_SB_Aft;
S124:拼接词性嵌入结果,得到词汇的静态词性嵌入ESta_AB_Cont_S=[ESta_SA_Pre,ESta_SA,ESta_SA_Aft,ESta_SB_Pre,ESta_SB,ESta_SB_Aft];
S125:返回词汇的静态词性嵌入。
S13:合成上下文词法特征向量;
本步骤拼接静态词嵌入和静态词性嵌入,得到上下文词法特征向量EAB_Cont_WS=[ESta_AB_Cont_W,ESta_AB_Cont_S]。
S14:返回上下文词法特征向量。
在获得上下文词法特征向量后,本发明另一实施例在基于逻辑回归的关系存在性判定模型的基础上,可以快速判定实体之间是否存在关系,其中步骤S2首先对实体对的上下文词法特征向量EAB_Cont_WS进行降维,然后把降维结果EAB_Cont_WS_Reduce和关系存在性标识送入逻辑回归模型,通过训练得到关系存在性判定模型。进一步,所述步骤S2中具体包括:
S21:对上下文词法特征向量进行降维;
本步骤采用主成分分析法对上下文词法特征向量EAB_Cont_WS进行降维,得到降维结果EAB_Cont_WS_Reduce。
S22:生成实体对关系存在标识;
用RExt(EA,EB)表示实体EA和EB之间是否存在关系,如果二者存在关系,那么RExt(EA,EB)=1,否则RExt(EA,EB)=0。
S23:初始化逻辑回归模型的参数;
S24:将所有实体对上下文词法特征向量的降维结果送入逻辑回归模型的输入端;
S25:将所有实体对关系存在标识送入逻辑回归模型的输出端;
S26:根据收敛条件训练逻辑回归模型;
S27:返回逻辑回归模型的参数。
步骤S3使用关系存在性判定模型处理每个句子中的实体对,找出可能存在关系的实体对和对应句子。用S1、S2、……、Sm表示待处理句子,进一步,所述步骤S3中具体包括:
S31:初始化句子编号i=1,可能存在关系的实体对和句子集合DataSetE_S=φ;
S32:读取句子Si;
S33:从句子中读取实体对(EA,EB);
S34:生成实体对(EA,EB)的上下文词法特征向量EAB_Cont_WS;
S35:对上下文词法特征向量EAB_Cont_WS进行降维,得到降维结果EAB_Cont_WS_Reduce;
S36:把降维结果EAB_Cont_WS_Reduce送入关系存在性判定模型的输入端;
S37:从关系存在性判定模型的输出端获取判定结果RExt(EA,EB);
S38:如果RExt(EA,EB)=1,那么转S39,否则转S3A;
S39:将((EA,EB),Si)添加到DataSetE_S;
S3A:如果句子中还存在未读取的实体对(EA,EB),那么转S33,否则转S3B;
S3B:i=i+1;
S3C:如果i<=m,那么转S32,否则转S3D;
S3D:返回可能存在关系的实体对和句子集合DataSetE_S。
上述实施例具体完成第一阶段的筛选后,本发明另一实施例具体说明了第二阶段根据词汇动态词嵌入和词性嵌入生成动态词法特征,结合词汇和实体对之间的位置特征生成“实体对-句子”特征向量,适宜于描述词汇在不同上下文中的多义性,并训练基于卷积神经网络的关系分类模型,所选模型可以自动选择特征、准确判定关系类型。用((EA,EB),S)表示DataSetE_S中的任意元素,用W1、W2、……、Wn表示待处理句子中的词汇,本步骤生成句子S中每个词汇的动态词嵌入和词性嵌入,以及每个词汇与实体EA和EB之间的位置特征向量,通过拼接上述特征得到每个词汇的特征向量,按照词汇在句子中的顺序构成“实体对-句子”特征向量序列,进一步,所述步骤S4中具体包括:
S41:从DataSetE_S中读取((EA,EB),S);
S42:初始化((EA,EB),S)对应的“实体对-句子”特征向量序列SeqAttVecAB_S=φ,词汇编号j=1;
S43:生成句子S的动态词嵌入序列SeqDymWordEmdS;
本步骤首先生成句子S的静态词嵌入序列,然后将其送入动态词嵌入模型的输入层,从模型输出层获取句子S的动态词嵌入序列,其序列长度和静态词嵌入序列相同。进一步,所述步骤S43中具体包括:
S431:读取用于静态词嵌入的预训练模型ModelSta_Emd_W;;
S432:生成句子S的静态词嵌入序列SeqStaWordEmdS;
本步骤使用ModelSta_Emd_W生成句子S中每个单词的静态词嵌入,然后按照它们在句子中的顺序进行拼接,得到句子S的静态词嵌入序列;
S433:读取动态词嵌入生成模型ModelDym_Emd_W;
S434:将SeqStaWordEmdS送入ModelDym_Emd_W的输入层;
S435:获取ModelDym_Emd_W输出层的运行结果;
S436:保存运行结果到动态词嵌入序列SeqDymWordEmdS;
S437:返回所生成的动态词嵌入序列。
S44:生成句子S的动态词性嵌入序列SeqDymPosEmdS;
本步骤首先生成句子S的静态词性嵌入序列,然后训练动态词性嵌入生成模型,随后将所生成的静态词性嵌入序列送入动态词性嵌入模型的输入层,从模型输出层获取句子S的动态词性嵌入序列,其序列长度和静态词性嵌入序列相同。进一步,所述步骤S44中具体包括:
S441:读取用于静态词性嵌入的预训练模型ModelSta_Emd_S;;
S442:生成句子S的静态词性嵌入序列SeqStaPosEmdS;
本步骤使用ModelSta_Emd_S生成句子S中每个单词的静态词性嵌入,然后按照它们在句子中的顺序进行拼接,得到句子S的静态词性嵌入序列。
S443:训练动态词性嵌入生成模型ModelDym_Emd_S;
S444:加载动态词性嵌入生成模型ModelDym_Emd_S;
S445:将SeqStaPosEmdS送入ModelDym_Emd_S的输入层;
S446:获取ModelDym_Emd_S输出层的运行结果;
S447:保存运行结果到动态词性嵌入序列SeqDymPosEmdS;
S448:返回所生成的动态词性嵌入序列。
S45:从句子S中读取Wj;
S46:生成词汇Wj的特征向量
本步骤生成词汇Wj的动态词法特征,以及词汇Wj和实体对(EA,EB)之间的位置特征,然后进行拼接,得到词汇Wj的特征向量。进一步,所述步骤S46中具体包括:
S461:生成词汇Wj的动态词法特征
本步骤生成词汇Wj的动态词嵌入和词性嵌入,然后进行拼接,得到词汇Wj的动态词法特征。进一步,所述步骤S461中具体包括:
S4611:词汇Wj的动态词嵌入
S4612:词汇Wj的动态词性嵌入
S4613:拼接动态词嵌入和词性嵌入,得到词汇Wj的动态词法特征
S4614:返回所生成动态词法特征。
S462:生成词汇Wj和实体对(EA,EB)之间的位置特征
本步骤首先计算词汇Wj与实体EA、EB的相对距离,然后进行One-Hot编码,并通过已有的向量化模型转换为稠密向量,随后进行拼接,得到词汇Wj和实体对(EA,EB)之间的位置特征。用SN(EA)、SN(EB)表示实体EA、EB在句子S中的编号,进一步,所述步骤S462中具体包括:
S4621:词汇Wj和实体EA的相对距离DisWj_A=SN(EA)-j;
S4622:词汇Wj和实体EB的相对距离DisWj_B=SN(EB)-j;
S4623:对DisWj_A和DisWj_B进行One-Hot编码,得到PosWj_A和PosWj_B;
S4624:生成数字向量化矩阵UNum;
本步骤首先使用ModelSta_Emd_W得到数字1~N的词嵌入,N不小于句子S中词汇总数,每条词嵌入是维度为d的向量。然后构造规模为N*d的矩阵UNum,该矩阵第j行表示数字j的词嵌入。
S4625:PosWj_A对应的稠密向量
S4626:PosWj_B对应的稠密向量
S4627:拼接所生成的稠密向量,得到词汇Wj和实体对(EA,EB)之间的位置特征
S4628:返回所生成的位置特征。
S463:拼接动态词法特征和位置特征,得到词汇Wj的特征向量
S464:返回所生成的特征向量。
S47:将添加到SeqAttVecAB_S;
S48:j=j+1;
S49:如果j<=n,那么转S45,否则转S4A;
S4A:保存SeqAttVecAB_S到“实体对-句子”特征向量序列集合DataSetSeq_Att_Vec;
S4B:如果DataSetE_S中还存在未读取的((EA,EB),S),那么转S41,否则转S4C;
S4C:返回所生成的“实体对-句子”特征向量序列集合DataSetSeq_Att_Vec。
步骤S5用Relk表示实体EA和EB之间的关系,k∈[1,T]。本步骤采用One-Hot编码表示实体之间的关系类型,即用长度为T的向量RelVeck表示关系Relk,在RelVeck中,除了第k位是1外,其它位均为0,
步骤S6首先设置卷积神经网络的超参数,初始化对应的权重矩阵,然后把DataSetE_S元素((EA,EB),S)对应的“实体对-句子”特征向量序列和关系类型向量送入卷积神经网络,通过训练得到关系分类模型,具体包括:
S61:设置卷积神经网络的超参数;
本步骤设置输入层、卷积层、池化层、全连接层、输出层等模块的结构参数。
S62:初始化不同模块的权重矩阵;
S63:将所有“实体对-句子”特征向量序列送入卷积神经网络的输入层;
S64:将所有关系类型向量送入卷积神经网络的输出层;
S65:根据收敛条件训练卷积神经网络模型;
S66:返回卷积神经网络的权重矩阵。
步骤S7使用已训练卷积神经网络预测待处理句子中实体对的关系类型,用EA'和EB'表示待处理句子S'中任意两个实体,进一步,具体包括:
S71:从句子S'中读取实体对(EA',EB');
S72:生成((EA',EB'),S')对应的“实体对-句子”特征向量序列SeqAttVecA'B'_S';
S73:将“实体对-句子”特征向量序列SeqAttVecA'B'_S'送入卷积神经网络的输入层;
S74:运行卷积神经网络,获取输出层信息;
S75:根据输出层结果确定关系类型;
S76:如果S'中还存在未读取的(EA',EB'),那么转S71,否则转S77;
S77:返回待处理句子S'中存在的关系,完成抽取。
在上述较佳实施例的基础上,以具体应用中的一个实施例,再次详细说明本发明方法的应用。
本实施例涉及操作均在Python环境下执行。
用LabeledRelSet表示关系已知的数据集,UnLabeledRelSet表示关系未知的数据集,使用本发明中的方法处理LabeledRelSet,得到关系存在性判定模型和关系分类模型,用于提取UnLabeledRelSet中存在的关系。
在数据集中,每行表示句子中实体对之间的一种关系,如果句子中存在多个关系,那么就用多行表示,格式如下:
实体1实体2关系句子。
例如:YF FMX师生这些年从运动员到普通人的转变如此成功,YF一边劝慰FMX,说没有当年的苛刻也不可能成就自己,一边笑着邀请YF到X地玩。
上述示例表示实体“YF”和“FMX”之间的关系类型是“师生”。
数据集中存在12种关系:上下级、合作、好友、同门、师生、情侣、夫妻、父母、兄弟姐妹、祖孙、亲戚、其它。
数据集中仅包括实体和关系,缺少分词和词性信息,所以在使用本发明的方法之前,需要对数据集进行预处理。首先去除空格,然后根据停用词表剔除停用词,最后使用jieba.posseg.cut函数进行分词和词性标注。
执行S111:使用glove.Glove.load函数加载基于Glove的静态词嵌入模型ModelSta_Emd_W;
执行S112:使用glove.Glove.word_vectors函数获取词汇WA_Pre、EA、WA_Aft、WB_Pre、EB、WB_Aft的静态词嵌入ESta_WA_Pre、ESta_WA、ESta_WA_Aft、ESta_WB_Pre、ESta_WB、ESta_WB_Aft,每个词嵌入的维度是100;
执行S113:通过拼接各个词嵌入,得到上下文词汇的静态词嵌入ESta_AB_Cont_W,维度是600;
执行S121:根据词性标注构造语料,然后使用glove.Glove.fit函数训练,得到静态词性嵌入模型ModelSta_Emd_S;
执行S123:使用glove.Glove.word_vectors函数获取词性SA_Pre、SA、SA_Aft、SB_Pre、SB、SB_Aft的静态词性嵌入ESta_SA_Pre、ESta_SA、ESta_SA_Aft、ESta_SB_Pre、ESta_SB、ESta_SB_Aft,每个词性嵌入的维度是100;
执行S124:通过拼接各个词性嵌入,得到上下文词汇的静态词性嵌入ESta_AB_Cont_S,维度是600;
执行S13:通过拼接静态词嵌入和静态词性嵌入,得到上下文词法特征向量EAB_Cont_WS,维度是1200;
执行S21:使用sklearn.decomposition.PCA.transform函数对EAB_Cont_WS进行降维,得到降维结果EAB_Cont_WS_Reduce,维度是100;
执行S23:使用sklearn.linear_model.logistic.LogisticRegression创建基于逻辑回归的关系存在性判定模型,主要参数设置如下:
惩罚项:penalty='l2';
迭代停止条件:tol=0.0001,当迭代前后的函数差值小于等于0.0001时结束;
正则化系数:C=1;
逻辑回归模型是否有常数项:fit_intercept='true',带有常数项;
不同类型样本的权重:class_weight='balanced',根据训练样本量计算权重;
损失函数的优化方法:solver='sag',选择随机平均梯度下降法。
根据上述参数创建LogisticRegression对象RelExtJudger,如下:
RelExtJudger=LogisticRegression(penalty='l2',tol=0.0001,C=1,fit_intercept='true',class_weight='balanced',solver='sag');
执行S24-S26:分别用ContPosFeatVecSet_Labeled和RelExtFlagSet_Labeled表示LabeledRelSet中实体对上下文词法特征向量集合和实体对关系存在标识集合,使用RelExtJudger对象的fit函数训练模型,如下:
RelExtJudger.fit(ContPosFeatVecSet_Labeled,RelExtFlagSet_Labeled);
执行S3:用ContPosFeatVecSet_UnLabeled表示UnLabeledRelSet中实体对上下文词法特征向量集合,使用LogisticRegression对象的predict函数预测判定结果:
RelExtFlagSet_UnLabeled=RelExtJudger.predict(ContPosFeatVecSet_UnLabeled);
所得到的RelExtFlagSet_UnLabeled是UnLabeledRelSet中实体对关系存在标识集合,元素取值为1表示对应实体对存在关系。
采用上述方法,找出句子Si中存在关系的实体对(EA,EB),并将所有满足条件的((EA,EB),Si)添加到DataSetE_S中。
执行S43:使用tensorflow_hub.Module()函数加载ELMO词嵌入模型,将句子S的词汇序列输入该模型,得到动态词嵌入序列SeqDymWordEmdS。
执行S44:首先,加载静态词性嵌入模型ModelSta_Emd_S,使用glove.Glove.word_vectors获取句子S中各个词汇的词性嵌入,得到静态词性嵌入序列SeqStaPosEmdS。
然后,使用keras.layers定义ELMO模型的结构,结合keras.models.Model创建ELMO模型对象model,并使用model对象的compile函数编译模型,主要参数如下:
损失函数:loss='binary_crossentropy',选择对数损失函数;
优化器:optimizer='adam',利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率;
评测指标:metrics=['accuracy']。
根据上述参数编译ELMO模型对象model,如下:
model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])
随后,使用model对象的fit函数训练模型,得到动态词性嵌入模型ModelDym_Emd_W。
最后,使用keras.layers.Lambda函数处理句子S的静态词性嵌入序列SeqStaPosEmdS,得到动态词性嵌入序列SeqDymPosEmdS,如下:
SeqDymPosEmdS=layers.Lambda(SeqStaPosEmdS,output_shape=(100,))
所得结果中,每个词汇对应的词向量长度是100。
执行S461:对每个词汇Wj,从动态词嵌入序列中提取对应的动态词嵌入从动态词性嵌入序列中提取对应的动态词性嵌入/>维度均为100;拼接二者后,得到词汇的动态词法特征/>维度为200。
执行S462:首先,使用glove.Glove.load函数加载基于Glove的静态词嵌入模型ModelSta_Emd_W,用于构造N*d矩阵UNum,该矩阵的第j行表示数字j的词嵌入,对应维度d=100;然后,计算词汇和实体EA、EB的相对距离DisWj_A和DisWj_B,并进行One-Hot编码,得到PosWj_A和PosWj_B;随后,根据UNum计算PosWj_A和PosWj_B的稠密向量 最后,拼接和/>得到每个词汇实体对之间的位置特征/>维度是200。
执行S463:拼接每个词汇的动态词法特征和位置特征,得到词汇的特征向量维度是400。
执行S47:不断完善((EA,EB),S)对应的“实体对-句子”特征向量序列SeqAttVecAB_S。
执行S4A:不断完善“实体对-句子”特征向量序列集合DataSetSeq_Att_Vec。
执行S5:对12种关系类型进行ID编码,如下(括号内的数字是对应的ID编码):
上下级(0)、合作(1)、好友(2)、同门(3)、师生(4)、情侣(5)、夫妻(6)、父母(7)、兄弟姐妹(8)、祖孙(9)、亲戚(10)、其它(11)。
采用One-Hot编码将ID编码向量化,每个ID编码对应向量的维度是12,对应位的分量值是1,其余位的分量值均为0。
例如:关系“兄弟姐妹”的ID编码是8,其对应向量是[0,0,0,0,0,0,0,0,1,0,0,0]。
执行S61:首先,创建keras.layers.Embedding对象定义输入层序列,序列最大长度是50,每个元素的维度是400。
然后,采用keras.layers.Conv1D创建卷积层不同尺寸的(Size=2、3、4)卷积核,每种尺寸卷积核的个数均是256。采用keras.layers.MaxPooling1D对不同尺寸卷积核进行最大池化,池化窗口尺寸分别是49、48、47。
随后,使用keras.backend.concatenate合并不同尺寸卷积核的输出向量,使用keras.backend.flatten展平合并后的输出向量,使用keras.backend.dropout按照给定概率(0.2)丢弃展平结果的分量,所得结果的维度是768。
最后,使用keras.layers.Dense定义全连接层,输入层神经元个数是768,输出层神经元个数是12,表示12种关系类型,激活函数是softmax。
执行S63-S65:采用keras.models.Model定义和训练CNN模型,使用model对象的compile函数编译模型,主要参数如下:
损失函数:loss='hinge',适用于最大化间隔分类;
优化器:optimizer='sgd',选择随机梯度下降;
评测指标:metrics=['accuracy']。
根据上述参数编译ELMO模型对象model,如下:
model.compile(loss='hinge',optimizer='sgd',metrics=['accuracy'])
分别用FeatVecSeqSet_Labeled和RelTypeSet_Labeled表示LabeledRelSet中“实体对-句子”特征向量序列集合和关系类型向量集合,使用model对象的fit函数训练模型,如下:
model.fit(FeatVecSeqSet_Labeled,RelTypeSet_Labeled,batch_size=8000,epochs=10)
设“实体对-句子”特征向量序列个数为G,上述命令表示:总计迭代10轮,每轮迭代中更新梯度|G/8000|+1次,每次选择8000个样本进行训练。
执行S7:用FeatVecSeqSet_UnLabeled表示LabeledRelSet中“实体对-句子”特征向量序列集合,使用keras.models.Model对象的predict函数预测判定结果:
RelTypeSet_UnLabeled=model.predict(FeatVecSeqSet_UnLabeled);
所得到的RelTypeSet_UnLabeled是UnLabeledRelSet中关系类型向量集合,元素格式为One-Hot编码,分量值为1的维度编号是关系类型的ID编码,根据该编码可以确定对应的关系类型,完成抽取。
同时本发明还提供一种基于两阶段筛选和分类的关系抽取装置,包括:
实体对上下文词法特征向量生成部件M1,用于生成实体对的上下文词法特征向量;
关系存在性判定模型训练部件M2,用于训练基于逻辑回归的关系存在性判定模型;
可能存在关系的实体对和句子生成部件M3,用于根据关系存在性判定模型,筛选出可能存在关系的实体对和所在句子;
“实体对-句子”特征向量序列集合生成部件M4,用于生成可能存在关系实体对所在句子对应的特征向量序列集合;
关系类型向量生成部件M5,用于生成关系类型对应的向量;
关系分类模型训练部件M6,用于训练基于卷积神经网络的关系分类模型;
实体对关系类型预测部件M7,用于根据关系分类模型,预测句子中实体对的关系类型。
上述装置内的各部件之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
需要说明的是,在上述各流程和装置结构图中,不是所有的步骤和部件都是必须的,可以根据实际的需要忽略某些步骤或部件。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些部件可能由同一物理实体实现,或者,有些部件可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
Claims (9)
1.一种基于两阶段筛选和分类的关系抽取方法,其特征是包括以下步骤:
S1:生成实体对的上下文词法特征向量;
S2:训练基于逻辑回归的关系存在性判定模型,具体包括:
S21:对上下文词法特征向量进行降维,
S22:生成实体对关系存在标识,
S23:初始化逻辑回归模型的参数,
S24:将所有实体对上下文词法特征向量的降维结果送入逻辑回归模型的输入端,
S25:将所有实体对关系存在标识送入逻辑回归模型的输出端,
S26:根据收敛条件训练逻辑回归模型,
S27:返回逻辑回归模型的参数;
S3:使用模型筛选可能存在关系的实体对和句子;
S4:生成“实体对-句子”特征向量序列集合;
S5:生成关系类型向量;
S6:训练基于卷积神经网络的关系分类模型;
S7:使用关系分类模型预测实体对的关系类型。
2.根据权利要求1所述的一种基于两阶段筛选和分类的关系抽取方法,其特征是所述步骤S1中,具体包括:
S11:生成词汇的静态词嵌入;
S12:生成词汇的静态词性嵌入;
S13:合成上下文词法特征向量;
S14:返回上下文词法特征向量。
3.根据权利要求2所述的一种基于两阶段筛选和分类的关系抽取方法,其特征是所述步骤S11中,以下描述:用(EA,EB)表示句子S中的任意两个实体EA和EB构成的实体对,WA_Pre和WA_Aft是EA两侧的词汇,WB_Pre和WB_Aft是EB两侧的词汇,WAB_Hyper是EA和EB的上位词,词汇WA_Pre、EA、WA_Aft、WB_Pre、EB、WB_Aft的词性是SA_Pre、SA、SA_Aft、SB_Pre、SB和SB_Aft,构成实体对(EA,EB)的上下文;
S11具体包括:
S111:读取用于静态词嵌入的预训练模型ModelSta_Emd_W;
S112:使用ModelSta_Emd_W计算词汇WA_Pre、EA、WA_Aft、WB_Pre、EB、WB_Aft的静态词嵌入ESta_WA_Pre、ESta_WA、ESta_WA_Aft、ESta_WB_Pre、ESta_WB、ESta_WB_Aft;
S113:拼接词嵌入结果,得到词汇的静态词嵌入ESta_AB_Cont_W=[ESta_WA_Pre,ESta_WA,ESta_WA_Aft,ESta_WB_Pre,ESta_WB,ESta_WB_Aft];
S114:返回词汇的静态词嵌入;
所述步骤S12中,具体包括:
S121:训练用于词性嵌入的预训练模型ModelSta_Emd_S;
S122:加载用于词性嵌入的预训练模型ModelSta_Emd_S;
S123:使用ModelSta_Emd_S计算词性SA_Pre、SA、SA_Aft、SB_Pre、SB、SB_Aft的静态词性嵌入ESta_SA_Pre、ESta_SA、ESta_SA_Aft、ESta_SB_Pre、ESta_SB、ESta_SB_Aft;
S124:拼接词性嵌入结果,得到词汇的静态词性嵌入ESta_AB_Cont_S=[ESta_SA_Pre,ESta_SA,ESta_SA_Aft,ESta_SB_Pre,ESta_SB,ESta_SB_Aft];
S125:返回词汇的静态词性嵌入。
4.根据权利要求1所述的一种基于两阶段筛选和分类的关系抽取方法,其特征是用S1、S2、……、Sm表示待处理句子,所述步骤S3中,具体包括:
S31:初始化句子编号i=1,可能存在关系的实体对和句子集合DataSetE_S=φ;
S32:读取句子Si;
S33:从句子中读取实体对(EA,EB);
S34:生成实体对(EA,EB)的上下文词法特征向量EAB_Cont_WS;
S35:对上下文词法特征向量EAB_Cont_WS进行降维,得到降维结果EAB_Cont_WS_Reduce;
S36:把降维结果EAB_Cont_WS_Reduce送入关系存在性判定模型的输入端;
S37:从关系存在性判定模型的输出端获取判定结果RExt(EA,EB);
S38:如果RExt(EA,EB)=1,那么转至S39,否则转至S3A;
S39:将实体对和句子((EA,EB),Si)添加到DataSetE_S;
S3A:如果句子中还存在未读取的实体对(EA,EB),那么转至S33,否则转至S3B;
S3B:i=i+1;
S3C:如果i<=m,那么转至S32,否则转S3D;
S3D:返回可能存在关系的实体对和句子集合DataSetE_S。
5.根据权利要求1或4所述的一种基于两阶段筛选和分类的关系抽取方法,其特征是用((EA,EB),S)表示DataSetE_S中的任意元素,用W1、W2、……、Wn表示待处理句子中的词汇,所述步骤S4中,具体包括:
S41:从DataSetE_S中读取((EA,EB),S);
S42:初始化((EA,EB),S)对应的“实体对-句子”特征向量序列SeqAttVecAB_S=φ,词汇编号j=1;
S43:生成句子S的动态词嵌入序列SeqDymWordEmdS;
S44:生成句子S的动态词性嵌入序列SeqDymPosEmdS;
S45:从句子S中读取Wj;
S46:生成词汇Wj的特征向量
S47:将添加到SeqAttVecAB_S;
S48:j=j+1;
S49:如果j<=n,那么转至S45,否则转至S4A;
S4A:保存SeqAttVecAB_S到“实体对-句子”特征向量序列集合DataSetSeq_Att_Vec;
S4B:如果DataSetE_S中还存在未读取的((EA,EB),S),那么转至S41,否则转至S4C;
S4C:返回所生成的“实体对-句子”特征向量序列集合DataSetSeq_Att_Vec。
6.根据权利要求1所述的一种基于两阶段筛选和分类的关系抽取方法,其特征是所述步骤S5中,采用One-Hot编码表示实体之间的关系类型向量,即用长度为T的向量RelVeck表示实体EA和EB之间的关系Relk,k∈[1,T],在RelVeck中,除了第k位是1外,其它位均为0。
7.根据权利要求1所述的一种基于两阶段筛选和分类的关系抽取方法,其特征是所述步骤S6中,具体包括:
S61:设置卷积神经网络的超参数;
S62:初始化不同模块的权重矩阵;
S63:将所有“实体对-句子”特征向量序列送入卷积神经网络的输入层;
S64:将所有关系类型向量送入卷积神经网络的输出层;
S65:根据收敛条件训练卷积神经网络模型;
S66:返回卷积神经网络的权重矩阵。
8.根据权利要求1所述的一种基于两阶段筛选和分类的关系抽取方法,其特征是用EA'和EB'表示待处理句子S'中任意两个实体,所述步骤S7中,具体包括:
S71:从句子S'中读取实体对(EA',EB');
S72:生成((EA',EB'),S')对应的“实体对-句子”特征向量序列SeqAttVecA'B'_S';
S73:将“实体对-句子”特征向量序列SeqAttVecA'B'_S'送入卷积神经网络的输入层;
S74:运行卷积神经网络,获取输出层信息;
S75:根据输出层结果确定关系类型;
S76:如果S'中还存在未读取的(EA',EB'),那么转S71,否则转S77;
S77:返回待处理句子S'中存在的关系。
9.一种基于两阶段筛选和分类的关系抽取装置,其特征是包括:
实体对上下文词法特征向量生成部件M1,用于生成实体对的上下文词法特征向量;
关系存在性判定模型训练部件M2,用于训练基于逻辑回归的关系存在性判定模型,具体包括:
S21:对上下文词法特征向量进行降维,
S22:生成实体对关系存在标识,
S23:初始化逻辑回归模型的参数,
S24:将所有实体对上下文词法特征向量的降维结果送入逻辑回归模型的输入端,
S25:将所有实体对关系存在标识送入逻辑回归模型的输出端,
S26:根据收敛条件训练逻辑回归模型,
S27:返回逻辑回归模型的参数;
可能存在关系的实体对和句子生成部件M3,用于根据关系存在性判定模型,筛选出可能存在关系的实体对和所在句子;
“实体对-句子”特征向量序列集合生成部件M4,用于生成可能存在关系实体对所在句子对应的特征向量序列集合;
关系类型向量生成部件M5,用于生成关系类型对应的向量;
关系分类模型训练部件M6,用于训练基于卷积神经网络的关系分类模型;
实体对关系类型预测部件M7,用于根据关系分类模型,预测句子中实体对的关系类型。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010903706 | 2020-09-01 | ||
CN2020109037064 | 2020-09-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112329440A CN112329440A (zh) | 2021-02-05 |
CN112329440B true CN112329440B (zh) | 2023-07-25 |
Family
ID=74302346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011429449.1A Active CN112329440B (zh) | 2020-09-01 | 2020-12-09 | 一种基于两阶段筛选和分类的关系抽取方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112329440B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116756250A (zh) * | 2023-06-06 | 2023-09-15 | 电子科技大学 | 故障相关数据的处理方法、装置、计算机设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110298044A (zh) * | 2019-07-09 | 2019-10-01 | 广东工业大学 | 一种实体关系识别方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220237A (zh) * | 2017-05-24 | 2017-09-29 | 南京大学 | 一种基于卷积神经网络的企业实体关系抽取的方法 |
CN107798136B (zh) * | 2017-11-23 | 2020-12-01 | 北京百度网讯科技有限公司 | 基于深度学习的实体关系抽取方法、装置及服务器 |
CN109165385B (zh) * | 2018-08-29 | 2022-08-09 | 中国人民解放军国防科技大学 | 一种基于实体关系联合抽取模型的多三元组抽取方法 |
CN109635108B (zh) * | 2018-11-22 | 2020-02-18 | 华东师范大学 | 一种基于人机交互的远程监督实体关系抽取方法 |
KR102540774B1 (ko) * | 2018-12-04 | 2023-06-08 | 한국전자통신연구원 | 서브워드 임베딩 및 스킵서트 기반 문장 임베딩 방법 및 장치 |
CN110032649B (zh) * | 2019-04-12 | 2021-10-01 | 北京科技大学 | 一种中医文献的实体间关系抽取方法及装置 |
CN110377903B (zh) * | 2019-06-24 | 2020-08-14 | 浙江大学 | 一种句子级实体和关系联合抽取方法 |
CN111177394B (zh) * | 2020-01-03 | 2022-04-29 | 浙江大学 | 基于句法注意力神经网络的知识图谱关系数据分类方法 |
-
2020
- 2020-12-09 CN CN202011429449.1A patent/CN112329440B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110298044A (zh) * | 2019-07-09 | 2019-10-01 | 广东工业大学 | 一种实体关系识别方法 |
Non-Patent Citations (1)
Title |
---|
基于BiLSTM并结合自注意力机制和句法信息的隐式篇章关系分类;凡子威;张民;李正华;;计算机科学(05);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112329440A (zh) | 2021-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ren et al. | Cotype: Joint extraction of typed entities and relations with knowledge bases | |
CN106599032B (zh) | 一种结合稀疏编码和结构感知机的文本事件抽取方法 | |
CN108932342A (zh) | 一种语义匹配的方法、模型的学习方法及服务器 | |
CN111737474A (zh) | 业务模型的训练和确定文本分类类别的方法及装置 | |
CN111274817A (zh) | 一种基于自然语言处理技术的智能化软件成本度量方法 | |
CN113254507B (zh) | 一种数据资产目录智能构建盘点方法 | |
CN111222318A (zh) | 基于双通道双向lstm-crf网络的触发词识别方法 | |
Ciaburro et al. | Python Machine Learning Cookbook: Over 100 recipes to progress from smart data analytics to deep learning using real-world datasets | |
CN113705238A (zh) | 基于bert和方面特征定位模型的方面级情感分析方法及模型 | |
CN114722835A (zh) | 基于lda和bert融合改进模型的文本情感识别方法 | |
Conrad et al. | ELM: An extended logic matching method on record linkage analysis of disparate databases for profiling data mining | |
CN114049505B (zh) | 一种商品的匹配与识别方法、装置、设备和介质 | |
CN115146062A (zh) | 融合专家推荐与文本聚类的智能事件分析方法和系统 | |
Somogyi | The Application of Artificial Intelligence | |
CN112329440B (zh) | 一种基于两阶段筛选和分类的关系抽取方法和装置 | |
CN114942974A (zh) | 电商平台商品用户评价情感倾向分类方法 | |
CN113298559A (zh) | 一种商品适用人群的推荐方法、系统、装置及存储介质 | |
CN116127097A (zh) | 一种结构化文本关系抽取方法、装置、设备 | |
CN113095087B (zh) | 一种基于图卷积神经网络的中文词义消歧方法 | |
Bironneau et al. | Machine learning with go quick start guide: Hands-on techniques for building supervised and unsupervised machine learning Workflows | |
CN113627192A (zh) | 基于两层卷积神经网络的关系抽取方法和装置 | |
CN111506776B (zh) | 数据标注方法以及相关装置 | |
Nagesh et al. | An exploration of three lightly-supervised representation learning approaches for named entity classification | |
CN107402914B (zh) | 自然语言深度学习系统和方法 | |
CN116644754B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |