基于最大熵的蒙古文人名识别系统的设计与实现
2016-01-19通拉嘎李佳正泉州师范学院图书馆福建泉州36000中国科学院计算技术研究所北京100080
●通拉嘎,刘 凯,李佳正(1.泉州师范学院图书馆,福建 泉州 36000;.中国科学院计算技术研究所,北京 100080)
基于最大熵的蒙古文人名识别系统的设计与实现
●通拉嘎1,2,刘凯2,李佳正2
(1.泉州师范学院图书馆,福建泉州362000;2.中国科学院计算技术研究所,北京100080)
[关键词]信息处理;蒙古文人名识别;最大熵
[摘要]最大熵模型能充分利用上下文,灵活取用多个特征。使用最大熵模型进行蒙古文人名识别,分析蒙古文人名结构及上下文环境,根据语言特点设计特征模板,建立粗选特征集;建立人名知识库,提取精选特征集,训练最大熵模型;实验结果证明,本系统能有效识别蒙古文人名,开放测试的正确率达到94.56%,召回率达到85.15%,F值达到89.61%,识别效果较为理想。
1 引言
蒙古文词法分析是蒙古文信息处理的一项基础研究课题,是短语、句法、语义、篇章处理的基础环节。命名实体识别是文本信息处理的基本问题,[1]是蒙古文词法分析的关键问题之一,提升命名实体的识别性能,必将提高词法分析系统的整体性能。命名实体包括实体(人名、地名、组织机构)及时间表达式、数字表达式。[2]
蒙古文属于阿尔泰语系拼音文字,为黏着语言类型,[3]故而蒙古文人名识别更加注重运用形态特征及上下文信息。为了解决蒙古文人名自动识别的瓶颈问题,我们拟引入最大熵方法,它是一个机器学习模型,具有通用、易于移植、可多次使用等特点,能够有效利用上下文环境,可以较好地包容各种约束信息,在自然语言处理方面应用广泛。
2 人名识别系统设计
人名识别系统主要包括2个功能模块,即模型训练及人名识别(见图)。基于最大熵模型的蒙古文人名识别系统实现的环境主要为Windows 7平台,以Microsoft Visual Studio 2010为开发工具,使用C++编程语言编写核心代码。我们使用的训练语料库为内蒙古大学蒙古文拉丁文本,以“/Nt1”对人名进行标注,并在此基础上,依次进行特征提取、特征选择以及迭代训练,得到该集合上的判别模型。人名识别模块的主要功能是使用训练好的最大熵模型对语料进行标注,并计算正确率和召回率。
图 系统流程
以是否有歧义为划分标准的话,蒙古文人名可以分为兼类人名及非兼类人名两种。识别非兼类人名时,我们直接使用最大熵模型计算人名的出现概率;判断兼类人名时,我们首先以兼类人名词典进行初步的筛选确认,然后以兼类词搭配词判断兼类词的位置,最后以最大熵模型计算人名的出现概率。
2.1模型训练模块
在对相关文本进行标注前,我们需要在训练语料库上进行模型训练,并依次进行特征提取、特征选择及迭代训练,使模型与训练样本一致,而对于训练集中没有出现的情况,模型则赋予均匀的分布。
2.1.1特征的抽取
最大熵模型的关键在于如何针对特定的任务为模型选取特征集合,[4]我们提取的特征为基本特征及语
言学特征。蒙古语是一种典型的粘着语,所以,我们在未进行词法分析的语料上抽取特征时,应考虑词干和词缀的相应信息,以减少粘着语的特性对特征的影响。基于蒙古文特点及上下文环境,我们制定了人名的特征模板及标注特征取值,进行基本特征集的抽取。基本特征选取的最大优势是不依赖于任何语法和语义知识,这对其它的命名实体识别也同样适用。语言学特征提取则依赖于人工提供的知识规则,并按照不同的规则类型生成对应的特征。知识规则即语言学资源,包括词典和规则库等。
表1 人名特征模板
表2 人名的标注特征取值
2.1.2特征选择
提取语言学特征及基本特征后,需要循环匹配特征模板,形成粗选特征集。不过,该特征集是在语料库偏小状况下形成的,特征价值、时空开销都是需要考虑的问题。为了进一步提取蒙古文人名特征,我们在对人名及其上下文环境进行分析的基础上,依托语料库,建立了普通人名知识库及兼类人名知识库,并以最大熵的统计模型,对人名知识库中的各类特征进行选择实验,从中提取了更为有效的人名特征,为进一步的人名识别工作做好准备。
表3 人名知识库及数据统计
我们拟在最大熵模型中使用的精选特征集共有14个,地名词典、蒙古族蒙古姓氏词典、著名人物词典、地名后缀词典、机构名后缀词典、汉语姓氏映射表、汉语人名映射表、有距离边界词典、左边界词词典、右边界词词典、梵藏满人名词典、兼类人名词典、蒙古人名词典,兼类搭配词典。虽然最大熵可以不用设定规则的优先集来避免冲突,不过,我们还不清楚哪些特征是有效的,哪些特征有副作用。为验证特征集中各个特征的效果,我们设计了以下方案。
(1)令特征集=简单上下文特征集,在该特征集的基础上训练最大熵模型,然后测试。
(2)在原始的简单上下文特征集的基础上,逐次加入某一项新特征,在新特征集的基础上训练最大熵模型,然后进行测试,参考开放测试的结果,如果某特征集导致正确率和召回率都下降,说明该特征是无效特征,予以去除;如果正确率和召回率都有一定特征,表明该特征的有效性,则保留该特征。重复这些步骤,直至每个特征集都实验过(特征选择实验结果,请参见《图书馆理论与实践》2015年第2期第112页表3)。
(3)汉语人名在语料库中出现较多,但其形式与蒙古人名又有较大区别,汉语姓氏与人名拉丁映射表能覆盖大多数人名,因而,我们直接选取“汉语姓氏映射表”、“汉语人名映射表”为最大熵的特征,而无需经过实验步骤的验证。
之所以建立地名词典、地名后缀词典、机构名后缀词典,是因为人名与地名兼类的现象在蒙古文中出现较多,语料库中地名、机构名、机构名后缀对人名有一定的指称作用,我们希望以此排除与人名的兼类现象。[5,6]但是,限于语料库规模,能满足这些特征的语境还是较少,而且地名、地名后缀、机构名后缀有时与人名的距离过远,运用这些特征后正确率和召回率都有一定程度下降。经过上述实验,我们去除了机构名后缀词典、地名后缀词典、地名词典等3个特征,保留了11个特征集作为最大熵统计模型的特征集,从而形成了适应最大熵的精选特征集。
2.1.3参数估计
在获取特征集合的基础上,我们使用东北大学张乐提供的最大熵工具包来训练模型,[7]根据最大熵工具包的使用说明书规定特征文件的格式,组织好特征文件。
参数估计的作用是用最大熵原理对每个特征进行参数估值,使每个参数与一个特征相对应,以此建立所求模型。在生成train.txt文件后,我们将其送至最大熵工具包。经过maxent程序处理,使用默认的L-BFGS算法进行参数估计后,我们得到了train.feat,test.feat,model.txt等三个文件。这里,train.feat,test.
feat等两个文件记录了每个词是否为人名的判别结果和特征,model.txt记录了每个特征对应的参数值。
经过模型训练后,我们得到了一个特征集合,每个特征对应一个参数α。特征的参数表示特征参数的重要程度或可信度,α可正可负。
2.2人名识别模块
用最大熵工具包对特征集进行参数估计后,每一个特征都有了一个与之对应的参数,这意味着生成了我们需要的最大熵模型。在此基础上,可以对文本进行标注,也即本文所阐述的“识别”,我们将此过程称之为“解码”,解码过程可视作是一个标注问题。
本文的人名识别过程如下:
a读入一个句子,即给定的输入系列W={W1,W2,……,Wn};
b依据训练得到的特征函数集f1(a,b)及其参数αt,求解行动序列A={a1,a2…,an},其中,ai的值域为类集或标注集C∈{B,M,E,O,S},bi为输入序列中每一个元素Wi的上下文环境信息;
c最终选出在候选标记序列空间内具有最大概率的标注结果序列。
3 系统的测试及实验结果
为验证蒙古文人名自动识别模型的有效性,我们首先选择训练语料和测试语料,然后通过封闭测试和开放测试分析蒙古文人名识别模型的效果。
3.1实验数据
训练及测试所用的句子共为8343句,共含11583个人名(见表4)。“语料分布”中,“内大”指的是内蒙古大学26万语料库中提取的2570个人名句,“自建”指的是从中国蒙古语新闻网、人民网(蒙古文版)、蒙古文化网等9个网站人工抓取的5千人名句。网站选取的原则为统一的蒙科立编码,句子选取原则为人名句,尽量为兼类人名句。从上述网站上抓取人名句,以蒙科立转拉丁的编码转换工具3转换为蒙古文拉丁格式,并着重对人名及上下文两词进行校对,标注出人名位置。封闭测试集是训练集的子集,开放测试集与训练集不存在包含与被包含关系。
表4 训练集、测试集数据统计
3.2实验结果
输入格式设定为内蒙古大学语料库蒙古文拉丁形式,文字需以空格分开,尽量输入完整的句子。在显示的主界面输入待分析的句子,单击“NameRec”按钮,启动对句子的分析,就会出现识别结果。显示系统以中括号表示人名及其边界。
从测试结果可以看出,系统能有效识别蒙、汉、梵藏、外国人名,对有名无姓,有姓无名、人名简称、帝名、笔名等不常见的人名也有较好的识别效果。不过,系统对较为特殊的蒙古文人名,如仿叠人名、双姓人名、三字以上人名识别效果不佳;由于缺乏词性信息并受语料库、知识库规模限制,兼类人名的识别有一些问题。最终,系统实验的结果为封闭测试的正确率96.52%,召回率87.25%,F值91.65%;开放测试的结果正确率94.56%,召回率85.15%,F 值89.61%,识别效果较为理想。
[参考文献]
[1]潘正高.基于规则和统计相结合的中文命名实体识别研究[J].情报科学,2012,30(5):708.
[2]李佳正,等.维吾尔语种汉族人名的识别及翻译[J].中文信息学报,2011,25(4):82.
[3]清格尔泰.现代蒙古语语法[M].呼和浩特:内蒙古人民出版社,1980:2-8.
[4]桑海岩,等.基于最大熵的哈萨克语词性标注模型[J].计算机工程与应用,2013,49(11):127.
[5]皇甫晶,王凌云.基于规则的纪传体古代汉语文献姓名识别[J].图书情报工作,2013,57(3):123.
[6]那顺乌日图,等.蒙古文人名自动识别研究[C]//语言计算与基于内容的文本处理——全国第七届计算语言学联合学术会议论文集.哈尔滨:2003:125.
[7]Zhang Le.Maximum Entropy Modeling Toolkit for Python and C++[EB/OL].[2004-12-29].http://www. docin.com/p-13535384.html.
[收稿日期]2014-09-11 [责任编辑]李海燕
[作者简介]通拉嘎(1976-),女,内蒙古科右中旗人,中央民族大学少数民族语言文学学院博士,泉州师范学院图书馆馆员,中国社科院闽南文化研究基地成员,研究方向:计算语言学、应用语言学及情报学;刘凯(1987-),男,博士,研究方向:自然语言处理;李佳正(1988-),女,硕士,研究方向:自然语言处理。
[基金项目]本文系国家自然科学基金重点项目“跨语言社会舆情分析基础理论与关键技术”(项目编号:61331013)的研究成果之一。
[文章编号]1005-8214(2015)05-0096-03
[文献标志码]A
[中图分类号]G254.29