使用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向词典中动态加入词语