最新版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接口的實現,代碼使用例子如下:
分詞效果測試,命令行如下:
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包,汗到火星鳥??!
客戶詞典擴展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包,汗到火星鳥??!
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
