Lucene 学习 分词器
Analyzer analyzer = new IKAnalyzer();
分词器词典扩展方法:
1.基于API的词典扩展
IK 分词器支持使用API编程模型扩充您的词典和停止词典。如果您的个性化词典是存
储于数据库中,这个方式应该对您适用。API如下:
类org.wltea.analyzer.dic.Dictionary
说明: IK 分词器的词典对象。它负责中文词汇的加载,内存管理和匹配检索。
public static void addWords(Collection<String> words)
说明:加载用户扩展的词汇列表到IK 的主词典中,增加分词器的可识别词语。
参数1:Collection<String> words , 扩展的词汇列表
返回值:无
public static void disableWords(Collection<String> words) 说明:屏蔽词典中的词元 参数1:Collection<String> words, 待删除的词列表 返回值:无
Dictionary dictionary = Dictionary.initial(Configuration.getInstance());
List<String> wordList = new ArrayList<String>();
wordList.add("用例");
dictionary.addWords(wordList);
2.基于配置的词典扩充
IK 分词器还支持通过配置IKAnalyzer.cfg.xml 文件来扩充您的专有词典以及停止词典
(过滤词典)。
1. 部署IKAnalyzer.cfg.xml
IKAnalyzer.cfg.xml 部 署 在 代 码 根 目 录 下 ( 对 于web项 目 , 通 常 是
WEB-INF/classes目录)同hibernate、log4j等配置文件相同。
2. 词典文件的编辑与部署
分词器的词典文件格式是无BOM的UTF-8编码的中文文本文件,文件扩展名不
限。词典中,每个中文词汇独立占一行,使用\r\n的DOS方式换行。(注,如果您不
了解什么是无BOM的UTF-8格式, 请保证您的词典使用UTF-8存储,并在文件的
头部添加一空行)。您可以参考分词器源码org.wltea.analyzer.dic包下的.dic 文件。
词典文件应部署在Java 的资源路径下,即ClassLoader能够加载的路径中。(推
荐同IKAnalyzer.cfg.xml放在一起)
3. 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_dict">myext1.dic</entry> <!--用户可以在这里配置自己的扩展停止词字典--> <entry key="ext_stopwords">stopword.dic;</entry> </properties>