`
sole
  • 浏览: 139503 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

( 转载)让专家门大跌眼镜的中文分词算法的诞生

阅读更多

特别声明:该篇文章并非个人原创,是从新浪博客http://blog.sina.com.cn/s/blog_4a95553b010005z0.html转载过来的。 转载的原因是由于文章所表现出的作者对技术如此有激情所感染,深深地佩服作者的执着与热情。看完这篇文章后顿时热血沸腾,要是能遇到这样的牛人做朋友,人生之莫大幸事。虽我的技术能力还不能与作者相提并论,但立志向作者学习!

 

    前天晚上,下班后打完篮球,继续改分词中的BUG,大量的弱智BUG让我非常生气,为何如此简单的句子计算机都会出错?我们的分词算法中到底缺乏了人类分词的一个什么信息.我拼命的去回忆自己分词的时候用到过哪些信息,人到底是如何分词的?

   苦苦思索中,晚上9:30终于想到一个人类分词的一个信息,我试着去模拟把这个信息加如入分词,用笔划出一个证明公式.晚上10点半:迫不及待的给老大发了一份公式证明.接着就开始写相关代码.11点半:公司关门,无奈以最快的速度跑回家.
   每天回家我都要看上一会电视,什么节目都看,也从不管有多晚,因为每天白天工作一天脑子都在思维,在高速旋转,似乎是惯性,回家后如果直接睡觉,思维的旋转根本没法停下来.看会电视的目的是为了让脑神经轻松下来,让旋转的转盘停下来,这样可以达到防止失眠的效果.
   看电视,冲凉到1点半,躺床上,脑子又开始想起那个算法,无奈,早就猜到是个不眠之夜,干脆先买两瓶酒放着,2点多,到外面小买店敲门拿了两瓶酒,躺床上接着想.
  
   方法可行是肯定的,而且自己已经证明了,需要考虑的是时间,空间,以及错误的可还原性,问题,速度没话说,肯定快很多,空间X*Y/A*B = 765625;估计77K(后来发现这个估算有错误,实际的要多些),My God!在空间和时间上都比其它算法好!不,是好很多很多!
 
   想到这我已经知道,今晚想睡着已经是完全不可能了.干脆起床做沙发上边喝边想.我把思路从头再想了一篇,不想错过任何一个细节,酒....刺激了我的神经...脑神经旋转速度加快,懵懂中,我竟然发现前面的想法是错误的!!!极度失望.我再考虑了一遍,我确认开始是错误的!不是再做梦,但不甘心这么好的想法会泡汤,接着屡了一下思路.
 
   几个回合之后,终于发现之前犯的那个错误只是个小错误,并不影响我的思路.重新考虑,确认无误.而且此时已经想到一个更好的统计数据的方法....统计数据,压缩数据,分词.为防止天亮后自己忘了某个细节,5:40多,拼命的在房子里找笔,想把他记下来...平时都有笔的,今天怎么都找不到...
 
  真后悔自己没用手机,要是有手机,肯定这时要给老大打电话,或者直接跑到他家里去把他叫醒.
   无奈之下决定不睡了.我就坐到天亮,背靠墙躺着,把剩下的一瓶酒开了,塞上耳机.防止自己睡着,把闹钟开到7点.
   深夜,音乐,啤酒,香烟...痛快了享受了一把平日里最怀念的大学里毫无压力的轻松的感觉...
 
   慢慢的靠墙睡着了,7点种被闹钟吵醒,第一反应,将自己的想法再屡了一遍,确认不是梦,确认自己还记得那个让我激动一宵的算法.以最快的速度穿衣服/洗刷/跑到公司,一口气跑到六楼,给老大打电话.忍住激动的口气跟他说:我发现了一个"空前绝后"的方法...
 
   老大来了之后,我只用了5分钟给他解释我的想法.因为原理非常简单,算法也非常简单,分词的字典也是非常简单.一切就是那么简单....
  我敢确定,分一个普通的句子,不会再有比我的算法更快的了.而一般的速度快的"最少切分","正向最大匹配","逆向最大匹配",分错了就很难恢复,而我的分词法,即使分错了,再经过一定的处理,仍然可以继续恢复,而且很简单的就可以恢复出来.
 
 这就是这个算法的整个诞生过程,我很想把算法公开,由于牵涉到商业机密,具体算法,暂时不能告诉大家,等我把我的测试平台公布出来之后,我争取说服领导...
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics