Lucene笔记18-Lucene的分词-实现自定义同义词分词器-思路分析

一、实现自定义同义词分词器思路分析

前面文章我们提到同义词分词器,这里我们先来分析下同义词分词器的设计思路。

  1. 首先我们有一个需要分词的字符串string,通过new StringReader(string)拿到Reader。
  2. 使用analyzer.tokenStream("content", new StringReader(string))拿到tokenStream,前面讲到tokenStream中包含了分词相关的详细信息。
  3. 现在需要做的就是,在拿到tokenStream之前,做一些处理,在获取tokenStream之前,需要经过Tokenizer和TokenFilter这两个类的处理,我们需要在TokenFilter中做一些处理。
  4. 于是自定义一个MyTokenFilter类,继承自TokenFilter类,并在初始化方法中,将CharTermAttribute对象添加进去,这样,再获取的时候,就可以输出分词信息了。
  5. 另外,还需要将PositionIncrementAttribute对象添加进去,因为在添加同义词的时候,要把同义词和原来的词放在同一个位置上。
  6. 假设我们有一个map,里面存储的就是同义词词库,比如{"北大"="北京大学"}这种类似的数据。第4步获取到分词信息后,就去这个map中去找,如果有同义词,就将这个同义词添加到第5步获取到的位置上。

二、根据流程做图

大致做了个流程图,发现自己做图能力好差啊,以后写博客还要多加练习,通常图像带给人的感觉更直观一些。

另外附上在线做图地址:Process On

详细代码请看下一节

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值