IKAnalyzer中文分析器的使用

首先,也是最重要的一点,你得有 IKAnalyzer 这个jar包

https://pan.baidu.com/s/1bw_pxleG5SCghMSRKNL97A 提取码:ywtg

获得以下文件:

构建项目

1. 导入lucene依赖
<!-- 添加 lucene 支持 -->
<dependency>
	<groupId>org.apache.lucene</groupId>
	<artifactId>lucene-core</artifactId>
	<version>7.4.0</version>
</dependency>

<dependency>
	<groupId>org.apache.lucene</groupId>
	<artifactId>lucene-analyzers-common</artifactId>
	<version>7.4.0</version>
</dependency>

2 .引入其他jar包

把 jar 包放在项目文件夹下,其他三个文件要放在项目的 classpath 路径下(普通项目直接放在 src 下就可以,maven放在 resources 下)

三个文件的含义:
hotword.dic: 扩展词典,可以自行添加关键词
stopword.dic:扩展停止词典,可以自行添加停用词(敏感词、无意义的词)
IKAnalyzer.cfg.xml:配置读取扩展文件的路径
这三个文件可以不导入,但要使用扩展功能就需要自己配置,还是要加进来的

3. Add as Library

把 jar 导入项目中,之前只是放在了项目文件下。因为使用到了 jar 包里面的类,所以我已经书写好的代码会报错
右击 jar 包,导入

4. 测试
    /**
     *  中文分析器 IKAnalyzer
     * 查看分析器的分析效果
     */
    @Test
    public void testIKAnalyzer() throws Exception{
        //1.创建一个 Analyzer对象,IKAnalyzer 对象
        Analyzer analyzer = new IKAnalyzer();
        //2.使用分析器对象的 tokenStream 方法获得一个 TokenStream 对象
        TokenStream tokenStream = analyzer.tokenStream("","1\t什么是全文检索java 魔兽世界 警察 \n" + "1.1\t全文检索概念全文检索是将整本书java、整篇文章中的任意内容信息查找出来的检索,java。它可以根据需要获得全文中有关章、节、段、句、词等信息,计算机程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时根据建立的索引查找,类似于通过字典的检索字表查字的过程。 ");
        //3.向 TokenStream 对象中设置一个引用,相当于是一个指针
        CharTermAttribute charTermAttribute = tokenStream.addAttribute(CharTermAttribute.class);
        //4.调用 TokenStream 对象的 reset方法,如果不调用会抛异常
        tokenStream.reset();
        //5.使用 while 循环遍历 TokenStream 对象
        while(tokenStream.incrementToken()){
            System.out.println(charTermAttribute.toString());
        }
        //6.关闭 TokenStream 对象
        tokenStream.close();
    }

得到结果(一部分):

加载扩展词典:hotword.dic
加载扩展停止词典:stopword.dic
1
什么
全文
检索
java
魔兽
世界
警察
1.1

结果显示,程序先加载扩展文件或在输出,分词词结果,如果不导入,也是没有问题的,但是就没法自行添加一些关键词了。

比如:魔兽世界,我们知道是一款游戏,可以作为一个关键词;警察我们可以作为一个敏感词,停用

这时候我们只需在,hotword.dic 和 stopword.dic 中添加这两个词,就可以让 IKAnalyzer 分析出我们想要的关键词了

hotword.dic 文件

stopword.dic 文件

再次运行,结果:

复制代码
加载扩展词典:hotword.dic
加载扩展停止词典:stopword.dic
1
什么
全文
检索
java
魔兽世界
魔兽
世界
1.1
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值