久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

發(fā)布IK Analyzer 3.0 中文分詞器

 A_POST 2013-12-04
最新:IKAnalyzer3.2.3穩(wěn)定版已經(jīng)發(fā)布,,支持Lucene3.0和solr1.4 
鏈接:http://www./topic/667095 

lucene 2.9以前用戶請(qǐng)使用 IKAnalyzer V3.1.6GAhttp://linliangyi2007./blog/512577 

IK Analyzer是一個(gè)開源的,基于java語言開發(fā)的輕量級(jí)的中文分詞工具包,。從2006年12月推出1.0版開始, IKAnalyzer已經(jīng)推出了3個(gè)大版本,。最初,它是以開源項(xiàng)目Luence為應(yīng)用主體的,,結(jié)合詞典分詞和文法分析算法的中文分詞組件,。新版本的IK Analyzer 3.0則發(fā)展為面向Java的公用分詞組件,獨(dú)立于Lucene項(xiàng)目,,同時(shí)提供了對(duì)Lucene的默認(rèn)優(yōu)化實(shí)現(xiàn),。 

1.1 IK Analyzer 3.0結(jié)構(gòu)設(shè)計(jì) 
 

1.2 IK Analyzer 3.0特性 
  • 采用了特有的“正向迭代最細(xì)粒度切分算法“,具有80萬字/秒的高速處理能力
  • 采用了多子處理器分析模式,,支持:英文字母(IP地址,、Email、URL),、數(shù)字(日期,,常用中文數(shù)量詞,羅馬數(shù)字,,科學(xué)計(jì)數(shù)法),,中文詞匯(姓名、地名處理)等分詞處理,。
  • 優(yōu)化的詞典存儲(chǔ),,更小的內(nèi)存占用。支持用戶詞典擴(kuò)展定義
  • 針對(duì)Lucene全文檢索優(yōu)化的查詢分析器IKQueryParser(作者吐血推薦),;采用歧義分析算法優(yōu)化查詢關(guān)鍵字的搜索排列組合,,能極大的提高Lucene檢索的命中率。


1.3 分詞效果示例 

文本原文1: 
IK-Analyzer是一個(gè)開源的,,基于java語言開發(fā)的輕量級(jí)的中文分詞工具包,。從2006年12月推出1.0版開始, IKAnalyzer已經(jīng)推出了3個(gè)大版本,。 
分詞結(jié)果: 
ik-analyzer | 是 | 一個(gè) | 一 | 個(gè) | 開源 | 的 | 基于 | java | 語言 | 開發(fā) |  的 | 輕量級(jí) | 量級(jí) | 的 | 中文 | 分詞 | 工具包 | 工具 |  從  | 2006 | 年 | 12 | 月 | 推出 | 1.0  | 版 | 開始 | ikanalyzer | 已經(jīng) |  推出 | 出了 |  3  |  個(gè)大 |  個(gè) | 版本 

文本原文2: 
永和服裝飾品有限公司 
分詞結(jié)果: 
永和 | 和服 | 服裝 | 裝飾品 | 裝飾 | 飾品 | 有限 |  公司 

文本原文3: 
作者博客:linliangyi2007.   電子郵件:[email protected] 
分詞結(jié)果: 
作者 | 博客 |  linliangyi2007. |  2007 |  電子郵件 |  電子 |  郵件 |  地址 |  [email protected] |  2005 

2.使用指南 

2.1下載地址 
GoogleCode開源項(xiàng)目 :http://code.google.com/p/ik-analyzer/ 
GoogleCode SVN下載:http://ik-analyzer./svn/trunk/ 

2.2安裝部署 
IK Analyzer安裝包包含: 
1. 《IKAnalyzer中文分詞器V3.0使用手冊(cè)》(即本文檔) 
2. IKAnalyzer3.0GA.jar 
3. IKAnalyzer.cfg.xml 
它的安裝部署十分簡(jiǎn)單,,將IKAnalyzer3.0GA.jar部署于項(xiàng)目的lib目錄中;IKAnalyzer.cfg.xml文件放置在代碼根目錄(對(duì)于web項(xiàng)目,,通常是WEB-INF/classes目錄,,同hibernate、log4j等配置文件相同)下即可,。 


2.3 Lucene用戶快速入門 

代碼樣例 
Java代碼  收藏代碼
  1. /** 
  2.  * IK Analyzer Demo 
  3.  * @param args 
  4.  */  
  5. import java.io.IOException;  
  6.   
  7. import org.apache.lucene.analysis.Analyzer;  
  8. import org.apache.lucene.document.Document;  
  9. import org.apache.lucene.document.Field;  
  10. import org.apache.lucene.index.CorruptIndexException;  
  11. import org.apache.lucene.index.IndexWriter;  
  12. import org.apache.lucene.search.IndexSearcher;  
  13. import org.apache.lucene.search.Query;  
  14. import org.apache.lucene.search.ScoreDoc;  
  15. import org.apache.lucene.search.TopDocs;  
  16. import org.apache.lucene.store.Directory;  
  17. import org.apache.lucene.store.LockObtainFailedException;  
  18. import org.apache.lucene.store.RAMDirectory;  
  19. //引用IKAnalyzer3.0的類  
  20. import org.wltea.analyzer.lucene.IKAnalyzer;  
  21. import org.wltea.analyzer.lucene.IKQueryParser;  
  22. import org.wltea.analyzer.lucene.IKSimilarity;  
  23.   
  24. /** 
  25.  * @author linly 
  26.  * 
  27.  */  
  28. public class IKAnalyzerDemo {  
  29.       
  30.     public static void main(String[] args){  
  31.         //Lucene Document的域名  
  32.         String fieldName = "text";  
  33.          //檢索內(nèi)容  
  34.         String text = "IK Analyzer是一個(gè)結(jié)合詞典分詞和文法分詞的中文分詞開源工具包,。它使用了全新的正向迭代最細(xì)粒度切分算法。";  
  35.           
  36.         //實(shí)例化IKAnalyzer分詞器  
  37.         Analyzer analyzer = new IKAnalyzer();  
  38.        
  39.           
  40.         Directory directory = null;  
  41.         IndexWriter iwriter = null;  
  42.         IndexSearcher isearcher = null;  
  43.         try {  
  44.             //建立內(nèi)存索引對(duì)象  
  45.             directory = new RAMDirectory();    
  46.             iwriter = new IndexWriter(directory, analyzer, true , IndexWriter.MaxFieldLength.LIMITED);  
  47.             Document doc = new Document();  
  48.             doc.add(new Field(fieldName, text, Field.Store.YES, Field.Index.ANALYZED));  
  49.             iwriter.addDocument(doc);  
  50.             iwriter.close();  
  51.               
  52.             //實(shí)例化搜索器     
  53.             isearcher = new IndexSearcher(directory);             
  54.             //在索引器中使用IKSimilarity相似度評(píng)估器  
  55.             isearcher.setSimilarity(new IKSimilarity());  
  56.               
  57.             String keyword = "中文分詞工具包";  
  58.               
  59.             //使用IKQueryParser查詢分析器構(gòu)造Query對(duì)象  
  60.             Query query = IKQueryParser.parse(fieldName, keyword);  
  61.               
  62.             //搜索相似度最高的5條記錄  
  63.             TopDocs topDocs = isearcher.search(query , 5);  
  64.             System.out.println("命中:" + topDocs.totalHits);  
  65.             //輸出結(jié)果  
  66.             ScoreDoc[] scoreDocs = topDocs.scoreDocs;  
  67.             for (int i = 0; i < topDocs.totalHits; i++){  
  68.                 Document targetDoc = isearcher.doc(scoreDocs[i].doc);  
  69.                 System.out.println("內(nèi)容:" + targetDoc.toString());  
  70.             }             
  71.               
  72.         } catch (CorruptIndexException e) {  
  73.             e.printStackTrace();  
  74.         } catch (LockObtainFailedException e) {  
  75.             e.printStackTrace();  
  76.         } catch (IOException e) {  
  77.             e.printStackTrace();  
  78.         } finally{  
  79.             if(isearcher != null){  
  80.                 try {  
  81.                     isearcher.close();  
  82.                 } catch (IOException e) {  
  83.                     e.printStackTrace();  
  84.                 }  
  85.             }  
  86.             if(directory != null){  
  87.                 try {  
  88.                     directory.close();  
  89.                 } catch (IOException e) {  
  90.                     e.printStackTrace();  
  91.                 }  
  92.             }  
  93.         }  
  94.     }  
  95. }  

執(zhí)行結(jié)果: 
命中:1 
內(nèi)容:Document<stored/uncompressed,indexed,tokenized<text:IK Analyzer是一個(gè)結(jié)合詞典分詞和文法分詞的中文分詞開源工具包,。它使用了全新的正向迭代最細(xì)粒度切分算法,。>>
 


2.4 關(guān)鍵API說明 

? 類org.wltea.analyzer.lucene.IKAnalyzer 
說明:IK分詞器的主類,是IK分詞器的Lucene Analyzer類實(shí)現(xiàn),。 
該類使用方法請(qǐng)參考 “代碼樣例”章節(jié) 

? 類org.wltea.analyzer.lucene.IKQueryParser 
? public static Query parse(String field , String query) throws IOException 
說明:?jiǎn)螚l件,單Field查詢分析 
參數(shù)1 :String field,  查詢的目標(biāo)域名稱 
參數(shù)2 :String query , 查詢的關(guān)鍵字 
返回值:構(gòu)造一個(gè)單條件,單Field查詢器 

? public static Query parseMultiField(String[] fields , String query) throws IOException 
說明:多Field,單條件查詢分析 
參數(shù)1 :String[] fields,  多個(gè)查詢的目標(biāo)域名稱的數(shù)組 
參數(shù)2 :String query , 查詢的關(guān)鍵字 
返回值:構(gòu)造一個(gè)多Field,單條件的查詢器 

? public static Query parseMultiField(String[] fields , String query ,  BooleanClause.Occur[] flags) throws IOException 
說明:多Field,單條件,多Occur查詢分析 
參數(shù)1 :String[] fields,  多個(gè)查詢的目標(biāo)域名稱的數(shù)組 
參數(shù)2 :String query , 查詢的關(guān)鍵字 
參數(shù)3 :BooleanClause.Occur[] flags ,, 查詢條件的組合方式(Or/And) 
返回值:構(gòu)造一個(gè)多Field,單條件,多Occur的查詢器 

? public static Query parseMultiField(String[] fields , String[] queries) throws IOException 
說明:多Field,,多條件查詢分析 
參數(shù)1 :String[] fields,  多個(gè)查詢的目標(biāo)域名稱的數(shù)組 
參數(shù)2 :String[] queries , 對(duì)應(yīng)多個(gè)查詢域的關(guān)鍵字?jǐn)?shù)組 
返回值:構(gòu)造一個(gè)多Field,多條件的查詢器 

? public static Query parseMultiField(String[] fields , String[] queries , BooleanClause.Occur[] flags) throws IOException 
說明:多Field,多條件,多Occur查詢 
參數(shù)1 :String[] fields,  多個(gè)查詢的目標(biāo)域名稱的數(shù)組 
參數(shù)2 :String[] queries , 對(duì)應(yīng)多個(gè)查詢域的關(guān)鍵字?jǐn)?shù)組 
參數(shù)3 :BooleanClause.Occur[] flags ,, 查詢條件的組合方式(Or/And) 
返回值:構(gòu)造一個(gè)多Field, 多條件, 多Occur的查詢器 

? 類org.wltea.analyzer.lucene.IKSimilarity 
說明: IKAnalyzer 的相似度評(píng)估器,。該類重載了DefaultSimilarity的coord方法,提高詞元命中個(gè)數(shù)在相似度比較中的權(quán)重影響,,即,,當(dāng)有多個(gè)詞元得到匹配時(shí),文檔的相似度將提高,。 
該類使用方法請(qǐng)參考 “代碼樣例”章節(jié) 

? 類org.wltea.analyzer.IKSegmentation 
說明: 這是IK分詞器的核心類。它是真正意義上的分詞器實(shí)現(xiàn),。IKAnalyzer的3.0版本有別于之前的版本,,它是一個(gè)可以獨(dú)立于Lucene的Java分詞器實(shí)現(xiàn)。當(dāng)您需要在Lucene以外的環(huán)境中單獨(dú)使用IK中文分詞 組件時(shí),,IKSegmentation正是您要找的,。 
? public Lexeme next() throws IOException 
說明:讀取分詞器切分出的下一個(gè)語義單元,如果返回null,,表示分詞器已經(jīng)結(jié)束,。 
返回值:Lexeme 語義單元對(duì)象,即相當(dāng)于Lucene的詞元對(duì)象Token 

? 類org.wltea.analyzer.Lexeme 
說明: 這是IK分詞器的語義單元對(duì)象,,相當(dāng)于Lucene中的Token詞元對(duì)象,。由于3.0版本被設(shè)計(jì)為獨(dú)立于Lucene的Java分詞器實(shí)現(xiàn),因此它需要Lexeme來代表分詞的結(jié)果,。 
? public int getBeginPosition() 
說明:獲取語義單元的起始字符在文本中的位置 
返回值:int ,, 語義單元相對(duì)于文本的絕對(duì)起始位置 

? public int getEndPosition() 
說明:獲取語義單元的結(jié)束字符的下一個(gè)位置 
返回值:int , 語義單元相對(duì)于文本的絕對(duì)終止位置的下一個(gè)字符位置 

? public int getLength() 
說明:獲取語義單元包含字符串的長(zhǎng)度 
返回值:int ,, 語義單元長(zhǎng)度 = getEndPosition – getBeginPosition 

? public String getLexemeText() 
說明:獲取語義單元包含字符串內(nèi)容 
返回值:String,, 語義單元的實(shí)際內(nèi)容,即分詞的結(jié)果 


3.詞表擴(kuò)展 

目前,,IK分詞器自帶的主詞典擁有22萬左右的漢語單詞量,。由于作者個(gè)人的精力有限,并沒有對(duì)搜集到的詞庫進(jìn)行全范圍的篩選,、清理,。此外,對(duì)于分詞組件應(yīng)用場(chǎng)景所涉及的領(lǐng)域的不同,,也需要各類專業(yè)詞庫的支持,。為此,IK分詞器提供了對(duì)詞典的擴(kuò)充支持,。 

基于API的詞典擴(kuò)充 
IK分詞器支持使用API編程模型擴(kuò)充您的詞典,。如果您的詞典是存儲(chǔ)與數(shù)據(jù)庫中,,這個(gè)方式應(yīng)該對(duì)您適用。API如下: 

? 類org.wltea.analyzer.dic.Dictionary 
說明: IK分詞器的詞典對(duì)象,。它負(fù)責(zé)中文詞匯的加載,,內(nèi)存管理和匹配檢索。 
? public static void loadExtendWords(List<String> extWords) 
說明:加載用戶擴(kuò)展的詞匯列表到IK的主詞典中,,增加分詞器的可識(shí)別詞語,。 
參數(shù)1:List<String> extWords , 擴(kuò)展的詞匯列表 
返回值:無 

3.2基于配置的詞典擴(kuò)充 
IK分詞器還支持通過配置IKAnalyzer.cfg.xml文件來擴(kuò)充您的專有詞典,。 

1. 部署IKAnalyzer.cfg.xml 
IKAnalyzer.cfg.xml部署在代碼根目錄下(對(duì)于web項(xiàng)目,,通常是WEB-INF/classes目錄)同hibernate、log4j等配置文件相同,。 

2. 詞典文件的編輯與部署 
分詞器的詞典文件格式是無BOM的UTF-8編碼的中文文本文件,,文件擴(kuò)展名不限。詞典中,,每個(gè)中文詞匯獨(dú)立占一行,,使用\r\n的DOS方式換行。(注,,如果您不了解什么是無BOM的UTF-8格式,, 請(qǐng)保證您的詞典使用UTF-8存儲(chǔ),并在文件的頭部添加一空行),。您可以參考分詞器源碼org.wltea.analyzer.dic包下的.dic文件,。 

詞典文件應(yīng)部署在Java的資源路徑下,即ClassLoader能夠加載的路徑中,。(推薦同IKAnalyzer.cfg.xml放在一起)


3. IKAnalyzer.cfg.xml文件的配置 
Xml代碼  收藏代碼
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE properties SYSTEM "http://java./dtd/properties.dtd">    
  3. <properties>    
  4.     <comment>IK Analyzer 擴(kuò)展配置</comment>  
  5.     <!--用戶可以在這里配置自己的擴(kuò)展字典-->  
  6.     <entry key="ext_dict">/mydict.dic ; /mypack/mydict2.dic ; /com/mycompany/dic/mydict3.dic ;</entry>   
  7. </properties>  

在配置文件中,,用戶可一次配置多個(gè)詞典文件。文件名使用“;”號(hào)分隔,。文件路徑為相對(duì)java包的起始根路徑,。 

(全文終) 


下載 :IKAnalyzer3.1.1穩(wěn)定版完整包.rar 

更多詳細(xì)請(qǐng)參看《IKAnalyzer中文分詞器V3.1.1使用手冊(cè).pdf》 

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多