原创作者: caocao   阅读:2065次   评论:0条   更新时间:2011-05-26    
俺自己搞了个Lucene中文分词,看到版上qieqie师傅发表的他自己搞的Lucene中文分词,隐士很感兴趣,想进来说两句,注册一把,晕,三天后才可以说话,刚刚可以说话。俺来介绍一下俺的中文分词实现。参考站点:http://so.mdbchina.com
俺的分词做了这么几件事:装载各类词库 —— 中文繁体转简体 —— 初步分词 —— 在初步分词基础上进行运算量可控的二次分词(运算量o(n),n句子长度) —— 计算十几个分词结果的score —— 得到score最高的那个分词组合 —— 输出结果。
其中句子长度一般不必过滤,中文句子不会很长,遇标点符号即断开,所以n不会很大,o(n)完全可以承受。
类结构:
1 public class ChineseSimplificationFilter extends TokenFilter // 繁体转简体的filter
2 public class ChineseBreakDownAnalyzer extends Analyzer // 将中文打碎分析器,主要用来索引搜索关键词,实现相关搜索的功能
3 public class ChineseCCAnalyzer extends Analyzer // 上面提到的中文分词分析器
4 public class ChineseCCTokenizer extends Tokenizer implements ChineseTokenizerConstants // 对StandardTokenizer的Hack
5 public interface ChineseTokenizerConstants extends StandardTokenizerConstants // 此接口暂时为空,留待以后扩充
6 public class ChineseTokenizerTokenManager implements StandardTokenizerConstants // 对StandardTokenizerTokenManager的Hack
7 public class ChineseTokenMgrError extends Error // 定义一些错误代码
时间仓促没写那么多,初次在此发技术贴,没写很长刚才被管理员封杀了,惭愧,赶紧补一些。
我这个搜索引擎支持拼音搜索,纠正错别字,繁简混杂等功能。
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

文章信息

Global site tag (gtag.js) - Google Analytics