使用IKAnalyzer实现的中英文混合切分

最近在研究分词时,发现在IKAnalyzer3.X版本下 导入中英文混合词到词库到切分时并没有起作用

于是到官网发现了新版IKAnalyzer2012已经实现了中英文、数字+中文的混合切分 而且词库的导入方式也发生了一定的变化

 Analyzer analyzer = new IKAnalyzer(true);
       // Dictionary.loadExtendWords(SogouDictHelper.loadSogouDic());
        Dictionary.initial(DefaultConfig.getInstance());
        org.wltea.analyzer.dic.Dictionary dic=Dictionary.getSingleton();
        
        dic.addWords(Arrays.asList("qq旋风"));
        int count = 0;
         TokenStream ts = analyzer.tokenStream("demo", new StringReader(text));
        ts.reset();
       while (ts.incrementToken()) {
            System.out.print(ts.getAttribute(CharTermAttribute.class) + "|");
            count++;
        }
        ts.end();
        ts.close();
        System.out.println("\nfenchi-->" + count);

注意正如api所说:词库必须先调用initial方法初始化(参数为词库配置【有默认实现类:DefaultConfig 当然你也可以自己实现】)

该方法一般在应用初始启动时执行一次就可以了

然后可以通过dic.addWords向词典中动态加入词语

posted on 2013-04-17 11:11  scugxl  阅读(599)  评论(0编辑  收藏  举报

导航