Lucene分词器实现停用词,常用词

IK Analyzer默认的停用词词典为IKAnalyzer2012_u6/stopword.dic,这个停用词词典并不完整,只有30多个英文停用词,不足以满足需求,可新增自定义停用词,常用词来满足不同的业务需求

 

1、创建IKAnalyzer.cfg.xml来加载词典

在resources文件夹下创建IKAnalyzer.cfg.xml来声明停用词,常用词

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
    <!--
    1,ext和stopword文件要 UTF-8 编码。
    2,一行写一个词
    3,多个文件用 ‘;’隔开
     -->

    <!--停用词-->
    <entry key="ext_stopwords">ext_stopword.txt</entry>

    <!--自定义词库-->
    <entry key="ext_dict">ext_dict.txt</entry>

</properties>

2、创建ext.txt自定义常用词典

创建utf-8格式的 ext_dict.txt 和 ext_stopword.txt 放在与IKAnalyzer.cfg.xml同一目录下

如果格式不对可以使用记事本打开然后另存为UTF-8格式

 

3、测试效果

首先是未添加停用词和常用词的结果

    public static void main(String[]args) throws Exception {
          String keyword="时间就是性命。无端的空耗别人的时间,其实是无异于谋财害命";
          Analyzer anal=new IKAnalyzer(true);
          StringReader reader2=new StringReader(keyword);
        //分词
        TokenStream ts=anal.tokenStream("", reader2);
        ts.reset();
        CharTermAttribute term=ts.getAttribute(CharTermAttribute.class);
        //遍历分词数据
        System.out.println("将【"+keyword+"】分词:");
        while(ts.incrementToken()){
            System.out.print(term.toString()+"|");
        }
        anal.close();
    }

运行结果

 在 ext_dict.txt (常用词)文件中添加

时间就是性命

运行结果

 然后在 ext_stopword.txt (停用词)文件中添加

谋财害命

运行结果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值