注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

没有想法

乱写乱画

 
 
 

日志

 
 

最简单的分词算法  

2007-07-23 23:27:24|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
正序的最大匹配和倒序的最大匹配:
正序伪代码:
输入是一个字符串input[N],输出是一个词的数组。
for ( int i = 0; i < N; i ++) {
    for (int j = N-1; j > i; j --) {
        if (isword(input[i..j])) {
            output(input[i..j]);
            i = j;
        }
    }
    output(input[i]);
}
isword()是查字典,用hashtable应该很快。不知道网上有没有现成的模块。
大概意思就是这样了,伪代码写得不规范。算法复杂度是O(n^2),应该有更快的。
倒序的方法差不多,只不过是从后面开始匹配起,据说倒序的错误率要比正序的好一点。"产品和服务"是个不错的例子。
对于参考文章2有点小小的疑问,他说:单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245。
但是在传说分词技术很牛,足以与各大科研院所竞争的海量公司主页上却说:
海量科技以“砌词”为突破口,巧妙地解决困扰分词最大的问题——未登录词的识别问题,在其他问题上博采众长各个击破,采用复方概念平衡各算法,使海量分词在大规模语料测试中的准确率达到了99.5%,分词效率2000万字/分钟,基本上达到实用要求。
1-1/245=99.6%
所以我不知道该相信谁多一点,有没有分词的牛人给我解惑一下?


参考文章:
1.http://googlechinablog.com/2006/04/blog-post_10.html
2.http://www.fullsearcher.com/n2004911134640735.asp
  评论这张
 
阅读(205)| 评论(8)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017