您好,匿名用户
随意问技术百科期待您的加入

Lucene中用词典分词,如果分不出,是不是就搜不到?

0 投票

在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());就可以了

用户头像 提问 2012年 12月1日 @ Elise 上等兵 (273 威望)
分享到:

1个回答

0 投票
 
最佳答案

把整句分成:提 出 新 问 题 提出 新 问题 新问题,用相同的分词器,搜索新问题的时候是:新 问 题
可以试试IKAnalyzer,加一个简单的单字切分的子分词器
实现IK的ISegmenter接口,修改Configuration中的loadSegmenter方法,同时使用IKAnalyzer(false)方式构造分词器。
如果还有什么问题,可以继续讨论 :-D

用户头像 回复 2012年 12月1日 @ Leo 上等兵 (255 威望)
选中 2012年 12月1日 @Elise
提一个问题:

相关问题

0 投票
0 回复 21 阅读
用户头像 提问 2012年 12月1日 @ Zeus 上等兵 (193 威望)
+3 投票
2 回复 69 阅读
+2 投票
1 回复 802 阅读
+1 投票
0 回复 89 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...