Archive for the ‘中文分词’ Category

如何DIY你的标注语料库

Monday, June 9th, 2008

如果你想写分词器,那么就需要有标注语料库进行训练,以下是 成 彦 的一些方法:

语料库标注或加工就是对语料(书面语和口语)进行不同层次的语言学分析,并添加相应的“显性”解释性语言学信息的过程。 语料库很关键,只有经过不周层次加工的“熟”语料才可真正用于自然语言处理系统的训练,测试。

目前我在网上找到的标注语料库是北京大学计算语言学研究所免费提供的“PFR人民日报标注语料1.0”。

PFR人民日报标注语料库1.0是在得到人民日报社新闻信息中心许可的条件下,以1998年人民日报语料为对象,由北京大学计算语言学研究所和富士通研究开发中心有限公司共同制作的标注语料库。该语料库对600多万字节的中文文章进行了分词及词性标注,其被作为原始数据应用于大量的研究和论文中。

是不是感觉该标注语料库太小太旧了? 那我们去构建自己的标注语料库吧。

思路:用最好的分词器去处理语料库,生成标注语料。

工具:海量分词器研究版,搜狗互联网语料库

海量分词器:目前最好的中文分词器,无论在速度还是准确性都是国内第一。切分准确率达99.7%,速度高达2000万字/分钟。

搜狗互联网语料库:完整版本的压缩后近130G,这需要自己去到搜狐联系。网上提供示例版,解压后是1G,50万篇文章。注意的一点是,不知道是否故意还是无意,这个文件里有错误,处理的时候一定要注意。该文件中一篇文档的分界标志是:
文档内容
而不是
文档内容

写个简短的程序,查看海量的文档,设置海量分词相应的输出格式,然后用海量切每一篇文档。

如此训练出的标注语料库,应该是质量蛮高的吧!

分词方法一:从字构造词

Monday, June 9th, 2008

关于搜索引擎技术中的中文分词,让很多全文检索爱好者都头痛不已,这里我将几篇有用的文章介绍给大家。

现有的中文分词方法基本上都是采用基于词表的正(反)向最大匹配法进行词语切分。不过这种分词方法具有一个最大的问题,对于未登录词(也就是在词表中并未录入的词)的切分具有先天的不足,一般的解决方法是在基于正向最大匹配法切分模块后再加入一个未登录词模块,用于处理对于未登录词的切分。而在中文分词技术中,对于未登录词的切分错误极大的影响到了整体分词的召回率。现在主流的分词算法对于未登录词的召回率仍然在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%甚至更高。
现在语言学界对于分词以及语意识别一般有两种取向,基于统计和基于规则。而事实验证,可行的方式只有以统计为主,在时间日期、命名实体(组织机构名或者人名、地名)上面辅助以规则的分词对于分词的准确率以及分词效率是最高的。

对于中文来讲,一个词蕴涵着多种含义,如何区分他们的关系,一边正确的切词成为了另人头疼的问题。