您的位置:首页 > 其它

利用现有资源快速实现汉语专用分词系统

2008-05-07 21:11 357 查看
[align=center]利用现有资源快速实现汉语专用分词系统[/align]
[align=center] [/align]
[align=center]年洪东 [/align]
[align=center](南京师范大学文学院 ,江苏 南京 210097)[/align]
[摘要] 汉语的自动分词是进行汉语语言处理的基础,也是广大语言工作者建立自己专用语料库的基础工作,本文利用网上一些开源的软件工具和语料资源实现了针对新闻语料的专用分词系统,经测试分词准确率和召回率均达到了令人满意的效果。
[关键词] 自动分词 条件随机场 由字构词 特征模板

[align=center]一、引言[/align]
自动分词是中文信息处理的基础,广泛应用于信息检索、机器翻译、自动摘要、文本分类、语音识别等各方面。现代汉语的自动分词就是用计算机给包含汉字在内的字符串加上词语分隔标记。常用的分词方法两类:基于词典的方法,如:正向最大匹配(MM)和逆向最大匹配(RMM),基于统计的方法,如:最大概率法(MP)、基于统计互信息(MI)、隐马模型(HMM)和最大熵模型(ME)等。但是这些分词方法不仅程序设计相对复杂而且对现代汉语的两种切分歧义(交集型切分歧义,组合型切分歧义)的切分效果不十分理想。所以我们采用基于条件随机场(CRF)的六词位分词方法,来进行分词。
条件随机场是一个无向图的判别模型,对于一组长设为n的观察序列X=X1X2X3…Xn(要标记的汉字序列),输出为Y=Y1Y2Y3…Yn(相应的标注序列)。这样就把分词问题转化为相应的标注问题,而条件随机场的最大优点就是它能够加入任意的特征作为输入特征,能够充分利用训练集的统计信息和中文的构词特点,为每个词添加新的统计特征。也就是说它能根据特定领域里的文本特点来随意的改变和加入相关特征,从而向模型提供关于词更多的信息,使分词效果大大提高。这里我们不打算介绍CRF的数学模型,读者可以参看John Lafferty(2001)。

[align=center]二、分词理论介绍[/align]
[align=left]本文所用的由字构词方法(Character- based Tagging,CBT)是由John Laffery[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]提出,他的分词论文发表在2002 年第一SIGHAN研讨会上,当时并未引起学界的重[/align]
[align=left]视。到了Bakeoff2006,由字构词的分词系统已遍地开花。其中微软亚洲研究院用CRF模型实现的六词位的由字构词分词系统在参加的六项中文分词评测中获得四个第一和两个第三。下面我们就介绍这种六词位分词方法。[/align]
[align=left]CBT分词方法把分词看成是字的“词位”分类问题,最简单的词位是二分:B(词首),E(非词首)。而六词位标注集为:[/align]

词位
B,B2, B3,M, E, SS, BE, BB2E, BB2B3E, BB2B3ME,BB2B3MME,…
[align=left] [/align]
[align=left]这样计算机就可以从训练语料库中学习字的词位知识,包括字在特定词位上的概率,以及上下文特征。例如:[/align]
[align=left]►分词结果:/上海/计划/到/本/世纪/末/实现/人均/国内/生产/总值/五千美元/。/[/align]
►按六词位的标注:上/B海/E计/B划/E 到/S 本/S世/B纪/E末/S实/B现/E人/B均/E国/B内/E生/B产/E总/B值/E五/B千/B2美/B3元/E。/S
►用一元和二元文法特征模板,按六词位学习上下文特征,以“计”为例,等于获取了以下6条规则:

[align=left](1)如果前一字是“海”,当前字标为B[/align]
(2)如果当前字是“计”,当前字标为B
(3)如果后一字是“划”,当前字标为B
(4)如果前一字是“海”并且当前字是“计”,当前字标为B
(5)如果当前字是“计”并且后一字是“划”, 当前字标为B
(6)如果前一字是“海”并且后一字是“划”,当前字标为B

[align=center]三、分词系统的流程[/align]

[align=center] [/align]
[align=center]训练语料预处理[/align]
[align=center]六词位标注[/align]
[align=center]用条件随机场训练模型[/align]
[align=center]生语料分词测试及评测[/align]
[align=center]四、语料处理程序设计[/align]
[align=center] [/align]
本文用的语料是北京大学手工标注的1998年1月份的《人民日报》语料(读者可以到北大计算语言研究所网站http://icl.pku.edu.cn/icl_groups/corpus上下载)。语料处理程序我们采用的Visual Foxpro6.0来设计的,VFP是一种解释型的语言,便于编写和调试而且它具有强大的数语库功能,让我们可不必考虑复杂的数据结构和数组越界的问题,所以它特别适合于处理大规模的语料。
首先我们设计从语料中取词例(TOKEN)的子程序:
FUNCTION GET_TOKEN
PARAMETERS S &&从开头取,以空格为界
I=AT(" ",S)
IF I>0
T=LEFT(S,I-1)
S=LTRIM(STUFF(S,1,I,""))
ELSE
T=S
S=""
ENDIF
RETURN T

第二步是设计从词例中取词(WORD)的程序:
FUNCTION GET_WORD
PARAMETERS TOKEN
I=AT("/",TOKEN) &&以“/“为界
IF I=0
RETURN TOKEN
ELSE
RETURN LEFT(TOKEN,I-1)

第三步也是最重要的一步是六词位标注程序,它调用了前两个子程序,为了节省篇幅,我们中间采用了一些伪代码。
DO WHILE !FEOF(FP)
S=ALLTRIM(FGETS(FP,8000))
DO WHILE !EMPTY(S)
TOKEN=GET_TOKEN(@S)
DO GET_WORD WITH TOKEN, W
N=LENC(W)
DO CASE
CASE N=1
标注单字词词位 "S"
CASE N=2
标注两字词词位"BE"
CASE N=3
标注三字词词位"BFE"
CASE N=4
………………
ENDCASE
ENDDO
ENDDO

[align=center]五、用CRF训练及测试[/align]
[align=center] [/align]
条件随机场CRF是个开源软件,可以到下面网址上去下载(http://chasen.org /~taku/software/CRF++/#features)。下载到的windows版的CRF软件有两个文件:crf_learn.exe 和 crf_test.exe ,前者是学习训练程序,后者是测试程序。
在使用之前我们先编写CRF的特征模板,如上所述,如果我们要以一元和二元的特征作为参数,则特征模板为:
# Unigram[/b]
U00:%x[-2,0][/b]
U01:%x[-1,0][/b]
U02:%x[0,0][/b]
U03:%x[1,0][/b]
U04:%x[2,0][/b]
U05:%x[-1,0]/%x[0,0][/b]
U06:%x[0,0]/%x[1,0][/b]
U07: %x[-1,0]/%x[1,0][/b]
U08: %x[-2,0]/%x[2,0][/b]
# Bigram[/b]
B[/b]
其中Unigram和Bigram是目标列的一元和二元依存特征,U00-U08是指九条特征参数。好了,有了特征模板和六词位标注好的语料后,我们就可以进行训练了,在windows中的模拟DOS窗口中,输入:
C:\>crf_learn template Train.txt model
Train.txt是训练文本,这时屏幕会显示iter(迭代次数)、serr(与sentence相关的错误率)、obj(当前对象的值)、diff(与上一个对象值之间的相对差)等信息,当训练完成后,程序会自动停止。这样我们就生成了六词位标注的训练模型model。下一步,我们就可以用这个训练模型model来对生语料进行分了。同样输入:
C:\>crf_test –m model Test.txt –o output.txt
Test.txt是测试文本,output.txt是分词标注好的输出文本。需要说明的是,测试文本必须和训练文本具有相同的格式(除去标注序列),否则程序不能正确执行。
最后我们要做的工作就是对测试输出的文本进行分词还原和对测试结果进行评测,因为这二个程序相对简单,我们就不再赘述了,我们把语料按9:1比例分为训练语料和测试语料。本实验用的机器是P4 1.7G 内存为1G,用上述模板和语料训练时间约为9个小时,以词为单位,开放测试准确率为95.45%,召回率为94.88%,这样的结果完全可以用于自己专用语料库的基础建设工作。
参考文献
1 John Lafferty, A. McCallum and F. Pereira. 2001.Conditional Random Field: Probabilistic Models for Segmenting and Labeling Sequence Data. In Proceeding of the Eighteenth International Conference on Machine Learning, 282 – 289 . June28-July01 , 2001
2 HaiZhao, Chang-Ning Huang, 2006. An Improved Chinese Word Segmentation System  with Conditional Random In Proceedings of the Fifth SIGHAN Workshop on Chinese Language Processing,162—165. July 2006
本文出自 “nianhongdong” 博客,请务必保留此出处http://nianhongdong.blog.51cto.com/269023/75661
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐