马孟铖,杨晴雯,艾斯卡尔·艾木都拉,吐尔地·托合提
(新疆大学 信息科学与工程学院,新疆 乌鲁木齐 830046)
命名实体是文本中的基础信息单元。其表示了文本中内在名称和缩写的信息,同时自然语言处理研究中一项基础且必要的任务就是对于命名实体的识别。旨在从海量文本中提取出能够体现客观具体或者抽象实体的词汇,例如人名、地名和机构名等。
随着计算机技术水平的不断提高,自然语言处理和文本处理相关研究不断深入。问答系统、自动摘要、意见挖掘等研究领域都需要语义知识作为支持,命名实体识别和分类已成为一项重要的基础性研究问题[1]。从狭义上讲,命名实体可以分为人名、地名、组织名等。从广义上讲,命名实体包括各种表达式、电子邮箱等,伴随着现在自然语言处理相关研究的兴起,原来的命名实体界定范围已经不能满足需求,人们对这些实体词汇在原有基础上进行了种类的扩展,分类更加细致。比如,地名可细分为地区名称(不同大洲)、国家名、城市名、乡镇名等。相同语料研究任务的不同可能需要不同类型的命名实体,若每次根据任务类型再选取相应的特征识别命名实体需要耗费人力、精力和时间,代价未免太过巨大。因此,现在的研究重点应该是根据不同应用领域的特定需求定义不同类型的命名实体并加以识别,并且快速、高效率地完成[2,3]。
发展至今,中文命名实体识别的方法主要有以下几种:基于机器学习的方法通常被当作序列标注任务[4],经典机器学习分类模型主要有隐马尔可夫模型和条件随机场等浅层模型。冯艳红等[5]利用词语的词向量与领域术语的词向量之间的相似度特征,构成基于词向量的特征向量,提出一种基于词向量和条件随机场领域术语识别方法;张海楠等[6]提出的基于深度神经网络的字词联合方法利用了字、词向量的特点,用于中文命名实体识别取得了较好的效果。Huang等[7]提出了融合语言学特征的Bi-Lstm-CRF模型,提升了模型的性能。林广和等[8]提出一种基于注意力机制的字符级词表示模型与Bi-Lstm-CRF模型联合进行实体识别的方法,显著提高了系统的召回率。
不同领域下的命名实体识别研究发展迅速;针对军事文本中的命名实体[9],冯蕴天等[10]提出了一种半监督命名实体识别方法。先基于条件随机场识别出结果,再使用基于字典的方法和基于规则的方法来校正识别结果,且取得了不错的效果;张剑等[11]针对农业领域语料特点,采用基于条件随机场的方法,将命名实体分为作物、病虫害、农药及化肥4种类别,准确率达到了93%以上;王洪亮[12]提出一种融合全局上下文信息的词向量特征选择方法,并采用条件随机场实现中文微博的命名实体识别,取得了不错的效果;何红磊[13]实现了使用词表示方法对生物医学命名实体识别。
作为文本中重要的语义知识,命名实体分类已成为一个现实的基础研究问题。然而,由于不同领域下实体类型的自由性、复杂性。该问题还有进一步研究的空间。针对这一问题,本文做出的主要工作:①本文提出一种先识别再分类的思想,先构建特征识别出实体,再利用词向量聚类以及计算词向量相似度的方法对实体进行分类;②根据实验语料的特点,我们针对性的选取统计特征并构建特征模板识别命名实体;③为了验证分类的准确性,对测试语料进行人工标注;④对于人名的分类,提出了构建百家姓词典以及根据字符长度进行判断的方法。
由于地名、机构名等实体的语言特点不同,制定不同的分类体系需要构建不同的特征模板,所以先识别命名实体,在对识别结果进行分类会更加合适。本文提出一种先选取特征识别实体,再利用词向量对实体分类的方法。将语料进行预处理,分析数据集,选取特征,构造特征模板,再加入训练数据集生成CRF模型,从而识别出测试集中的人名、地名、机构名等命名实体。在命名实体分类的部分中,利用词向量的相似性等同于词语的语义相似性这一特点,通过开源的词向量词典构建实体的词向量表,进而对实体词向量进行聚类,最终通过比较实体词向量间的相似度实现命名实体的分类。构建的模型框架如图1所示。
图1 模型总体框架
条件随机场是一种给定输入特征进行输出判别的概率无向图模型。基于条件随机场的命名实体识别问题其实可以描述为序列标注问题。对于观察值序列W和状态序列O,定义一个CRF模型如下,公式定义请参见文献[14]
ZW是归一化参数,fk表示位于n-1和n之间的特征函数,W则是模型中的观察序列,目标是求出下一状态下最大概率的词汇类型。
根据文本类型的不同选取合适特征是实体识别的关键,特征选取的好坏决定命名实体识别效果的好坏。依据实验语料的特点,人名的识别率较高,针对地名、机构名,本文选取了5个统计特征,特征提取和分析如下[15]:
特征1:词语本身标记为Word;本文选取的1998年人民日报语料,通过NLPIR-ICTCLAS分词系统将原始文本进行切分形成词语。
特征2:词性标记为POS;语料分词的过程中,分词系统会标注词语的词性。一般来说,地名、机构名的一般为名词、动词及动、名词短语,而不会是连词、介词等词性。故可认为与实体有一定的相关性。
特征3:实体的特征核心词标记为CORE;对于地名实体而言,“地区”,“自治区”出现时大概率会出现地名,如“阿克苏地区”,“广西壮族自治区”。对于机构实体而言,“公司”,“委员会”很大程度上是机构名的中心词,如“深圳市腾讯计算机系统有限公司”,“社区管理委员会”。可见该特征与实体存在较大相关性。
特征4:实体的右边界词标记为Right_Boundary;对语料进行分析,发现许多实体前后出现的词是有规律的,如“位于山东附近”,位于是山东的左边界词,附近是山东的右边界词。我们选取实体的右边界词作为特征。
特征5:复杂机构名的边界限定标记为Ins_Limit;语料中一些地名开头的复合机构名,易错误识别成地名;我们利用该类实体的特点,通过判断实体开头是否为地名构建复合机构限定词词典,对测试集进行标注。
本文将人民日报作为语料,根据以上实体类型提出的5个特征,有效区分了地名和机构名实体。
通过训练神经网络语言模型,将文本中的一个词用一连串的向量进行表示,这就是词在计算机中的分布表示特征——词向量。词向量能表达词语的深层语义内容,利用这一特点,我们可以通过词向量对实体进行分类。
影响词向量效果的几个因素:①词向量的维度大小会影响词向量的效果,维度越高,表示的内容越充分,但是过高的维度会增加运算量,造成“维数灾难”。②实验语料的质量也会影响词向量的效果。同一领域内不相干的语料越多,词向量的效果就越差。考虑到以上因素,本文选取的是人民大学开源的人民日报词向量词典,该词典训练了1947年-2017年的人民日报的词向量。全面覆盖了通用领域的词语,能够满足任务需要。
在提取出训练集中标注的实体及检索词向量词典找到匹配的词向量时,我们采用最大逆向匹配算法,如“新疆大学”第一次匹配无法找到对应词向量,第二次匹配输入“疆大学”,依次匹配,最终“大学”找到词向量,作为“新疆大学”对应的词向量。
聚类是一种无监督学习的方法,实质是依据某种距离度量,使得同一聚簇之间的相似性最大化,不同聚簇之间的相似性最小化,即把相似的对象放入同一聚簇中,把不相似的对象放到不同的聚簇中。本文采用基于K-means算法的词向量聚类,提取出训练集中的实体词向量聚类成若干个簇,为下一节测试集实体的分类做好准备。
前文通过CRF模型识别出测试集中的命名实体并构建待分类实体集,上一节将训练集内命名实体划分为若干簇。这里我们提取出待分类实体集下的每一个实体,与聚类的每个簇之间进行相似度比较,放入距离最近的那个簇中。为了提升分类的准确度,我们在每个簇中随机抽取10个实体,与待分类实体计算词向量相似度,得到的10个相似度距离取平均数作为该簇与该实体之间的距离。相似度特征的计算方法
词向量在命名实体识别研究中应用广泛,但是一般是将词向量加入特征构建特征模板进行实体识别。本文提出通过词向量聚类及计算词向量相似度的方法实现实体分类。
实验所用语料为1998年1月的人民日报语料,该语料为人工标注语料,人名、地名、机构名的标注非常精细,对于后期判断实体识别的好坏有很大帮助。郭家清在该数据集上实体识别准确率达到了95.4%,召回率达到了90.9%,F1值达到了93.1%。可见,在高质量的语料下,命名实体的识别研究已经达到很好的效果。这也确保了下一步对实体进行分类的准确度。本文随机抽取4/5语料作为训练语料,1/5作为测试语料。训练语料约15 590个句子,测试语料约3908个句子。
我们共采取了3部分实验进行命名实体识别及分类:第一部分实验及目的是对特征进行选择,构建特征模板,识别出人名、地名、机构名;第二部分实验及目的是对训练集中的实体词向量进行聚类,选取合适的质心并将命名实体集划分为若干小类;第三部分实验及目的是将识别出的实体与已划分的簇进行相似度计算,将目标实体放入到对应的簇中。
本文将采用准确率(P),召回率(R)和F1这3个指标来评价实验结果
特征的选择需要考虑实验语料的领域特点进行判断。由于语料中人名的特征已标注在词性中,且识别率很高,本实验中达到了99%,故本次实验只针对地名、机构名实体选取5个特征构建特征模板。
选取特征时,比如“研讨会”在“中国传统医药学术研讨会”中是实体中心词,但是在“参加今天研讨会的有……”中就不是中心词。为了避免产生数据稀疏问题。我们通过设定阈值,满足条件的词添加标记作为特征。不同阈值下得到的中心词个数见表1。
表1 不同阈值对应的中心词个数
经统计,选取中心词特征阈值取0时做标记词数为23 665个。阈值取0.3时,该特征标记下的词数为10 290个。标记数目下降一半,有效地避免了数据稀疏问题。
针对一些复杂的机构名,如地名开头的机构名,首先读取训练集中已标注实体,若实体的第一个词词性标记为ns(原始语料已标注),则把该实体的最后一个词添加至限定词词典。其次,遍历测试集中的词语,找到词性标注为ns的词,向后取四位词语,期间的每一位词与限定词词典进行匹配。若匹配成功,则添加复杂机构名的边界限定特征。
通过不同限定条件获得特征后,选取不同特征构建特征模板进行实验对比,构造组合特征进行对比实验。组合特征模板见表2。
表2 组合特征模板
狭义上,命名实体分为人名、地名、组织名。随着自然语言处理任务的广泛应用,人们对于这些实体名词有了更细致的划分需求。本文制定了一个命名实体分类体系,将命名实体3大类细分至8小类,见表3。
表3 实体分类
词语的词向量能够表达语义关系,语义上相近的词可以通过词向量聚类的方法汇成一类。实验训练集共包含重复地名、机构名实体约24 220个,本文选用网上开源的已训练好的词向量词典,将训练语料中已标注实体和词典进行最大逆向匹配,匹配后构建实体词向量词典进行词向量聚类。聚类方法采用K-means聚类算法。
(1)随机选取质心,将实体聚类成20类,实验结果见表4。通过实验,随机选取质心进行聚类的效果具有一定的局限性。一是聚类的类别是随机的,无法根据需求进行聚类。二是一些实体区分难度较大,实验中第2、3、9类实体,这些实体的语义关系相对复杂,聚类效果不佳。针对以上问题,本文提出根据目标需求人为设定质心以提高分类效果。选取作为质心的20个实体词见表5。
(2)人工选取质心,将实体聚类成20类,见表6。实验表明,①人为设定质心,能够将实体聚类成目标需要的类别。②该组实验下第1、12类聚类效果较差,对照上组
表4 随机质心聚类结果
表5 作为质心的实体词
实验识别不完善的实体数大幅下降,由2683个降至1031个。所以通过人为设置质心,实体聚类的效果有较大提升。
表6 人工选取质心聚类结果
如前文所示,识别出地名、机构名后,本文将地名、机构名分成中国地名、外国地名、学校研究机构等6类。首先采用最大逆向匹配算法匹配词向量词典构建待分类词向量词典。然后在聚类的20个类中随机抽取10个词的词向量和待分类词进行相似度计算进行实体分类。
为了验证该方法的有效性,进行了对照实验。首先构建特征模板,然后利用条件随机场模型直接将实体进行分类。由于条件随机场模型需要标注出实体类别作为模型中的目标函数,而这一部分又需要人工标注,所费人力物力巨大,所以取训练集中1300个句子,测试集中1100个句子,进行精细标注。特征选取本文的5个特征,利用训练集构建模型,用测试集进行测试。实验结果见表7、表8。
由实验可知,直接构建特征模板,用条件随机场进行实体识别的效果不好。分析原因,一是因为统计模型是根97.7%,机构名的F1值由86.6%提升到了92.8%。这也为下一步实体的分类奠定了基础。
表7 条件随机场模型分类结果
表8 词向量聚类下实体分类结果
据条件概率进行判断;对照实验中训练语料的规模会影响判别效率,训练集为1300句时,命名实体识别的准确率要高于训练集为500句。但是在当今时代下,文本量呈指数级增长,对全部语料进行人工标注耗时费力。二是特征的选取;根据分类的实体类别确定特征固然是好,但是如果取不同的实体类别就要构造新的特征,而这个特征还不一定对识别率有正面的影响,同样也是费时费力。相比而言,本文提出的先进行基于统计特征的实体识别,再进行词向量的聚类,比较词向量相似度进行分类的方法,只需要在测试集上进行人工标注,也无需更改特征,减少了训练语料人工标注的工作量,在识别率上也取得了很好的效果。
该语料下人名实体的识别率较高,在人名的分类上;本文将人名实体分成汉族常用人名及其它人名;汉族人名和其它人名相比,其特点一是字符数相对较短,最长不过4位。二是汉族人名的第一个字符为百家姓,可以构建姓氏表对其进行识别。
分类步骤:
(1)提取出识别的人名字符串,依据字符串长度进行判别;限定字符串长度≥4的为其它人名,<4的进行下一步判断;
(2)搜集常用姓氏构造百家姓词典,将字符串长度<4人名的首字符与词典进行判别,匹配到则把该字符串放入汉族人名列表。
(3)对于复姓,取字符串长度≥4的人名与复姓姓氏匹配,匹配到则把该字符串放入汉族人名列表。人名分类流程如图2所示。
图2 人名分类流程
如表9所示,组合特征模板下地名、机构名的征时,机构名的识别率有了显著的提高,这主要是该特征下确定地名开头的复合机构名的边界,提高了机构名的识别率;而在添加右边界词Right_Boundary及中心词CORE特征后,地名实体的识别率有所提高。通过对不同特征组合下的对比实验,比较命名实体的识别率,实验表明:地名的F1由95.5%提升到了97.7%,机构名的F1值由86.6%提升到了92.8%。这也为下一步实体的分类奠定了基础。
表9 不同特征模板下地名、机构名识别的效果/%
人名分类结果见表10,人名分类效果达存在一部分外国人名,首字符是中文姓氏开头,如:“乔丹”,“韦德”等会误识别成汉族人名。对于一些简称或者是作家的笔名,如:“老王”,“冰心”,“老舍”等会误识别成其它人名。能否从音节,字符常用搭配等方面进行研究也是下一步的研究重点。
表10 人名、地名、机构名分类结果
分类结果见表10。根据实验结果,地名、机构名分成6类,每一类的F1值都达到了78%以上。与训练语料为1300句的对照实验结果相比,每一类的识别率都有所提高。可见,训练语料规模的扩大会加强实体聚类时簇的效果,提升实体分类的准确性。识别效果较差的“学校、研究机构”类别、“企、事业单位”类别及“文娱活动”类别在该方法下识别效果增长明显,主要是因为词向量聚类是按照语义相关性进行聚类,受语料规模的影响较小。且每次根据需要选取不同的实体进行分类,只需要修改质心即可,不用修改特征进行大量的语料标注及实验。
针对命名实体分类问题,本文提出的先选取特征构建特征模板识别出命名实体,再利用词向量聚类及计算词向量相似度对实体进行分类的方法能够对实体分类产生较好效果。其优点在于: ①该方法分类的准确率相对于直接利用CRF模型进行分类要高,并且省去大规模语料标注的工作,只需对测试预料进行标注。②可根据文本的类型及需要对细分类别实体进行任意组合,如地名可分为中外地名,亦可分为景点、高山、湖泊等。在未来的研究中,还将针对以下几点进行改进:首先本文的词向量词典具有一些局限性,对于新的领域,如医疗、农业、交通等领域聚类效果会下降。这需要我们扩展词向量词典覆盖范围。其次下一步可以与深度学习方法相结合,采用主动学习,迁移学习等方法进一步减少人工标注语料的工作量。