Lucene中文分词
花了几天在网上逛,为了寻找更好的中文分词方法。很遗憾中文分词一直以来都没有一个标准或者权威的方法,不过方法倒时不少。通常的分词方式有那么几种:一、基于字符串匹配的方式;二、基于理解的方式;三、基于统计方式。目前网上大多数实现都使用第一种,第二种目前处于理论和尝试阶段,还有很长的路要走,第三种就有很好的数学模型作为支撑。
经过分词效果的对比,我决定使用MMSeg作为自己的分词工具。下面是对该分词器的描述的一段引用:
MMSeg只是实现了Chih-Hao Tsai的MMSEG算法,这是一个来源于网络的分词算法。我照抄了算法开始的部分:
MMSEG: A Word Identification System for Mandarin Chinese Text Based on Two Variants of the Maximum Matching Algorithm
Published: 1996-04-29
Updated: 1998-03-06
Document updated: 2000-03-12
License: Free for noncommercial use
Copyright 1996-2006 Chih-Hao Tsai (Email: hao520 at yahoo.com )
您可以在Chih-Hao Tsai's Technology Page找到算法的原文。
如果您只想了解一下MMSeg分词算法的基本原理可以看看MMSeg分词算法简述。
------------------------------------------------------------------
但由于MMSeg分词程序不是基于Lucene(不过作者Solo.L有意在编写该程序的时候留了后路,我在做Lucene结合的时候轻而易举。),我在与作者取得联系之后,写了一份Lucene的实现。详情可以查看原作者的Blog文。
至于MMSeg的分词原理,除了可以看那份Chih-hao Tsai的英文文档和Solo的算法简述,还可以去看下实现的源码。文档只字片言是说不清的。以后有时间的时候我考虑尝试下写些文档。当然前提是偶自己要搞透来,偶最头疼就是数学啊~~~
最后来看看一个分词效果:
before:到此为止这个简单的但是功能强大的分词器就写完了,下面咱们可以尝试写一个功能更强大的分词器。
after :到此为止_这个_简单_的_但是_功能_强大_的_分词_器_就_写完_了_,_下面_咱们_可以_尝试_写_一个_功能_更_强大_的_分词_器_。
before:我们的祖国是花园,花园的花朵真鲜艳。
after :我们_的_祖国_是_花园_,_花园_的_花朵_真_鲜艳_。
另:来自Google的参考资料:数学之美二--谈谈中文分词。
<EOF>
编程
jeff
2
lucene
评论(2条)
dfgdfgdfg