1、mmseg4j 用 Chih-Hao Tsai 的 MMSeg 算法( http://technology.chtsai.org/mmseg/ ?)實(shí)現(xiàn)的中文分詞器,并實(shí)現(xiàn) lucene 的 analyzer 和 solr 的TokenizerFactory 以方便在Lucene和Solr中使用。
2、MMSeg 算法有兩種分詞方法:Simple和Complex,都是基于正向最大匹配。Complex 加了四個(gè)規(guī)則過(guò)慮。官方說(shuō):詞語(yǔ)的正確識(shí)別率達(dá)到了 98.41%。mmseg4j 已經(jīng)實(shí)現(xiàn)了這兩種分詞算法。
- 1.5版的分詞速度simple算法是 1100kb/s左右、complex算法是 700kb/s左右,(測(cè)試機(jī):AMD athlon 64 2800+ 1G內(nèi)存 xp)。
- 1.6版在complex基礎(chǔ)上實(shí)現(xiàn)了最多分詞(max-word)。“很好聽(tīng)” -> "很好|好聽(tīng)"; “中華人民共和國(guó)” -> "中華|華人|共和|國(guó)"; “中國(guó)人民銀行” -> "中國(guó)|人民|銀行"。
- 1.7-beta 版, 目前 complex 1200kb/s左右, simple 1900kb/s左右, 但內(nèi)存開(kāi)銷了50M左右. 上幾個(gè)版都是在10M左右.
作者博客: http://blog.chenlb.com/
因最近要做一個(gè)全文檢索的工具,在尋找中文分詞組件時(shí),在庖丁解牛和mmseg4j中選擇了mmseg4j.
這個(gè)是根據(jù)java版本翻譯過(guò)來(lái)的.
欲正確運(yùn)行l(wèi)ucene,需修改lucene2.9.2的源碼Lucene.Net.Index.ReusableStringReader中的Read()修改為:
int
r = -1;
|
???????????
if
(upto < s.Length)
|
???????????
{
|
???????????????
r = (
int
)s[upto];
|
???????????????
++upto;
|
???????????
}
|
???????????
return
r;
|
,否則在搜索時(shí)會(huì)找不到結(jié)果。
上圖是測(cè)試運(yùn)行結(jié)果。
測(cè)試代碼如下:
?
String txt = " 京華時(shí)報(bào)1月23日?qǐng)?bào)道 昨天,受一股來(lái)自中西伯利亞的強(qiáng)冷空氣影響,本市出現(xiàn)大風(fēng)降溫天氣,白天最高氣溫只有零下7攝氏度,同時(shí)伴有6到7級(jí)的偏北風(fēng)。 " ;
IndexWriter iw = new IndexWriter(GetDir, GetAna);
Document doc = new Document();
doc.Add( new Field( " txt " , txt, Field.Store.YES, Field.Index.ANALYZED));
iw.AddDocument(doc);
iw.Commit();
iw.Optimize();
iw.Close();
Console.WriteLine();
Console.WriteLine( " indexer ok.\r\n\r\n " );
IndexSearcher searcher = new IndexSearcher(GetDir, true );
QueryParser qp = new QueryParser( " txt " , GetAna);
Query q = qp.Parse( " 冷空氣 " ); // 2008年底
Console.WriteLine( " query>{0} " , q);
TopDocs tds = searcher.Search(q, 10 );
Console.WriteLine( " ======size: " + tds.totalHits + " ======== " );
foreach (ScoreDoc sd in tds.scoreDocs)
{
Console.WriteLine(sd.score);
Console.WriteLine(searcher.Doc(sd.doc).Get( " txt " ));
}
Console.WriteLine( " ok..... " );
?
歡迎大家使用,我將繼續(xù)發(fā)布一些關(guān)于lucene構(gòu)建全文檢索在應(yīng)用方面的文章。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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