当前位置:文档之家› 词位标注汉语分词技术详解

词位标注汉语分词技术详解

[收稿日期]2010-06-26[基金项目]河南省教育厅高等学校青年骨干教师项目(2009G GJS -108)。

[作者简介]于江德(1971-),男,博士,副教授,主要从事自然语言处理、信息抽取、文本数据挖掘等。

①可以从以下地址下载:http ://cr fpp .so ur cefo rg e .net[汉语词法·甲骨文]汉语词法分析是中文信息处理的首要任务,主要包括分词、词性标注、命名实体识别三项子任务,它是句法分析与语义分析的基础,其性能将直接影响到中文信息处理的后续应用。

安阳师范学院计算机与信息工程学院依托河南省高等学校“甲骨文信息处理”重点实验室培育基地,“中文信息处理”校级重点实验室“计算语言学”校级研究所等平台。

对汉语词法分析中的这三项子任务、甲骨文进行了较深入的研究,取得了部分研究成果,现借学报这个平台展示给各位同仁,敬请各位专家学者指正。

词位标注汉语分词技术详解于江德,王希杰(安阳师范学院计算机与信息工程学院,河南安阳455002)[摘 要]近年来基于字的词位标注的方法极大地提高了汉语分词的性能,该方法将汉语分词转化为字的词位标注问题,借助于优秀的序列标注模型,基于字的词位标注汉语分词方法逐渐成为分词的主要技术路线。

本文简要介绍了词位标注汉语分词的基本思想,探析了基于条件随机场实现词位标注汉语分词的机理,并对采用四词位标注集,使用CRF ++0.53工具包实现字串序列词位标注进行了详解。

最后在Bakeo ff2006的评测语料上进行了封闭测试。

[关键词]汉语分词;条件随机场;词位标注;特征模板[中图分类号]T P391 [文献标识码]A [文章编号]1671-5330(2010)05-0001-05 在中文信息处理领域,词是最小的能够独立运用的有意义的语言单位。

但汉语书写时却以字为基本的书写单位,词语之间不存在明显的分隔标记,因此,中文信息处理领域的一项基础性研究课题是如何将汉语的字串切分为合理的词语序列,即汉语分词。

它不仅是句法分析、语义分析、篇章理解等深层中文信息处理的基础,也是机器翻译、自动问答系统、信息检索和信息抽取等应用的关键环节[1,2]。

近年来,尤其是2003年7月首届国际中文分词评测活动Bakeo ff 开展以来,汉语分词技术取得了可喜的进步,该领域的研究取得了令人振奋的成果[3,4]。

其中,基于字的词位标注汉语分词技术(也称为基于字标注的汉语分词或由字构词)得到了广泛关注,在可比的评测中性能领先的系统几乎无一例外都应用了类似的标注思想[3,5]。

基于字的词位标注汉语分词将分词看作序列数据的标注问题,使用序列数据标注模型实现,例如,可采用条件随机场(Co nditional Random Fields ,简称CRFs )实现。

CRFs 是Lafferty 等[6]于2001年提出的一种用于序列数据标注的条件概率模型。

本文简要介绍了词位标注汉语分词的基本思想,探析了基于条件随机场实现词位标注汉语分词的机理,并对采用B 、M 、E 、S 四词位标注集,使12010年 安阳师范学院学报用CRF ++0.53工具包①实现字串序列词位标注的相关技术细节进行了讲解。

最后给出了在Bakeo ff2006的两种评测语料上的实验结果。

1 词位标注汉语分词的基本思想汉语中的每个词语是由一个字或多个字组成的,例如,“天空”、“今天”是两个字组成的词语,“异想天开”是四字词,“天”是单字词。

而构成词语的每个汉字在一个特定的词语中都占据着一个确定的构词位置,即词位。

本文中我们规定字只有四种词位:B (词首)、M (词中)、E (词尾)和S (单字成词)。

由此,四字词“异想天开”标注每个字的词位后就是:“异/B 想/M 天/M 开/E ”。

并且同一个汉字在不同的词语中可以占据不同的词位,例如,汉字“天”在上面的四个词语中的词位依次是:词首B 、词尾E 、词中M 、单字词S 。

词位标注汉语分词技术就是把分词过程看做每个字的词位标注问题。

如果一个汉语字串中每个字的词位都确定了,那么该字串的词语切分也就完成了。

例如:要对字串“当希望工程救助的百万儿童成长起来。

”进行分词,只需求出该字串的词位标注结果(1),根据词位标注汉语分词的基本思想,由词位标注结果就很容易得到相应的分词结果(2)了。

(1)词位标注结果:当/S 希/B 望/M 工/M 程/E 救/B 助/E 的/S 百/B 万/E 儿/B 童/E 成/B 长/E 起/B 来/E 。

/S(2)分词结果:当 希望工程 救助 的 百万 儿童 成长 起来 。

需要注意的是,由于汉语真实文本中还包含少量的非汉字字符,所以基于字的词位标注中所说的字不仅仅指汉字,而且还包括标点符号、西文字母、数字等其他非汉字字符。

2 基于条件随机场的词位标注汉语分词词位标注汉语分词技术的实质是将汉语分词转化为字序列的词位标注问题,该问题可使用序列数据标注模型之一的条件随机场来实现。

本小节重点解析条件随机场如何对字序列到词位序列进行建模,以及建模过程中需要注意的关键问题。

2.1条件随机场简介条件随机场是一种以给定的输入结点值为条件来预测输出结点值概率的条件概率模型。

用于模拟序列数据标注的C RFs 是一个简单的链图或线图(如图1所示),它是一种最简单也最重要的CRFs ,称为线链C RFs (linear -chain C RFs )。

图1 线链CRFs 的图形结构设O ={o 1,o 2,……,o T }表示被观察的输入数据序列,例如有待标注词位的字序列。

S ={s 1,s 2,……,s T }表示被预测的词位标记序列。

这样,在一个输入字串序列给定的情况下,参数为Λ={λ1,λ2,…,λK }的线链C RFs ,其词位序列的条件概率为:P Λ(S O )=1Z Oex p (∑T t =1∑Kk =1λk f k (s t -1,s t ,o ,t ))(1)其中,Z O 是归一化因子,它确保所有可能的词位序列的条件概率之和为1,即它是所有可能的词位序列的“得分”的和:Z O =∑S exp (∑Tt =1∑Kk =1λk f k (s t -1,s t ,o ,t ))(2)f k (s t -1,s t ,o ,t )是一个任意的特征函数,用于表达上下文可能的语言特征。

条件随机场模型通过特征函数能够整合任何特征,包括可观察字序列O 在时刻t 的所有特征,即当前字及其上下文所组成字串序列的特征,以及隐变量词位的转移特征s t -1→s t 。

一般来说,特征函数定义在一个加氏集O ×S 上,其中,O 是可能的上下文或者任意的预定义条件的集合,S 是一组可选的标注集。

特征函数通常是一个二值表征函数,表示如下:f k (s t -1,s t ,o ,t )=1,如果满足条件0,否则(3)λk 是一个需要从训练语料中学习的参数,是相应的特征函数f k (s t -1,s t ,o ,t )的权重,取值范围可以是-∞到+∞。

给定一个由公式(1)定义的条件随机场模型,在已知输入的字串序列O 的情况下,最可能的词位标记序列可以由下式求出:S*=arg max SP Λ(S O )(4)最可能的词位标记序列可以由上式通过类似于H MM 中的韦特比算法动态规划求出。

建立从字序列到词位标记序列的CRFs 模型还有两个关键问题:参数估计和特征选择。

参数估计是从训练数据集学习每一个特征的权重参2安阳师范学院学报 2010年数,即求解向量Λ={λ1,λ2,…,λK}的过程。

而特征选择是筛选出对C RFs模型有表征意义的特征,结合本文所采用的CRF++0.53工具包,其关键在于根据具体的任务设定一组合适的特征模板。

C RFs模型进行序列数据标注时需要使用大量的上下文特征,习惯上,我们把这些上下文特征按照共同的属性分为若干组,称之为特征模板。

2.2 CRF++中特征模板的设定在具体使用C RF++0.53工具包进行词位标注汉语分词的时候,设定的特征模板有两大类: (1)Unig ram(一元)特征模板,这类特征模板在模板文件中以大写字母“U”开头;(2)Big ram(二元)特征模板,这类特征模板以大写字母“B”开头。

特别需要注意的是,这里的“一元”、“二元”是对特征中出现的词位标记个数而言的,而不是对特征中的字的个数而言。

从这个意义上讲,这里的“一元”、“二元”不同于大多数已有文献中的含义。

对于基于字的词位标注汉语分词这一任务而言,可供选择的特征非常少,主要需要考虑的是字特征[3]。

字特征是指当前字本身及其上下文构成的特征,根据文献[3]中“使用前后各两个字是比较理想的”结论,则这一具体任务的字特征是指当前字本身、以及当前字前后各两个字所组成的特征。

结合采用的CRF++这一工具包,参考文献[3],根据和当前字的字距不同将所有字特征抽象为10类,对应10个特征模板,这些特征模板属于Unigram(一元)特征模板。

表1给出了这些特征模板的所属类型、一般表示形式、C RF++工具包模板文件中的形式、模板表征的意义等。

在CRFs模型进行训练的时候,这些特征模板将会扩展出数以千万计的特征,并且每个特征都对应一组特征函数,这些特征函数对CRFs模型的学习至关重要。

从表1可以看到,第二类:Big ram (二元)特征模板仅仅包含一个特征模板:B,该模板用于表征上下文中相邻两个字的词位转移特征。

训练中该模板扩展出的特征是有限的,对四词位标注汉语分词而言,可以扩展出16个(词位转移)特征。

表1 特征模板列表模板类型特征模板CRF++中模板的形式模板表征的意义U nig ram(一元)C-2U00:%x[-2,0]当前字的前面第二个字C-1U01:%x[-1,0]当前字的前一个字C0U02:%x[0,0]当前字C1U03:%x[1,0]当前字的后一个字C2U04:%x[2,0]当前字的后面第二个字C-2C-1U05:%x[-2,0]/%x[-1,0]当前字的前面两个字组成的字串C-1C0U06:%x[-1,0]/%x[0,0]当前字前一个字和当前字组成的字串C0C1U07:%x[0,0]/%x[1,0]当前字及其后一个字组成的字串C1C2U08:%x[1,0]/%x[2,0]当前字的后面两个字组成的字串C-1C1U09:%x[-1,0]/%x[1,0]当前字的前一个字和后一个字Big ram(二元)T-1T0B相邻两个字的词位转移特征3 实验结果为验证本文采用B、M、E、S四词位,使用条件随机场作为词位标注建模工具,并使用表1中的11个特征模板进行汉语分词的方法,我们在Bakeo ff2006的两种简体中文评测语料上分别进行了训练和评测。

相关主题