zoukankan      html  css  js  c++  java
  • IKAnalyzer使用停用词词典进行分词

    @Test
    // 測试分词的效果,以及停用词典是否起作用
    public void test() throws IOException {
    	String text = "老爹我们都爱您。";
    	Configuration configuration = DefaultConfig.getInstance();
    	configuration.setUseSmart(true);
    	IKSegmenter ik = new IKSegmenter(new StringReader(text), configuration);
    	Lexeme lexeme = null;
    	while ((lexeme = ik.next()) != null) {
    		System.out.println(lexeme.getLexemeText());
    	}
    }

    第二个样例

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.StringReader;
    
    import javax.imageio.stream.FileImageInputStream;
    
    import org.apache.lucene.analysis.TokenStream;
    import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
    import org.wltea.analyzer.core.IKSegmenter;
    import org.wltea.analyzer.core.Lexeme;
    import org.wltea.analyzer.lucene.IKAnalyzer;
    
    
    
    public class TestStopWords {
    	public static void main(String[] args) throws IOException {
    		String keyWords = "2012年那个欧洲杯四强赛";
    		InputStreamReader isr = new InputStreamReader(new FileInputStream(new File("data/stopword.txt")));
    		IKSegmenter ikSegmenter = new IKSegmenter(isr, true);
    		Lexeme lexeme = null;
    		while((lexeme=ikSegmenter.next())!= null){
    			System.out.println(lexeme.getLexemeText());
    		}
    	}
    }	

    程序的执行结果是:

    载入扩展停止词典:stopword.dic
    载入扩展停止词典:chinese_stopwords.dic
    老爹
    都爱
    
    

    IKAnalyzer.cfg.xml的配置例如以下:

    <?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">ext.dic;</entry>假设有多个扩展词典。那么以分号分隔就可以,如以下的两个扩展停止词字典 -->
    	<!--用户能够在这里配置自己的扩展停止词字典 -->
    	<entry key="ext_stopwords">stopword.dic;chinese_stopwords.dic</entry>
    </properties>

    注意点:

    1、停用词词典必须是UTF-8编码。

    2、这里非常多跟我一样的新手没办法成功的原因就是被无bom的UTF-8格式给折磨的,IK作者自己也这样说了。

    3、假设你不知道啥叫无BOM,也不确定自己的文件是不是UTF-8无bom,那么请在第一行使用回车换行,从第二行開始加入停止词。

    4、该配置文件以及停用词词典均存放在src文件夹以下就可以。

  • 相关阅读:
    java设计模式9.备忘录模式、访问者模式、调停者模式
    java设计模式8.迭代子模式、责任链模式、命令模式
    java设计模式7.策略模式、模板方法模式、观察者模式
    java设计模式5.组合模式、门面模式、享元模式、桥接模式
    java设计模式4.适配器模式、装饰器模式
    第6章 事务管理 6.1 spring事务
    第8章 浏览器对象模型BOM 8.1 window对象
    关于Socket、TCP/IP、HTTP、FTP及网络编程
    GO.Web服务
    git clone 下载慢
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5224231.html
Copyright © 2011-2022 走看看