Lucence
IKAnalyzer中文分词器
分词方式:细粒度切分 和 最大词长切分,
如下为示例:
IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包
最大词长分词后结果类似如下:
ikanalyzer | 是 | 一个 | 开源 | 的 | 基于 | java | 语言 | 开发 | 的 | 轻量级 | 的 | 中
文 | 分词 | 工具包 |
最细粒度分词后结果类似如下:
ikanalyzer | 是 | 一个 | 一 | 个 | 开源 | 的 | 基于 | java | 语言 | 开发 | 的 | 轻
量级 | 量级 | 的 | 中文 | 分词 | 工具包 | 工具 |
导入包和相关配置文件
配置文件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> <!--用户可以在这里配置自己的扩展字典 <entrykey="ext_dict">/mydict.dic</entry> --> <!--用户可以在这里配置自己的扩展停止词字典 <entrykey="ext_stopwords">/ext_stopword.dic</entry> --> </properties> |
修改配置类Configuration
修改配置类Configuration的分词器,使用IKAnalyzer分词器,主要参看红色部分代码
public class Configuration { private Configuration(){}
public static final Version LOCAL_VERSION=Version.LUCENE_30; //使用IKAnalyzer,当参数为true时,表示使用最大词长分词,false表示使用细粒度分词 public staticfinal Analyzer ANALYZER=new IKAnalyzer(true); private static Directory DIRECTORY; private static String PATH="e:/testdir/lucenedir";
static{ try{ DIRECTORY=FSDirectory.open(new File(PATH)); }catch (Exception e) { // TODO: handle exception e.printStackTrace(); } }
publicstatic Directory getDIRECTORY() { return DIRECTORY; } } |