分词算法

1.正向最大匹配算法

基于词典的正向最大匹配算法(最长词优先匹配),算法会根据词典文件自动调整最大长度,分词的好坏完全取决于词典。

 

算法流程图如下:

以上内容参见:http://yangshangchuan.iteye.com/blog/2031813

此文章还对比了linked list、array、trie树和hash table的方式实现正向最大匹配算法的性能对比!其中trie书和hash table的性能对比比较有意思!


2.逆向最大匹配算法

逆向最大匹配算法的实现思想参见上图的算法流程图,其区别有两点(红字标示):

从S1的尾部逆向选择长度不大于MaxLen的字符作为W,然后去字典中查询,如果查询不到,将W最左边的一个字去掉。

最大匹配算法的特点:

最大匹配算法在大型搜索系统中的使用频率较低,其主要问题有以下几点:
长度限制: 由于最大匹配法必须首先设定一个匹配词最大长度的初始值,这个长度限制是最大匹配法在效率与词长之间的一种妥协。因此:
词长过短,长词就会被切错。
词长过长,效率就比较低。
效率低: 由于很多词长会低于最大匹配的长度,因此,会造成大量的匹配浪费。
不能处理歧义和重叠字(不理解)

3.正向最小匹配算法

比如我们切分句子: “中华人民共和国万岁万岁万万岁”,使用正向最大匹配算法的切分结果为:[中华人民共和国, 万岁,万岁, 万万岁],可以看到,切分出来的词是很长的,粒度很粗,如果我们想要切分出很细粒度的词,该怎么办呢?——正向最小匹配算法。该算法和正向最大匹配算法相得益彰,一个强调细粒度,一个强调粗粒度。使用正向最小匹配算法,必须注意的一点是:词典中不能有单字词,词的长度至少为2!

最小匹配算法特点:

由于最小切分每次都只需要获得最小批评的词,速度快;
其次,在词典相对完善的情况下,该切分方法可以获得较好的准确率;
当前,Sf1r中使用,最小匹配方式。

4.统计分词算法

……

5.条件随机场算法

……

总结:


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值