分词方法一:从字构造词
关于搜索引擎技术中的中文分词,让很多全文检索爱好者都头痛不已,这里我将几篇有用的文章介绍给大家。
现有的中文分词方法基本上都是采用基于词表的正(反)向最大匹配法进行词语切分。不过这种分词方法具有一个最大的问题,对于未登录词(也就是在词表中并未录入的词)的切分具有先天的不足,一般的解决方法是在基于正向最大匹配法切分模块后再加入一个未登录词模块,用于处理对于未登录词的切分。而在中文分词技术中,对于未登录词的切分错误极大的影响到了整体分词的召回率。现在主流的分词算法对于未登录词的召回率仍然在0.6 左右。
最新的一种分词算法叫做“由字构词”的分词方法,关于“由字构词”分词方法的最早的一篇论文发表在2002 年第一届SIGHAN 研讨会上,紧接着Xue 在ME 模型上实现了由字构词的分词系统参加了Bakeoff2003 的评测,获得了封闭测试项目的第二名,让人瞩目的是,它对于未登录词的召回率高达70%以上。而在Bakeoff2005 的各项赛事中,基于由字构词方法的分词系统几乎囊括了开放和封闭测试的全部冠军!而到了Bakeoff2006,由微软亚洲研究院采用基于CRF 模型实现的由字构词分词系统,获得了参加的六项评测中的四个第一,两个第三。
由字构词的分词方法和以往的分词方法不同,它是把分词视为一个字的分类问题。在微软亚洲研究院的系统中,他们把字分成了六类:S(单独成词)、 B(词首)、B2(词中第二个字)、B3(词中第三个字)、M(词中)、E(词尾)。比如以下的分词结果,可以将字标注为以下形式:
1. /上海/计划/到/本/世纪/末/实现/人均/国内/生产/总值/五千美元/。/
2. 上/B海/E计/B划/E到/S本/S世/B纪/E末/S实/B现/E人/B均/E国/B内/E生/B产/E总/B值/E五/B千/B2美/B3元/E。/S
/上海/计划/到/本/世纪/末/实现/人均/国内/生产/总值/五千美元/。/ 上/B海/E计/B划/E到/S本/S世/B纪/E末/S实/B现/E人/B均/E国/B内/E生/B产/E总/B值/E五/B千/B2美/B3元/E。/S
那么最后可以形成一个字库,规定每个字的词位标记中某一个词位超过50%,那么就认为这个词位是这个字的主词位,否则就认为这个字是自由字。在现有的资料中,语料库中总字量为5147 个,有主词位的字为3920 个,占据总字量的76%。
个人感觉由字构词的分词方法有两个优点:
1、能很好的切分未登录词,而使中文分词切分召回率得到显著提高
2、词表非常小,中文中172个汉字就占据了所有中文用字的50%以上,常用汉字也就2000多个,比起基于最大匹配法所用到的词表小了非常多。
最重要的是构建一个字表,基本形式如下:
1. 的 S
2. 一 B
3. 是 S
剩下的处理过程就和基于词表的正向最大匹配过程一样了,采用EM 或者 HMM 模型,对字窗中的字进行切分.
由字构词的方法解决的就是新词(未登录词)的猜测成功率,基于词表的大概在60%-70%左右,而此方法可以高达80%-90%甚至更高。
现在语言学界对于分词以及语意识别一般有两种取向,基于统计和基于规则。而事实验证,可行的方式只有以统计为主,在时间日期、命名实体(组织机构名或者人名、地名)上面辅助以规则的分词对于分词的准确率以及分词效率是最高的。
对于中文来讲,一个词蕴涵着多种含义,如何区分他们的关系,一边正确的切词成为了另人头疼的问题。