基于卷积神经网络的实体关系抽取(SemEval-2010 Task-8数据集)

摘要

关系抽取旨在识别命名实体之间的语义关系.作为自然语言处理中信息抽取的重要子任务,是构建知识图谱,实现语义搜索,建立智能问答系统等应用领域必不可少的关键技术,具有极其重要的研究价值.关系抽取研究的热点经历了知识工程,传统机器学习,深度学习三个不同阶段.本文研究了卷积神经网络应用于实体关系抽取的应用,采用了SemEval-2010 Task 8数据集作为实验测试数据,使用GloVe对句子进行词向量表示,接着获取两个实体之间的距离特征共同作为Embedding层输入,通过拼接的方式将两种特征融合,最后用softmax分类器得出所属关系的类型。实验结果可得其宏F值为64%。

数据集描述

示例数据

基于卷积神经网络的实体关系抽取(SemEval-2010 Task-8数据集)

句子:The inside WTC was caused by exploding .
关系:Cause-Effect(e2,e1)

训练集:共含8000条数据

typenumberrateOther141017.63%Cause-Effect100312.54%Component-Whole94111.76%Entity-Destination84510.56%Product-Producer7178.96%Entity-Origin7168.95%Member-Collection6908.63%Message-Topic6347.92%Content-Container5406.75%Instrument-Agency5046.30%

测试集:共含2717条数据

typenumberrateOther45416.71%Cause-Effect32812.07%Component-Whole31211.48%Entity-Destination29210.75%Message-Topic2619.61%Entity-Origin2589.50%Member-Collection2338.58%Product-Producer2318.50%Content-Container1927.07%Instrument-Agency1565.74%

由于两个实体具有方向性,可以认为(e1,e2)和(e2,e1)不相同,因此,对此数据集进行细致划分可以分为2*9+1=19类。

模型设计与实现

模型设计:

基于卷积神经网络的实体关系抽取(SemEval-2010 Task-8数据集)

代码实现:

token_input = Input(shape=(config.MAX_TOKEN_LENGTH,), dtype='int32', name="token_input")
tokens = Embedding(embeddings.shape[0], embeddings.shape[1], weights=[embeddings], trainable=False)(token_input)

distance1_input = Input(shape=(config.MAX_TOKEN_LENGTH,), dtype='int32', name='distance1_input')
distance1 = Embedding(config.MAX_TOKEN_LENGTH, config.POSITION_DIM)(distance1_input)

distance2_input = Input(shape=(config.MAX_TOKEN_LENGTH,), dtype='int32', name='distance2_input')
distance2 = Embedding(config.MAX_TOKEN_LENGTH, config.POSITION_DIM)(distance2_input)

output = concatenate([tokens, distance1, distance2])

output = Convolution1D(filters=config.FILTER_NUMBER,
                        kernel_size=config.FILTER_SIZE,
                        padding='same',
                        activation='tanh',
                        strides=1)(output)
output = GlobalMaxPooling1D()(output)
output = Dropout(config.DROP_VAL)(output)
output = Dense(config.HIDDEN_LAYER1, activation='tanh')(output)
output = Dropout(config.DROP_VAL)(output)
output = Dense(config.HIDDEN_LAYER2, activation='tanh')(output)
output = Dropout(config.DROP_VAL)(output)
output = Dense(out_number, activation='softmax')(output)

model = Model(inputs=[token_input, distance1_input, distance2_input], outputs=[output])
model.compile(loss='sparse_categorical_crossentropy',
                optimizer='adam',
                metrics=['acc'])

基于卷积神经网络的实体关系抽取(SemEval-2010 Task-8数据集)

结论

我们的实验结果表明:(1)采用卷积神经网络和GloVe词嵌入特征可以获得不错的关系分类准确率;(2)使用位置特征可以增强实体关系抽取的准确率。下一步将测试多种模型在该数据集上的表现性能。

参考文献

  • Zeng D, Liu K, Lai S, et al. Relation Classification via Convolutional Deep Neural Network[C]. international conference on computational linguistics, 2014: 2335-2344.

  • Zeng D, Liu K, Chen Y, et al. Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks[C]. empirical methods in natural language processing, 2015: 1753-1762.

  • Santos C N, Xiang B, Zhou B, et al. Classifying Relations by Ranking with Convolutional Neural Networks[J]. international joint conference on natural language processing, 2015: 626-634.

Original: https://blog.csdn.net/weixin_40651515/article/details/112456125
Author: 就是求关注
Title: 基于卷积神经网络的实体关系抽取(SemEval-2010 Task-8数据集)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/595240/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球