王 博,王 侃,王成刚,刘 然,刘威鹏,黄慧荣
(1.北京信息技术研究所,北京 100093;2.中国西南电子技术研究所,成都 610036;3.西北工业大学 网络空间安全学院,西安 710129)
由于互联网普及度提高和互联网媒体平台的不断发展,新闻事件可以快速地通过各种媒体平台被网络用户获取。除了用户量大、传播速度快的特点外,互联网新闻文本在信息抽取和文本数据结构化方面还面临信息内容的海量性、内容多样性和新鲜词汇层出不穷的挑战。
随着互联网新闻平台和自媒体的发展,人们从海量的互联网新闻数据中获取有用信息和针对互联网舆情管控的难度也越来越大,在此背景下仅仅对关键词搜索已经不能满足人们的很多需求;为了更方便地从互联网信息源中挖掘出人们需要的信息,需要把无结构的文本数据转化为结构化数据[1]。在上述实际要求背景下,人们针对互联网新闻数据进行实体关系抽取,计算机以关系三元组(实体1、关系、实体2)的方式对文本形式信息数据的存储、查询以及管理。实体关系抽取目的就是识别文本中的实体与实体之间的语义关系,并将关系抽取结果描述为三元组。实体定义为文本中特定的事实信息,有三种形式:命名性指称、名词性指称以及代词性指称[2-3]。实体关系抽取也可以描述为对给定的文本数据中存在的信息载体的关系抽取。
实体关系抽取作为信息抽取任务之一,是信息抽取的研究热点。实体关系抽取的研究范围从最初的特定领域的语料库,到目前对海量的互联网文本;研究方法也是从基于规则的方法[4]发展到现在基于机器学习的方法和开放式实体关系抽取方法[5-6];实体关系抽取对象包含句子内实体关系抽取[7-9]、两个句子之间的实体关系抽取[10]以及文档级别的实体关系抽取[11],目前研究的热点是句子内的实体关系抽取。结合深度学习的发展,把深度学习应用到实体关系抽取是研究方向之一。
国外关于实体关系抽取的研究工作是在1997年最后一次消息理解会议(Message Understand Conference,MUC-7)上提出的,在该评测会议上实体关系分为三类:位置关系(location_of)、雇佣关系(employee_of)和生产关系(product_of),使用的关系抽取方法是基于规则的[2]。在此之后,2000年出现的自动内容抽取(Automatic Content Extraction,ACE)评测会议把关系抽取列为重要任务之一,ACE-2004会议上将实体关系扩充到7种;ACE-2005提出多语言版本的语料库用于实体识别、关系抽取和事件抽取任务,本文在实验中使用该语料库;ACE-2008关系抽取任务中把实体关系的7种类型又细分为18个子类。ACE会议自2009年被归入文本分析会议(Text Analysis Conference,TAC),TAC会议把实体关系抽取并入知识库构建领域任务中。在英文方面实体关系抽取的另外一个国际评测会议是SemEval评测会议,其中SemEval-2010任务8是句子中名词对关系识别,关系种类有9种,包含原因-影响、器械-操作员、产品-厂家、内容-容器、实体-产地、实体-目的地、组件-整体、成员-集体、消息-话题和一个其他类[12]。
在自然语言问题评测会议中,主要针对各种特定的数据集,使用的方法主要是集中基于机器学习的方法。基于机器学习的方法依据对语料库的依赖程度划分,可以分有监督学习、半监督学习和无监督学习。有监督的学习算法使用的语料库是完全标注的,该算法使用标注语料库对关系分类模型进行训练,然后在测试数据集上识别实体关系,包含基于特征向量算法[13]和基于核函数算法[13-14]。基于半监督学习算法使用的数据集是部分数据进行了标注,包含自举算法[15]和远程监督学习算法[16-17]。该算法具有适应性强、人工标注数据少的特点。无监督学习算法[18]是完全不依赖于数据标注信息,但是需要大量的语料数据,通常利用聚类的方法,把同一关系的文本数据聚合在一起,不能针对一对实体进行划分实体关系。
关于中文的实体关系识别起步比较晚,目前关于中文的实体关系抽取研究主要工作集中在基于机器学习的算法和开放式关系抽取算法,但是缺乏大规模的标准中文实体关系抽取数据集,因而关于利用机器学习实现中文实体关系抽取研究比较少。关于中文的实体关系抽取方面的会议也比较少,有自然语言处理与中文计算(Natural Language Processing and Chinese Computing,NLPCC)会议、中文倾向性分析评测(Chinese Opinion Analysis Evaluation,COAE)会议。除此之外,ACE-2004/2005多语言语料库中包含中文实体关系识别内容。
中英文之间的差别使得适用于英文的关系抽取算法不能直接移植到中文上面。中英文之间的差别主要在于以下四点:一是中文没有明显的分隔符;二是中文中的词比英语存在更多的歧义语义;三是中文的词语由字组合而成,常用汉字有3 000个,复杂程度很高;四是中文的词法语态信息没有英语丰富,比如中文没有时态、字母大小写等特征。
面向中文实体识别的双向树形LSTM(Long Short-Term Memory)是建立在依存关系树上的长短时记忆网络变体模型。标准LSTM网络输入特征向量是按照句子的字序输入,即从句子中的第一个汉字依次输入特征向量。双向LSTM网络由正向的LSTM和反向的LSTM组成,其中的反向LSTM是从句尾依次输入特征向量。双向树形LSTM网络的输入特征向量是按照依存句法树的结构依次输入特征向量,正向的树形LSTM从叶子节点到根节点,反向的树形LSTM从根节点到叶子节点。该模型建立依赖于句子的依存句法分析结果。树形LSTM模型和标准LSTM模型比较,改进的模型可以提取词语与词语之间依存关系特征和句法特征,树形LSTM神经元三个控制门的输入数据不仅仅是该汉字相邻的汉字的LSTM神经元状态值和输出值,还包含在依存句法分析中存在依存关系的词语的状态和输出值。Aguilar等人[18]在英文依存句法树上建立的正向树形LSTM模型,Jie等人[19]使用英文依存句法特征实现实体识别,但是基于依存句法树的中文树形LSTM模型和英文树形LSTM模型存在的差别。图1是以简单句子“西北工业大学位于古都西安”的中文和依存句法分析结果。
图1 “西北工业大学位于古都西安”依存句法树
图1中的中文依存句法树是用哈工大LTP得到的,英文依存句法树是用Stanford NLP工具得到的。图1(b)的依存关系树中是以单词为节点,英文的实体识别标注对象也是单词;图1(a)的依存关系树中是以中文词语为节点,但是中文实体识别的标注对象是汉字。例如Northwestern标注为B-ORG,而在中文依存句法分析中“西北”在句子中作数据标注的是“西:B-ORG”和“北:I-ORG”;相比较于基于英文的树形LSTM网络结构,中文的树形LSTM网络模型比较复杂。本文提出的面向中文的正向和反向树形LSTM模型如图2所示,在结构示意图中依然是以简单的句子“西北工业大学位于古都西安”为例。
(a)正向树形LSTM结构图
(b)反向树形LSTM结构图
图2中双向树形LSTM网络神经元标注为TLSTM Cell,在正向树形LSTM网络中每个TLSTM Cell的输入特征包含两部分:第一部分是依存句法树中当前节点的所有子节点的神经元输出值和状态值,第二部分是当前节点中,上一个汉字的神经元输出值和状态值,例如在图 2(a)中汉字“学”的输入向量包含该字的词向量和汉字“大”“工”“业”三个字的神经元状态值和输出值。中文实体识别的正向树形LSTM神经元的数学表达式为
(1)
式中:hj表示所有当前汉字子节点神经元输出值hk的求和;chiildnode(j)表示节点j所有子节点的集合;cj表示所有子节点的状态值和当前节点中上一个汉字的状态值cj,t-1的拼接结果;hj,t-1表示上一个汉字神经元的输出值;n表示子节点所有汉字的数量;fj,t表示遗忘门控制变量;ot表示输出门控制变量;ij,t表示输入门控制变量;Wf,Wi,Wo表示神经元中当前汉字输入特征在控制门中的权重矩阵;Uf,1、Ui,1、Uo,1表示子节点汉字的神经元输出值在控制门中的权重矩阵,Uf,2、Ui,2、Uo,2表示上一个汉字的神经元输出值在控制门中的权重矩阵;bf、bi、bo表示表示神经元控制门的偏置向量;ct表示当前汉字神经元的状态值;ht表示当前汉字神经元的输出值。
正向树形和标准的LSTM网络的神经元相比,在控制门中加入了依存句法树中子节点特征信息,模型能够提取长距离的依存关系特征和句法特征。在三个控制门中,遗忘门的计算方式和输出门、输入门不同。输入门和输出门使用输出值hj和hj,t-1的求和,而遗忘门对每个字符输出值计算各自的遗忘门值。这种遗忘门计算方式对于不同的汉字,控制对当前汉字的影响程度,即输入门控制当前输入特征对神经元状态值的影响和输出门控制状态值cj和cj,t-1对输出向量的影响。
反向树形LSTM神经元和正向树形LSTM相比,将子节点神经元的状态值和输出值改为父节点神经元状态值和输出值,其他部分是一致的,即在公式(1)中第二个式子改为
(2)
式中:cj表示父节点的状态值和当前节点中上一个汉字的状态值cj,t-1的拼接结果,n表示父节点所有汉字的数量。
双向树形LSTM网络建立在依存句法树上,在控制门中加入了依存句法树中子节点特征信息,能够获取来自于依存关系树中父节点和子节点的特征信息。正向树形LSTM网络获取依存关系树中当前节点的子节点特征信息,反向树形LSTM网络提取父节点的特征信息。双向树形LSTM网络的输入特征中可以包含词向量、词性特征等,网络的输出向量是依存关系特征、句法特征和输入特征的融合特征。双向树形LSTM网络的输出特征由正向树形LSTM网络输出特征H1和反向树形LSTM网络的输出特征H2拼接而成。
本文提出的基于双向树形LSTM网络模型和条件随机场模型主要包含三个数据处理模块:双向树形LSTM、Bi-LSTM和条件随机场(Conditional Random Field,CRF)。双向树形LSTM网络模型提取融合长距离的依存关系特征和句法特征,正向树形LSTM网络获取依存关系树中当前节点的子节点特征信息,反向树形LSTM网络提取父节点的特征信息;Bi-LSTM可以有效提取当前汉字的过去特征和未来特征,正向LSTM网络记录过去时刻的特征信息,反向LSTM提取将来时刻的特征信息;CRF是在神经网络提取特征的基础上对中文汉字进行标注实现实体识别。图3是基于双向树形LSTM网络模型和条件随机场模型的结构示意图。
图3 算法流程图
本文在ACE 2005语料库上训练并测试基于双向树形LSTM实体识别算法模型的有效性。
操作系统为ubantu 18.04,依存句法分析工具为哈工大LTP3.4.0,Python版本3.7.0。
基于双向树形LSTM和条件随机场的实体识别模型在识别实体的过程中是将实体识别问题转化为数据标注的问题,要求对每个汉字标注一个标签。但是在使用的新闻语料库中数据的标签格式不满足模型的需求;除此之外,本文是针对句子中的实体识别,使用的语料库中文本数据是段落的形式,因此还需要对数据进行段落分割。数据预处理实现数据标签格式的转化和段落分割为句子。
ACE 2005语料库是国际评测会议ACE在2005年发布的数据集,目前可以在语言联盟中获取。ACE RDC是多语言数据集,包含中文、英文和阿拉伯语,该语料库主要针对自然语言问题的三项基本任务——实体识别,值、事件表达式,关系和事件。中文语料库的数据采集来自于广播新闻(298篇)、新闻专线(238篇)和微博(93篇),文档总数量是629篇。
ACE 2005语料库中包含四类文件,在实体识别和关系抽取任务中,主要是使用源文本文件和注释文件。图4和图5分别是该语料库中广播新闻语料库的源文本文件和实体数据的注释示例。
图4 ACE 2005语料库源文本文件示例
图5 ACE 2005语料库标注文件
图4所示语料库中的中文源文本文件数据存在大量的空格和换行标识符,需要对源文本文件进行正则化处理,即在数据预处理阶段需要消除源文本文件中的空格和换行标识符,否则在实体标注文件中,会导致实体位置信息出现误差。而且由于本文主要研究针对句子中的实体关系抽取,因此实体识别也是主要针对以句子为单位,识别单个句子中的实体关系。与此同时依据句子标识符(“。”“?”“!”)将段落转化为单个句子。
图5所示语料库标注文件主要是XML文件,在该文件中标注了实体在源文本文件中的位置信息和对这个实体类别、子类别的注释,在该语料库中定义实体种类有七种。在数据预处理过程,将源文件的段落转化为句子,同时也需要把实体标签信息转化为相对应的句子中。本文使用Python语言和xml.etree工具包实现数据解析。ACE 2005语料库数据预处理的流程如下:
输入语料库源文本文件.sgm为S0,注释文件.apf.xml,正则化后的源文本为S1
1:读取注释文件,使用xml.etree找到实体的类别、子类、位置和内容信息S2
2:读取源文件,清除源文本中节点标志信息,便于与实体注释位置信息对应
3:使用python正则化模块re对源文本数据的空格和换行符进行替换
4:for entity inS2:
5: 利用实体在S0的位置更新实体在S1位置信息
6: ifS1[entity[start]:entity[end]]== entity[content] then
7: 校验在S1中entity位置所在词语是否与entity中的内容一致
8: else:
9: 从新校验该文件实体位置信息
10:for char inS2:
11: if char in set(‘。’、‘?’、‘!’)
12: 获取单个句子sentence,依据该句子在S2位置信息找到该句子中所有实体
13: for char_ in sentence:
14: 依据SBIOE标签格式和实体位置信息对句子sentence中的每个汉字打上标签
15: else:
16: 当前句子中添加当前汉字
在数据预处之后,数据的表示为每个汉字均有唯一对应位标签,标签的格式是位置标签和类别标签的复合标签格式。图6和表1是针对语料库中广播新闻数据预处理后的文本数据的实体统计。
图6 ACE 2005 语料库实体长度分布
表1 ACE 2005 语料库实体数量统计
在实体长度分布统计中,大部分的是数据是小于等于4的;实体长度大于4的数据中,实体数目是1 468,大约占总数量的5.46%。因此在模型的局部注意力机制模块中,使用的窗口长度是5,该窗口长度可以使得大部分实体中间的汉字也可以覆盖实体周围区域的非实体汉字。
在上述各种类别的实体中,实体分布是不均衡的,例如人名的实体数量特别多,达到了11 656个,但是关于武器的这种数量仅仅是380个,数量差距比较大。这会导致模型对武器类的实体识别能力较差。
在双向树形LSTM网络实现数据标注的过程中,双向树形LSTM和标准的LSTM网络的作用是对使用的词向量等特征进行融合,用条件随机场实现数据标注。但是在不同的语料库中,由于实体的种类不一致,因此在条件随机场中概率转移矩阵的尺寸不一样,而且相比于每个语料库中标签的种类,条件随机场的概率转移矩阵需要加上句子填充标签和概率开始/结束标签。模型的实验参数见表2。
表2 网络参数设置
自然语言问题中模型的评价指标一般用准确率(Precision,P)、召回率(Recall,R)和F1值。准确率代表着正确识别的实体在标注样本实体中的比例;召回率表示正确分类的实体在所有识别的实体中的比例;F1值为准确率和召回率的一个调和平均值,是一个综合指标。各指标具体计算方法如下:
(3)
(4)
(5)
式(3)~(5)中:TP表示正确实体标注正确,FP表示正确实体标注错误,TN表示非实体标注为实体。
在ACE 2005语料库中采用条件随机场实现数据标注,使用LSTM网络实现特征融合,使得输入条件随机场中的特征更加具有上下文特征,且没有使用注意力机制条件和无残差网络的条件下实体识别效果。
实验1是在无词性标注的条件下使用单层Bi-LSTM网络实现特征融合,实验2是使用单层Bi-LSTM和词性标注,实验3使用双层Bi-LSTM和词性标注特征,实验4是在词性标注的条件下使用双向树形LSTM和Bi-LSTM融合特征。实验结果见表3。
表3 ACE 2005多语种语料库实验结果
实验1和实验2结果相比,验证了在使用词性标注的条件下对于实体的识别效果是有很大提高的。实验3和实验4是在词性标注条件下使用双层LSTM网络,实验3中使用的是双层Bi-LSTM,与实验2和实验4相比,模型的准确率、召回率和F1值均是比较差的,LSTM网络在处理较长的句子容易出现梯度消失,无法对第一层LSTM网络的参数进行指导性调整。实验4中双向树形LSTM和Bi-LSTM的模型是本文提出的模型,该模型的各项指标在实验中是最好的。图7是四个实验在ACE 2005语料库中各个类别实体的F1值。
图7 无注意力机制的模型对各个实体类别F1值
在图7中,本文模型表示的在词性标注信息下的双向树形LSTM+Bi-LSTM模型。在本文的改进模型中,在地理政治类别的F1值改变不明显,在其他类别中F1值均有显著提高。
基于双向树形长短时记忆网络和条件随机场的中文实体识别模型,双向树形LSTM网络可以提取句子中的长距离依存关系特征和句法特征信息,其中正向树形LSTM网络获取依存关系树中当前节点的子节点特征信息,反向树形LSTM网络提取父节点的特征信息。双向树形LSTM提取依存句法树中动词和介词的特征,推断它们的主语或者宾语是否为实体,判断实体的类别和边界。实验也表明,基于双向树形LSTM网络比双层Bi-LSTM网络能够提取长距离依存关系特征和句法特征信息,提高条件随机场对中文实体的识别能力。