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文件夹以下就可以。

  • 相关阅读:
    字符串函数使用与 Culture
    学习 Monitor使用
    Extjs的ajax实现
    linux下tomcat的安装及部署
    使用jquery插件实现打印指定区域功能
    hibernate的各种保存方式的区别 (save,persist,update,saveOrUpdte,merge,flush,lock)等
    html 树形菜单
    Ext4 修复对话框按钮翻译
    spring aop expression简单说明
    tomcat内存溢出的解决方法(java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError:)
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5224231.html
Copyright © 2011-2022 走看看