2011年12月6日 星期二

Lucene 3.0 的幾種分詞系統


1 StopAnalyzer
StopAnalyzer能過濾詞彙中的特定字串和詞彙,並且完成大寫轉小寫的功能。
2 StandardAnalyzer
StandardAnalyzer根據空格和符號來完成分詞,還可以完成數位、字母、E-mail位址、IP位址以及中文字元的分析處理,還可以支持過濾詞表,用來代替StopAnalyzer能夠實現的過濾功能。
3 SimpleAnalyzer
SimpleAnalyzer具備基本西文字元詞彙分析的分詞器,處理詞彙單元時,以非字母字元作為分割符號。分詞器不能做詞彙的過濾,之進行詞彙的分析和分割。輸出地詞彙單元完成小寫字元轉換,去掉標點符號等分割符。
在全文檢索系統開發中,通常用來支援西文符號的處理,不支援中文。由於不完成單詞過濾功能,所以不需要過濾詞庫支援。詞彙分割策略上簡單,使用非英文字元作為分割符,不需要分詞詞庫的支持。
4 WhitespaceAnalyzer
WhitespaceAnalyzer使用空格作為間隔符的詞彙分割分詞器。處理詞彙單元的時候,以空格字元作為分割符號。分詞器不做詞彙過濾,也不進行小寫字元轉換。
實際中可以用來支援特定環境下的西文符號的處理。由於不完成單詞過濾和小寫字元轉換功能,也不需要過濾詞庫支援。詞彙分割策略上簡單使用非英文字元作為分割符,不需要分詞詞庫支援。
5 KeywordAnalyzer
KeywordAnalyzer把整個輸入作為一個單獨詞彙單元,方便特殊類型的文本進行索引和檢索。針對郵遞區號,位址等文本資訊使用關鍵字分詞器進行索引項目建立非常方便。
6 CJKAnalyzer
CJKAnalyzer內部調用CJKTokenizer分詞器,對中文進行分詞,同時使用StopFilter篩檢程式完成過濾功能,可以實現中文的多元切分和停用詞過濾。在Lucene3.0版本中已經棄用。
7 ChineseAnalyzer
ChineseAnalyzer功能與StandardAnalyzer分析器在處理中文是基本一致,都是切分成單個的雙位元組中文字元。在Lucene3.0版本中已經棄用。
8 PerFieldAnalyzerWrapper
PerFieldAnalyzerWrapper功能主要用在針對不同的Field採用不同的Analyzer的場合。比如對於檔案名,需要使用KeywordAnalyzer,而對於檔內容只使用StandardAnalyzer就可以了。通過addAnalyzer()可以添加分類器。
9 IKAnalyzer
實現了以詞典為基礎的正反向全切分,以及正反向最大匹配切分兩種方法。IKAnalyzer是協力廠商實現的分詞器,繼承自LuceneAnalyzer類,針對中文文本進行處理。
10JE-Analysis
JE-AnalysisLucene的中文分片語件,需要下載。
11 ICTCLAS4J
ictclas4j中文分詞系統是sinboy在中科院張華平和劉群老師的研製的FreeICTCLAS的基礎上完成的一個java開源分詞項目,簡化了原分詞程式的複雜度,旨在為廣大的中文分詞愛好者一個更好的學習機會。
imdict-chinese-analyzer  imdict智慧詞典 的智慧中文分詞模組,演算法基於隱瑪律科夫模型(Hidden Markov Model, HMM),是中國科學院計算技術研究所的ictclas中文分詞程式的重新實現(基於Java),可以直接為lucene搜尋引擎提供簡體中文分詞支援。
Paoding Analysis中文分詞具有極 高效率 高擴展性。引入隱喻,採用完全的物件導向設計,構思先進。其效率比較高,在PIII 1G記憶體個人機器上,1秒可準確分詞100萬漢字。採用基於不限制個數的詞典檔對文章進行有效切分,使能夠將對詞彙分類定義。能夠對未知的詞彙進行合理解析。
14 MMSeg4J
mmseg4j  Chih-Hao Tsai  MMSeg 演算法(http://technology.chtsai.org/mmseg/ )實現的中文分詞器,並實現lucene  analyzer  solr TokenizerFactory 以方便在LuceneSolr中使用。 MMSeg 演算法有兩種分詞方法:SimpleComplex,都是基於正向最大匹配。Complex 加了四個規則過慮。官方說:詞語的正確識別率達到了 98.41%mmseg4j 已經實現了這兩種分詞演算法


沒有留言: