一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Lucene關(guān)于幾種中文分詞的總結(jié) (Lucene與搜索引擎技術(shù)) - [Matrix - 與 Java 共舞]

 ShangShujie 2008-05-14
前提:文章基于lucene2.2。
目前最新版本的lucene自身提供的StandardAnalyzer已經(jīng)具備中文分詞的功能,但是不一定能夠滿足大多數(shù)應用的需要。
另外網(wǎng)友談的比較多的中文分詞器還有:
CJKAnalyzer
ChineseAnalyzer
IK_CAnalyzer(MIK_CAnalyzer)
還有一些熱心網(wǎng)友自己寫的比較不錯的分詞器在此就不說了,有興趣的可以自己研究研究。
以上三個中文分詞器并不是lucene2.2.jar里提供的。
CJKAnalyzer和ChineseAnalyzer分別是lucene-2.2.0目錄下contrib目錄下analyzers的lucene-analyzers-2.2.0.jar提供的。分別位于cn和cjk目錄。
IK_CAnalyzer(MIK_CAnalyzer)是基于分詞詞典,目前最新的1.4版本是基于lucene2.0開發(fā)的。以上分詞器各有優(yōu)劣,比較如下:
import java.io.Reader;
import java.io.StringReader;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.StopFilter;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenFilter;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.cjk.CJKAnalyzer;
import org.apache.lucene.analysis.cn.ChineseAnalyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.mira.lucene.analysis.IK_CAnalyzer;
import org.mira.lucene.analysis.MIK_CAnalyzer;

public class All_Test {
     private static String string = "中華人民共和國在1949年建立,從此開始了新中國的偉大篇章。";
     public static void Standard_Analyzer(String str) throws Exception{
            Analyzer analyzer = new StandardAnalyzer();        
            Reader r = new StringReader(str);        
            StopFilter sf = (StopFilter) analyzer.tokenStream("", r);
            System.out.println("=====StandardAnalyzer====");
            System.out.println("分析方法:默認沒有詞只有字(一元分詞)");
            Token t;        
           while ((t = sf.next()) != null) {        
                  System.out.println(t.termText());        
            }      
      }
     public static void CJK_Analyzer(String str) throws Exception{
            Analyzer analyzer = new CJKAnalyzer();        
            Reader r = new StringReader(str);        
            StopFilter sf = (StopFilter) analyzer.tokenStream("", r);
            System.out.println("=====CJKAnalyzer====");
            System.out.println("分析方法:交叉雙字分割(二元分詞)");
            Token t;        
           while ((t = sf.next()) != null) {        
                  System.out.println(t.termText());        
            }      
      }
     public static void Chiniese_Analyzer(String str) throws Exception{
            Analyzer analyzer = new ChineseAnalyzer();        
            Reader r = new StringReader(str);        
            TokenFilter tf = (TokenFilter) analyzer.tokenStream("", r);
            System.out.println("=====chinese analyzer====");
            System.out.println("分析方法:基本等同StandardAnalyzer(一元分詞)");
            Token t;        
           while ((t = tf.next()) != null) {        
                  System.out.println(t.termText());        
            }      
      }
     public static void ik_CAnalyzer(String str) throws Exception{
//          Analyzer analyzer = new MIK_CAnalyzer();
            Analyzer analyzer = new IK_CAnalyzer();
            Reader r = new StringReader(str);
            TokenStream ts = (TokenStream)analyzer.tokenStream("", r);
            System.out.println("=====IK_CAnalyzer====");
            System.out.println("分析方法:字典分詞,正反雙向搜索");
            Token t;    
           while ((t = ts.next()) != null) {    
                 System.out.println(t.termText());    
            }    
      }
     public static void main(String[] args) throws Exception{
            String str = string;
            System.out.println("我們測試的字符串是:"+str);
          
            Standard_Analyzer(str);
            CJK_Analyzer(str);
            Chiniese_Analyzer(str);
            ik_CAnalyzer(str);
      }

}
分詞結(jié)果如下:
我們測試的字符串是:中華人民共和國在1949年建立,從此開始了新中國的偉大篇章。
=====StandardAnalyzer====
分析方法:默認沒有詞只有字(一元分詞)








1949
















=====CJKAnalyzer====
分析方法:交叉雙字分割(二元分詞)
中華
華人
人民
民共
共和
和國
國在
1949
年建
建立
從此
此開
開始
始了
了新
新中
中國
國的
的偉
偉大
大篇
篇章
=====chinese analyzer====
分析方法:基本等同StandardAnalyzer(一元分詞)
























=====IK_CAnalyzer====
分析方法:字典分詞,正反雙向搜索
中華人民共和國
中華人民
中華
華人
人民共和國
人民

共和國
共和
1949年
建立
從此
開始
新中國
中國
偉大
大篇
篇章
如果 ik_CAnalyzer(String str) 里采用
Analyzer analyzer = new MIK_CAnalyzer();
那么該方法的分詞結(jié)果是:

中華人民共和國
1949年
建立
從此
開始
新中國
偉大
大篇
篇章

可以看到各種分詞結(jié)果各不相同,根據(jù)應用的需要可以選擇合適的分詞器。
關(guān)于IKAnalyzer的介紹可以參考:
http://blog.csdn.net/dbigbear/archive/2007/01/24/1492380.aspx

文章來源:永恒論壇-h(huán)ttp://www.
http://www./Article.htm?cId=2&fId=3&aId=88

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美性猛交内射老熟妇| 日本精品最新字幕视频播放| 观看日韩精品在线视频| 成人精品视频一区二区在线观看| 国产中文字幕一区二区| 亚洲国产精品久久网午夜| 亚洲国产精品久久精品成人| 欧美一级特黄特色大色大片| 国产欧美日产久久婷婷| 午夜国产精品国自产拍av| 国产肥妇一区二区熟女精品| 欧美日韩国产精品自在自线| 视频在线播放你懂的一区| 好吊妞在线免费观看视频| 日韩中文字幕视频在线高清版| 国产精品久久精品国产| 欧美日韩在线视频一区| 人妻一区二区三区多毛女| 国产精品成人免费精品自在线观看| 人妻中文一区二区三区| 九九热视频经典在线观看| av中文字幕一区二区三区在线| 欧美黑人巨大一区二区三区| 久久久免费精品人妻一区二区三区| 欧美成人免费一级特黄| 国产午夜精品在线免费看| 久久99爱爱视频视频| 欧美精品久久99九九| 亚洲一区二区三区有码| 国产原创中文av在线播放| 欧美成人免费视频午夜色| 三级高清有码在线观看| 国产精品成人免费精品自在线观看| 日韩欧美亚洲综合在线| 激情三级在线观看视频| 色婷婷成人精品综合一区| 国产内射一级一片内射高清视频| 开心久久综合激情五月天| 一本色道久久综合狠狠躁| 日本二区三区在线播放| 国产精品亚洲综合天堂夜夜|