lucene 分词器

本文介绍了Lucene中几种常见的分词器,包括StandardAnalyzer、CJKAnalyzer、ChineseAnalyzer及MMAnalyzer等,重点对比了它们对中文和英文文本的处理效果,并推荐了MMAnalyzer作为中文分词的较好选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

package cn.itcast.lucene.analyzer;

import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import jeasy.analysis.MMAnalyzer;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.cjk.CJKAnalyzer;
import org.apache.lucene.analysis.cn.ChineseAnalyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.junit.Test;
import org.wltea.analyzer.lucene.IKAnalyzer;

public class analyzer {
 @Test
 public void test1() throws IOException {

  // (hello,0,5,type=<ALPHANUM>)
  // (i,9,10,type=<ALPHANUM>)
  // (am,12,14,type=<ALPHANUM>)
  // (boy,17,20,type=<ALPHANUM>)
  Analyzer analyzer1 = new StandardAnalyzer();// 单字分词
  String Text1 = "hello !  i  am a boy";
  // (你好,0,2,type=double)
  // (我是,3,5,type=double)
  // (是中,4,6,type=double)
  // (中国,5,7,type=double)
  // (国人,6,8,type=double)
  Analyzer analyzer2 = new CJKAnalyzer();// 二分分词
  String Text2 = "你好 我是中国人";

  // (你,0,1)
  // (好,1,2)
  // (我,3,4)
  // (是,4,5)
  // (中,5,6)
  // (国,6,7)
  // (人,7,8)
  Analyzer analyzer3 = new ChineseAnalyzer();
  String Text3 = "你好 我是中国人";

  // (你好,0,2)
  // (我是,3,5)
  // (中国人,5,8)
  // (这个东西,10,14)
  // (是谁,14,16)
  // (把他,19,21)
  // (丢掉,21,23)
  // (我在,23,25)
  // (上课,25,27)
  // 该分词器要导入jar包 je-analysis-1.5.1.jar
  Analyzer analyzer4 = new MMAnalyzer();// 词库分词
  String Text4 = "你好 我是中国人  这个东西是谁的  把他丢掉我在上课";

  
 }

 public void testAnalyer(Analyzer analyzer, String text) throws IOException {
  Reader reader = new StringReader(text);
  TokenStream tokenStream = analyzer.tokenStream("content", reader);
  Token token = new Token();
  while ((token = tokenStream.next(token)) != null) {
   System.out.println(token);
  }
 }
}

在上面的几个分词器中  对中文和英文分词支持比较好的是MMAnalyzer();  je 分词器    此外还有IKAnalyzer.jar分词器   但是他对lucene2.4.1不兼容   需要较高的版本  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值