您的位置:首页 > 运维架构 > Linux

CRF中文分词开源版发布啦

2011-11-29 16:36 323 查看
http://crfdecoder.sourceforge.net/
http://crfpp.sourceforge.net/
CRF中文分词开源版发布啦
langiner@gmail.com
中文分词是互联网应用不可缺少的基础技术之一,也是语音和语言产品必不可少的技术组件。

 

自2003年第一届国际中文分词评测以来,由字构词的分词方法获得了压倒性优势,国内主要通过CRF++开源软件包来学习该分词方法,但是CRF++过于复杂的代码结构,导致了该算法的普及率。本次首先发布了CRF中文分词开源版仅仅包含CRF++软件包中分词解码器部分,简化了CRF++复杂代码结构,清除了分词解码器不需要的代码,大大提高了分词解码器的可读性和可懂度。同时为了方便学习者可视化跟踪和调试代码,在Windows平台下分别建立了VC6.0和VS2008两个工程文件,使得VC6.0用户和VS2008用户都能轻玩转中文分词。

条件随机场 (CRF) 分词序列谈之一
Langiner@gmail.com
 
判别式机器学习技术来解决分词问题,其中判别式机器学习技术主要代表有条件随机场,最大熵/隐马尔科夫最大熵、感知机,支撑向量机等,有关它们的相同点与不同点以后有机会在谈,今天主要谈利用随机场解决分词问题
条件随机场(Conditional Random Fields)由John Lafferty提出并应用于自然语言处理领域,主要用于序列标注问题,如分词、实体识别、词性标注(当然词性数目相对比较小的情况下)、浅层句法分析等问题。
判别式机器学习技术解决分词问题基于由字构词理念,将分词问题转化为分类问题,通过定义每个字的词位信息(每个字在词中的位置)来确定字类别的序列预测,而词位信息可以定义为下面其中任何一种

两类(词首和词中)、三类(词首、词中和词尾)、四类(词首、词中、词尾,单字词)等等,一般而言,类别越多,字的区别能力越强,分类越精确,但是分类空间越大,模型也越大,解码空间越大,导致解码速度也越慢,实际系统中,三类别(词首、词尾和词中)是一个很好的平衡。
互联网上开源的随机场项目很多,最典型和使用最多的是CRF++,里面有完整的源代码和应用实例,通过该软件,我们可以方便学习和使用。CRF++开源代码最大问题是只有Linux版,考虑到Linux环境下,跟踪调试不方便,如果在Windows下通过建立Visual C++或者Visual Studio工程,通过跟踪调试,更加有效地学习该算法,本人将自己的学习实践中,将Linux版本移植到Windows平台上,并将其开源在SourceForge平台上(CRF中文分词开源版)。
利用哪些特征业绩如何利用这些特征是机器学习算法性能关键,中文分词主要使用字的上下文知识,上下文范围可以是3字、5字和7字,同时考虑到由字构词处理长词比较弱,可以考虑引入仿词模式、成语/习语等特征,有研究表示,加入核心词典会提高词典词的分类效果,这需要权衡,如果训练语料覆盖核心词典比较全面,核心词典的构词知识往往在语料中已经包含,但是如果训练语料对于核心词覆盖不够,可以考虑加入核心词的构词知识,但是这对核心词典有比较高的要求,我们认为北大计算语言研究所发布的GKB词典可以作为核心词典使用,如果没有比较好的核心词典,这个核心词的构词知识还是不要加入为好。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息