一、扩展停用词字典
IK Analyzer默认的停用词词典为IKAnalyzer2012_u6/stopword.dic,这个停用词词典并不完整,只有30多个英文停用词。可以扩展停用词字典,新增ext_stopword.dic,文件和IKAnalyzer.cfg.xml在同一目录,编辑IKAnalyzer.cfg.xml把新增的停用词字典写入配置文件,多个停用词字典用逗号隔开,如下所示。
<entry key="ext_stopwords">stopword.dic;ext_stopword.dic
</entry>
二、扩展自定义词库
IK Analyzer也支持自定义词典,在IKAnalyzer.cfg.xml同一目录新建ext.dic,把新的词语按行写入文件,编辑IKAnalyzer.cfg.xml把新增的停用词字典写入配置文件,多个字典用空格隔开,如下所示:
<entry key="ext_dict">ext.dic;
</entry>
比如,对于网络流行语“厉害了我的哥”,默认的词库中没有这个词,在自定义字典中写入以后才能分成一个词。
三、测试自定义词典效果
import java
.io.IOException
import java
.io.StringReader
import org
.apache.lucene.analysis.Analyzer
import org
.apache.lucene.analysis.TokenStream
import org
.apache.lucene.analysis.tokenattributes.CharTermAttribute
import tup
.lucene.ik.IKAnalyzer6x
public class ExtDicTest {
private static String str =
"厉害了我的哥!中国环保部门发布了治理北京雾霾的的方法!"
public static void main(String[] args) throws IOException {
Analyzer analyzer = new IKAnalyzer6x(true)
StringReader reader = new StringReader(str)
TokenStream toStream = analyzer
.tokenStream(str, reader)
toStream
.reset()
CharTermAttribute teAttribute= toStream
.getAttribute(CharTermAttribut e
.class)
System
.out.println(
"分词结果:")
while (toStream
.incrementToken()) {
System
.out.print(teAttribute
.toString() +
"|")
}
System
.out.println(
"\n")
analyzer
.close()
}
}
运行结果:
加载扩展词典:ext
.dic
加载扩展停止词典:stopword
.dic
分词结果:
厉|害了|的哥|中国|环保部门|发布|治理|北京|雾|霾|方法|
在ext.dic中添加自定义词项:
中国环保部门
北京雾霾
厉害了我的哥
再次运行,结果如下:
加载扩展词典:ext
.dic
加载扩展停止词典:stopword
.dic
分词结果:
厉害了我的哥|中国环保部门|发布|治理|北京雾霾|方法|
转载请注明原文地址: https://ju.6miu.com/read-658481.html