最近在研究分词时,发现在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向词典中动态加入词语