强大的lucene中文分词器
package com.wellhope.lucene;
import java.io.StringReader;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenStream;
import org.mira.lucene.analysis.IK_CAnalyzer;
public class ShowResult {
public static void show(Analyzer a, String s) throws Exception {
StringReader reader = new StringReader(s);
TokenStream ts = a.tokenStream(s, reader);
Token t = ts.next();
while (t != null) {
System.out.println(t.termText());
t = ts.next();
}
}
public static void main (String [] args) throws Exception {
Analyzer a = new IK_CAnalyzer();
String key = "中华人民共和国";
show(a, key);
}
}
输出结果:
中华人民共和国
中华人民
中华
华人
人民共和国
人民
人
共和国
共和
1 楼 transist 2007-08-01 这个分词的确不错,但是仅限于对搜索结果要求不高的互联网,在企业全文检索中,会出现很多无法检索到。
对于企业应用来说,用户一般追求匹配度,IK_CAnalyzer有个大的问题就是对于一连串无法识别的字会当成一个词。如陈官镇下溪村,假如在词库未包含以上任何词,那么用户习惯性输入"陈官",就无法检索。 2 楼 yfmine 2007-08-02 对不认识的直接用二元分词就好办了 3 楼 transist 2007-08-02 我也觉得对不认识的一段文字干脆一元分词或者二元分词,否则会造成很多记录无法检索出来。 4 楼 fyting 2007-08-02 所以一个问题是能否检索到数据,还有一个是如何让结果更准确,只有根据具体应用具体处理了.这里对用户输入的数据也进行分词,对不认识的用WildCard好像也能检索到 5 楼 森海 2007-08-02 还是需要提高的,在中文分词方面还有很多弊端。对于要求不高的用户来说是不错的选择。 6 楼 imjl 2007-08-03 森海 写道还是需要提高的,在中文分词方面还有很多弊端。对于要求不高的用户来说是不错的选择。
同意。 7 楼 duronshi 2007-08-03 org.apache.lucene.analysis.Analyzer 相关包提示找不到呀 8 楼 linliangyi2007 2007-08-16 感谢各位的建议。新版分词器已经发布,整合了二元分词
下载地址:http://download.csdn.net/source/227957
来自“猎图网 www.richmap.cn”基于IKAnalyzer分词算法的准商业化Lucene中文分词器。
1. 正向全切分算法,42万汉字字符/每秒的处理能力(IBM ThinkPad 酷睿I 1.6G 1G内存 WinXP)
2. 对数量词、地名、路名的优化处理
3. 对未知词汇采用自识别结合二元切分算法,确保搜索召回率
9 楼 linliangyi2007 2007-08-27 新版IKAnalyzer V2.0.2 Lucene中文分词器下载地址 : http://download.csdn.net/source/236243
V 2.0.2 修订 Bata版对二元切分的缺陷
正向全切分分词器:org.mira.lucene.analysis.IK_CAnalyzer(适合建索引时使用)
正向最大全切分分词器:org.mira.lucene.analysis.MIK_CAnalyzer(适合用户输入检索时使用) 10 楼 licco1 2007-08-28 林哥,问个简单的问题,lucene这个词怎么个发音法?呵呵