技术文章 > 三种中文分词算法优劣比较

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

2018-09-19 10:46

文档管理软件,文档管理系统,知识管理系统,档案管理系统的技术资料:
http://www.blogjava.net/jiangyz/articles/238120.html
如有需要可以转载,但转载请注明出处,并保留这一块信息,谢谢合作!
部分内容参考互联网,如有异议,请跟我联系!
作者:刀剑笑(Blog:http://blog.csdn.net/jyz3051)
Email:jyz3051 at yahoo dot com dot cn('at'请替换成'@','dot'请替换成'.' )
===============================================================================
关键词:中文分词,中文分词算法,基于字符串匹配的分词,基于理解的分词,基于统计的分词
到目前为止,中文分词包括三种方法:1)基于字符串匹配的分词;2)基于理解的分词;3)基于统计的分词。到目前为止,还无法证明哪一种方法更准确,每种方法都有自己的利弊,有强项也有致命弱点,简单的对比见下表所示:
各种分词方法的优劣对比
分词方法
基于字符串匹配分词
基于理解的分词
基于统计的分词
歧义识别



新词识别



需要词典
需要
不需要
不需要
需要语料库



需要规则库



算法复杂性
容易
很难
一般
技术成熟度
成熟
不成熟
成熟
实施难度
容易
很难
一般
分词准确性
一般
准确
较准
分词速度


一般
(1)歧义识别
歧义识别指一个字符串有多种分词方法,计算机难以给出到底哪一种分词算法才是正确的分词系列。如"表面的"可以分为"表面/的"或"表/面的"。计算机无法判断哪一种才是准确的分词系列。
基于字符串的分词算法:仅仅是跟一个电子词典进行比较,故不能进行歧义识别;
基于理解的分词算法:指通过理解字符串的含义,故有很强的歧义识别能力;
基于统计的分词算法:根据字符连续出现次数的多少,得到分词系列,故常常能够给出正确的分词系列选择,但是也有可能判断错误的情况。
(2)新词识别
新词识别也称作未登录词识别,指正确识别词典中没有出现的词语。姓名、机构名、地址、称谓等千变万化,词典中常常不能完全收录这些词语;另外,网络中出现的流行用语也是一种未登录词的常见来源,如"打酱油"为最近出现在网络中,并迅速流行,从而成为一个新词。大量的研究证明新词识别是中文分词准确性的一个重要影响因素。
基于字符串的分词算法:无法正确识别未登录词,因为这种算法仅仅与词典中存在的词语进行比较;
基于理解的分词算法:理解字符串的含义,从而有很强的新词识别能力;
基于统计的分词算法:这种算法对第二种未登录词有很强的识别能力,因为出现次数多,才会当作一个新词;对于第二类未登录词,这类词语有一定的规律,如姓名:"姓"+ 名字,如李胜利;机构:前缀+称谓,如希望集团;故需要结合一定的规则进行识别,仅仅统计方法难以正确识别。
(3)需要词典
基于字符串的分词算法:基本思路就是与电子词典进行比较,故电子词典是必须的。并且词典越大,分词的正确率越高,因为词典越大,未登录词越少,从而可以大大减少未登录词识别的错误;
基于理解的分词算法:理解字符串的含义,故不需要一个电子词典;
基于统计的分词算法:仅仅根据统计得到最终的结果,故电子词典不是必须的。
(4)需要语料库
基于字符串的分词算法:分词过程仅仅与一个已经存在的电子词典进行比较,故不需要语料库;
基于理解的分词算法:理解字符串的含义,故不需要电子词典;
基于统计的分词算法:需要语料库进行统计训练,故语料库是必须的;且好的语料库是分词准确性的保证。
(5)需要规则库
基于字符串的分词算法:分词过程仅仅与一个已经存在的电子词典进行比较,不需要规则库来进行分词;
基于理解的分词算法:规则是计算机进行理解的基础,故准确、完备的规则库是这种分词算法的前提;
基于统计的分词算法:根据语料库统计训练,故规则库不是必须的。
(6)算法复杂性
基于字符串的分词算法:仅仅进行字符串的比较操作,故算法简单;
基于理解的分词算法:需要充分处理各种规则,故算法非常复杂;事实上到目前为止,还没有成熟的这类算法;
基于统计的分词算法:需要语料库进行训练,虽然算法也比较复杂,但是已经比较常见,故这种分词的复杂性比第一种大,比第二种容易。现在的实用分词系统都采用这种算法。
(7)技术成熟度
基于字符串的分词算法:是最早出现也是最成熟的算法;
基于理解的分词算法:是最不成熟的一类算法,到目前为止还没有成熟的算法;
基于统计的分词算法:已经有多种成熟的这类算法,基本上能够满足实际的应用。
故技术成熟度:基于匹配的分词算法〉基于理解的分词算法〉基于统计的分词算法。
(8)实施复杂性
同上面的道理,实施复杂性:基于理解的分词算法〉基于统计的分词算法〉基于匹配的分词算法。
(9)分词准确性
到目前为止还没有一个准确的结论,不过从理论上说,基于理解的分词算法有最高的分词准确性,理论上有100%的准确性;而基于匹配的分词算法和基于统计的分词算法是一种"浅理解"的分词方法,不涉及真正的含义理解,故可能会出现错误,难以达到100%的准确性。
(10)分词速度
基于匹配的分词算法:算法简单,操作容易,故分词速度快,所以这种算法常常作为另外两种算法的预处理,进行字符串的粗分;
基于理解的分词算法:这种算法常常需要操作一个巨大的规则库,故速度最慢;
基于统计的分词算法:这种分词算法仅仅是与一个统计结果进行比较,故速度一般。
故一般的分词速度从快到慢依次为:基于匹配的分词算法〉基于统计的分词算法〉基于理解的分词算法。