Lucene中用词典分词,如果分不出,是不是就搜不到?
在lucene中使用字典对中文分词,例如“提出新问题”
运用词典可以将“提出新问题”分成:“提出”,“出新”,“问题”,“新问题”
但怎样分成“提出”,“出新”,“问题”,“新问题”,“提”,“出”,“新”,“问”,“题”
谢谢大家
问题解决了正如@gaosboy所说的那样,要做的是如下几步:
1. 新建一个java文件,继承ISegmenter的接口,譬如叫SingleCharSegmenter
2. 参照CJKSegmenter的书写方法,主要修改public void analyze(AnalyzeContext context)这个方法
3. SingleCharSegmenter中analyze方法利用CJKSegmenter中已经写好的
// 首字成词 // 输出当前的词 Lexeme newLexeme = new Lexeme(context.getBufferOffset(), context.getCursor(), 1, Lexeme.TYPE_CNWORD); context.addLexeme(newLexeme);
4. 在IKSegmenter中loadSegmenters方法中,申明segmenters.add(new SingleCharSegmenter());就可以了
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
把整句分成:提 出 新 问 题 提出 新 问题 新问题,用相同的分词器,搜索新问题的时候是:新 问 题
可以试试IKAnalyzer,加一个简单的单字切分的子分词器
实现IK的ISegmenter接口,修改Configuration中的loadSegmenter方法,同时使用IKAnalyzer(false)方式构造分词器。
如果还有什么问题,可以继续讨论 :-D
你好 可不可以把完整的SingleCharSegmenter贴出来看看 我自己试了一次 不给力 呵呵