浏览 17158 次
锁定老帖子 主题:强大的lucene中文分词器
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-06-07
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); } } 输出结果: 中华人民共和国 中华人民 中华 华人 人民共和国 人民 人 共和国 共和 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-08-01
这个分词的确不错,但是仅限于对搜索结果要求不高的互联网,在企业全文检索中,会出现很多无法检索到。
对于企业应用来说,用户一般追求匹配度,IK_CAnalyzer有个大的问题就是对于一连串无法识别的字会当成一个词。如陈官镇下溪村,假如在词库未包含以上任何词,那么用户习惯性输入"陈官",就无法检索。 |
|
返回顶楼 | |
发表时间:2007-08-02
对不认识的直接用二元分词就好办了
|
|
返回顶楼 | |
发表时间:2007-08-02
我也觉得对不认识的一段文字干脆一元分词或者二元分词,否则会造成很多记录无法检索出来。
|
|
返回顶楼 | |
发表时间:2007-08-02
所以一个问题是能否检索到数据,还有一个是如何让结果更准确,只有根据具体应用具体处理了.这里对用户输入的数据也进行分词,对不认识的用WildCard好像也能检索到
|
|
返回顶楼 | |
发表时间:2007-08-02
还是需要提高的,在中文分词方面还有很多弊端。对于要求不高的用户来说是不错的选择。
|
|
返回顶楼 | |
发表时间:2007-08-03
森海 写道 还是需要提高的,在中文分词方面还有很多弊端。对于要求不高的用户来说是不错的选择。
同意。 |
|
返回顶楼 | |
发表时间:2007-08-03
org.apache.lucene.analysis.Analyzer 相关包提示找不到呀
|
|
返回顶楼 | |
发表时间: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. 对未知词汇采用自识别结合二元切分算法,确保搜索召回率 |
|
返回顶楼 | |
发表时间: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(适合用户输入检索时使用) |
|
返回顶楼 | |