lucene开源中文分词器 IKAnalyzer2.0.2 共享及源码发布

最新版IKAnalyzer 3.0已发布,详细请浏览: http://linliangyi2007.iteye.com/blog/429960

客户词典扩展API,补充说明:
类 : org.mira.lucene.analysis.dict.Dictionary
方法 :public static void loadExtendWords(List wordList)
(PS:实际上该API一直存在于v2.0.2,都怪俺没做好API文档,自己汗一下 )

使用说明:
IKAnalyzer基于lucene2.0版本API开发,实现了以词典分词为基础的正反向全切分算法,是Lucene Analyzer接口的实现,代码使用例子如下:
import org.mira.lucene.analysis.IK_CAnalyzer <------- 引用类
import .....

public class IKAnalyzerTest extends TestCase {

   RAMDirectory directory;
   private IndexSearcher searcher;

   public void setUp() throws Exception {

     directory = new RAMDirectory();
     IndexWriter writer = new IndexWriter(directory,
                      new IK_CAnalyzer(), <------- 实例化类
                          true);

     Document doc = new Document();
     doc.add(Field.Keyword("title", "中文分词测试"));
     doc.add(Field.Text("description", "Illidium Space Modulator"));
     writer.addDocument(doc);
     writer.close();
     searcher = new IndexSearcher(directory);
  }

  public void testTermQuery() throws Exception {
    Query query = new TermQuery(new Term("title", "中文分词"));
    Hits hits = searcher.search(query);
    assertEquals(1, hits.length());
  }
}


分词效果测试,命令行如下:
java -classpath IKAnalyzer.jar;lucene-core-2.0.0.jar org.mira.lucene.analysis.IK_CAnalyzer 中华人民共和国香港特别行政区

性能与特性:
1. 正向全切分算法,42万汉字字符/每秒的处理能力(IBM ThinkPad 酷睿I 1.6G 1G内存 WinXP)
2. 对数量词、地名、路名的优化处理
3. 对未知词汇采用自识别结合二元切分算法,确保搜索召回率

V 2.0.2 修订 Bata版对二元切分的缺陷

正向全切分分词器:org.mira.lucene.analysis.IK_CAnalyzer(适合建索引时使用)

正向最大全切分分词器:org.mira.lucene.analysis.MIK_CAnalyzer(适合用户输入检索时使用)

下面演示“正向最大全切分分词器”效果:

例子:中华人民共和国香港特别行政区
0 - 7 = 中华人民共和国
7 - 14 = 香港特别行政区


例子:据路透社报道,印度尼西亚社会事务部一官员星期二(29日)表示,日惹市附近当地时间27日晨5时53分发

生的里氏6.2级地震已经造成至少5427人死亡?,20000余人受伤,近20万人无家可归。
1 - 4 = 路透社
4 - 6 = 报道
7 - 12 = 印度尼西亚
12 - 14 = 社会
14 - 17 = 事务部
17 - 18 = 一
18 - 20 = 官员
20 - 23 = 星期二
24 - 27 = 29日
28 - 30 = 表示
31 - 34 = 日惹市
34 - 36 = 附近
36 - 40 = 当地时间
40 - 43 = 27日
43 - 44 = 晨
44 - 46 = 5时
46 - 49 = 53分
48 - 50 = 分发
49 - 51 = 发生
52 - 54 = 里氏
54 - 58 = 6.2级
58 - 60 = 地震
60 - 62 = 已经
62 - 64 = 造成
64 - 66 = 至少
66 - 71 = 5427人
71 - 73 = 死亡
74 - 79 = 20000
79 - 81 = 余人
81 - 83 = 受伤
84 - 85 = 近
85 - 89 = 20万人
89 - 93 = 无家可归

一年后才发现没有上传jar包,汗到火星鸟!!

你可能感兴趣的:(eclipse,linux,浏览器,XP,Lucene)