_cuclife.com
当前位置:cuclife.com > IT > ASP.NET >

三种中文分词算法优劣比较

中文分词包括三种方法:1)基于字符串匹配的分词;2)基于理解的分词;3)基于统计的分词。到目前为止,还无法证明哪一种方法更准确,每种方法都有自己的利弊,有强项也有致命弱点,简单的对比见下表所示:

  各种分词方法的优劣对比

  分词方法   基于字符串匹配分词   基于理解的分词   基于统计的分词

  歧义识别   差   强   强

  新词识别   差   强   强

  需要词典   需要   不需要   不需要

  需要语料库   否   否   是

  需要规则库   否   是   否

  算法复杂性   容易   很难   一般

  技术成熟度   成熟   不成熟   成熟

  实施难度   容易   很难   一般

  分词准确性   一般   准确   较准

  分词速度   快   慢   一般

  (1)歧义识别

  歧义识别指一个字符串有多种分词方法,计算机难以给出到底哪一种分词算法才是正确的分词系列。如"表面的"可以分为"表面/的"或"表/面的"。计算机无法判断哪一种才是准确的分词系列。

  基于字符串的分词算法:仅仅是跟一个电子词典进行比较,故不能进行歧义识别;

  基于理解的分词算法:指通过理解字符串的含义,故有很强的歧义识别能力;

  基于统计的分词算法:根据字符连续出现次数的多少,得到分词系列,故常常能够给出正确的分词系列选择,但是也有可能判断错误的情况。

  (2)新词识别

  新词识别也称作未登录词识别,指正确识别词典中没有出现的词语。姓名、机构名、地址、称谓等千变万化,词典中常常不能完全收录这些词语;另外,网络中出现的流行用语也是一种未登录词的常见来源,如"打酱油"为最近出现在网络中,并迅速流行,从而成为一个新词。大量的研究证明新词识别是中文分词准确性的一个重要影响因素。

  基于字符串的分词算法:无法正确识别未登录词,因为这种算法仅仅与词典中存在的词语进行比较;

  基于理解的分词算法:理解字符串的含义,从而有很强的新词识别能力;

  基于统计的分词算法:这种算法对第二种未登录词有很强的识别能力,因为出现次数多,才会当作一个新词;对于第二类未登录词,这类词语有一定的规律,如姓名:"姓"+ 名字,如李胜利;机构:前缀+称谓,如希望集团;故需要结合一定的规则进行识别,仅仅统计方法难以正确识别。

  (3)需要词典

  基于字符串的分词算法:基本思路就是与电子词典进行比较,故电子词典是必须的。并且词典越大,分词的正确率越高,因为词典越大,未登录词越少,从而可以大大减少未登录词识别的错误;

  基于理解的分词算法:理解字符串的含义,故不需要一个电子词典;

  基于统计的分词算法:仅仅根据统计得到最终的结果,故电子词典不是必须的。

  (4)需要语料库

  基于字符串的分词算法:分词过程仅仅与一个已经存在的电子词典进行比较,故不需要语料库;

  基于理解的分词算法:理解字符串的含义,故不需要电子词典;

  基于统计的分词算法:需要语料库进行统计训练,故语料库是必须的;且好的语料库是分词准确性的保证。

  (5)需要规则库

  基于字符串的分词算法:分词过程仅仅与一个已经存在的电子词典进行比较,不需要规则库来进行分词;

  基于理解的分词算法:规则是计算机进行理解的基础,故准确、完备的规则库是这种分词算法的前提;

  基于统计的分词算法:根据语料库统计训练,故规则库不是必须的。

  (6)算法复杂性

  基于字符串的分词算法:仅仅进行字符串的比较操作,故算法简单;

  基于理解的分词算法:需要充分处理各种规则,故算法非常复杂;事实上到目前为止,还没有成熟的这类算法;

  基于统计的分词算法:需要语料库进行训练,虽然算法也比较复杂,但是已经比较常见,故这种分词的复杂性比第一种大,比第二种容易。现在的实用分词系统都采用这种算法。

  (7)技术成熟度

  基于字符串的分词算法:是最早出现也是最成熟的算法;

  基于理解的分词算法:是最不成熟的一类算法,到目前为止还没有成熟的算法;

  基于统计的分词算法:已经有多种成熟的这类算法,基本上能够满足实际的应用。

  故技术成熟度:基于匹配的分词算法〉基于理解的分词算法〉基于统计的分词算法。

  (8)实施复杂性

  同上面的道理,实施复杂性:基于理解的分词算法〉基于统计的分词算法〉基于匹配的分词算法。

  (9)分词准确性

  到目前为止还没有一个准确的结论,不过从理论上说,基于理解的分词算法有最高的分词准确性,理论上有100%的准确性;而基于匹配的分词算法和基于统计的分词算法是一种"浅理解"的分词方法,不涉及真正的含义理解,故可能会出现错误,难以达到100%的准确性。

  (10)分词速度

  基于匹配的分词算法:算法简单,操作容易,故分词速度快,所以这种算法常常作为另外两种算法的预处理,进行字符串的粗分;

  基于理解的分词算法:这种算法常常需要操作一个巨大的规则库,故速度最慢;

  基于统计的分词算法:这种分词算法仅仅是与一个统计结果进行比较,故速度一般。

  故一般的分词速度从快到慢依次为:基于匹配的分词算法〉基于统计的分词算法〉基于理解的分词算法。

文章来源:网络整理  本站编辑:兰特
上一篇:F#教程:不变性
下一篇:OData 的实际应用:通过开放数据协议构建富 Internet 应用程序
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)