欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

lucene学习 IKAnalyzer分词器

程序员文章站 2024-02-21 22:29:16
...

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>