如何使用lucene对一个句子进行分词

使用lucene创建索引库中,介绍了一些基础的lucene概念,如何用lucene进行对一个句子分词呢。

  private static void tokenStream() throws Exception{
        //1.创建一个Analyzer对象,StandardAnalyzer对象
        Analyzer analyzer = new IKAnalyzer();
        //2.使用分析器对象的tokenStream方法获得一个TokenStream对象
        TokenStream tokenStream = analyzer.tokenStream("","什么是lucence Lucene是apache软件基金会发布的一个开放源代码的全文检索引擎工具包,由资深全文检索专家Doug Cutting所撰写,它是一个全文检索引擎的架");
        //3.向tokenStream对象中设置一个引用,相当于数一个指针
        CharTermAttribute charTermAttribute = tokenStream.addAttribute(CharTermAttribute.class);
        //4.调用TokenStream对象的rest方法,如果不调用抛异常
        tokenStream.reset();
        //5.使用while循环遍历TokenStream对象
        while (tokenStream.incrementToken()){
            System.out.println(charTermAttribute.toString());
        }

        //6.关闭TokenStream对象
        tokenStream.close();
    }

这里如果是StandardAnalyzer,就是可以很好的对英文进行分词,但是标准分词器分析中文只会把中文一个字一个字的进行拆分,如果需要对中文进行分词的话,需要用IKAnalyzer,就可以很好的进行分词了。

同时呢,需要在src下面引入资源文件,一个是配置文件,用来配置热点词汇,也就是常用的分词词汇表,还有一个是禁用词汇,比如一些敏感词汇。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  
<properties>  
	<comment>IK Analyzer 扩展配置</comment>
	<!--用户可以在这里配置自己的扩展字典 -->
	<entry key="ext_dict">hotword.dic;</entry>
	
	<!--用户可以在这里配置自己的扩展停止词字典-->
	<entry key="ext_stopwords">stopword.dic;</entry> 
	
</properties>

上面这个是配置文件IKAnalyzer.cfg.xml。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值