IK分词器 IKAnalyzer 简单demo
2015-10-21 16:15
411 查看
所用IKAnalyzer:IK-Analyzer-2012FF 百度云:http://pan.baidu.com/s/1bne9UKf
实例代码:
运行效果:
org/wltea/analyzer/dic/main2012.dic
org/wltea/analyzer/dic/quantifier.dic
ext0.dic
ext1.dic
stopword.dic
加载扩展词典:ext0.dic
加载扩展词典:ext1.dic
加载扩展停止词典:stopword.dic
据说|wwdc|要|推出|iphone6|要|出了|与|iphone5s土豪金|相比|华夏|怎样|呢|神圣纪事|天空之城|囧囧|2014|巴西世界杯|test中文|我|在|漫长的纠结|与|反省|中|觉悟|到|时间|其实|改变|不|了|什么的|至少|对于|放弃|一种|好|的|而去|相信|一种|坏|的|甚至|慵懒|的|事物|是|这样|的|我|曾经|朝九晚五|不会|去|日晒雨淋|坐在|舒适|的|办公|环境|里|友好|的|同事|关系|虽然|工资|不高|生活|却|也是|很|惬意|的|如果|习|惯了|时间|它能|改|变些|什么|呢|我|不知道|也|不曾|去|幻想|因为|眼前|的|景物|足够|我|安静|的|睡去|做足了美梦|只|觉得|哪怕是|睁开眼睛|都是|件|疲惫|的|事情|都是|一件|多余|的|事情|不|必去|动脑|经|想|生活|的|意义|是什么|
配置文件:IKAnalyzer.cfg.xml
文件路径:
![](http://images2015.cnblogs.com/blog/675297/201510/675297-20151021160914677-731760065.png)
扩展字典:
ext0.dic:
巴西世界杯
iPhone5s土豪金
ext1.dic:
神圣纪事
天空之城
囧囧
漫长的纠结
朝九晚五
美梦
觉悟
做足了美梦
实例代码:
package com.test.ik.analyzer; import java.io.IOException; import java.io.StringReader; import java.util.ArrayList; import java.util.List; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; import org.wltea.analyzer.cfg.Configuration; import org.wltea.analyzer.cfg.DefaultConfig; import org.wltea.analyzer.dic.Dictionary; import org.wltea.analyzer.lucene.IKAnalyzer; /** * 文件名称: IkAnalyzer<br> * 文件描述: IkAnalyzer demo<br> * 版权所有: jstarseven<br> * 完成日期: 2015-10-20 下午4:18:54<br> * * @see * @param * @since JDK1.6 */ public class IkAnalyzer { public static void main(String[] args) throws Exception { // 检索内容 String text = "据说WWDC要推出iPhone6要出了?与iPhone5s土豪金相比华夏怎样呢?神圣纪事,天空之城,囧囧@2014巴西世界杯 test中文" + "我在漫长的纠结与反省中觉悟到时间其实改变不了什么的,至少对于放弃一种好的而去相信一种坏的甚至慵懒的事物是这样的。我曾经朝九晚五,不会去日晒雨淋,坐在舒适的办公环境里,友好的同事关系,虽然工资不高,生活却也是很惬意的,如果习惯了,时间它能改变些什么呢?我不知道,也不曾去幻想,因为眼前的景物足够我安静的睡去,做足了美梦,只觉得哪怕是睁开眼睛都是件疲惫的事情,都是一件多余的事情,不必去动脑经想生活的意义是什么?"; List<String> list = new ArrayList<String>(); list.add("test中文"); // 尚未初始化,因为第一次执行分词的时候才会初始化,为了在执行分此前手动添加额外的字典,需要先手动的初始化一下 Configuration configuration = DefaultConfig.getInstance(); // 主字典路径 String mainDictionaryPath = configuration.getMainDictionary(); // 量词字典路径 String quantifierDictionaryPath = configuration.getQuantifierDicionary(); // 获取停止词(stopword)字典路径列表,可一次返回多个停止词词典 List<String> stopList = configuration.getExtStopWordDictionarys(); // 获取扩展字典路径列表,可一次返回多个扩展词典 List<String> extlist = configuration.getExtDictionarys(); System.out.println(mainDictionaryPath); System.out.println(quantifierDictionaryPath); for (String word : extlist) { System.out.println(word); } for (String word : stopList) { System.out.println(word); } // DictionaryIK 分词器的词典对象 // initial 初始化字典实例 字典采用单例模式,一旦初始化,实例就固定 注意该方法只能调用一次 Dictionary.initial(configuration); // getSingleton 获取初始化完毕的字典单例 // addWords 加载用户扩展的词汇列表到 IK 的主词典中,增加分词器的可识别词语 Dictionary.getSingleton().addWords(list); // disableWords(Collection<String> words) 屏蔽词典中的词元 // 创建分词对象 true为smart模式 Analyzer analyzer = new IKAnalyzer(true); StringReader reader = new StringReader(text); TokenStream ts = analyzer.tokenStream("", reader); CharTermAttribute term = ts.getAttribute(CharTermAttribute.class); // 遍历分词数据 try { while (ts.incrementToken()) { System.out.print(term.toString() + "|"); } } catch (IOException e) { e.printStackTrace(); } finally { reader.close(); } } }
运行效果:
org/wltea/analyzer/dic/main2012.dic
org/wltea/analyzer/dic/quantifier.dic
ext0.dic
ext1.dic
stopword.dic
加载扩展词典:ext0.dic
加载扩展词典:ext1.dic
加载扩展停止词典:stopword.dic
据说|wwdc|要|推出|iphone6|要|出了|与|iphone5s土豪金|相比|华夏|怎样|呢|神圣纪事|天空之城|囧囧|2014|巴西世界杯|test中文|我|在|漫长的纠结|与|反省|中|觉悟|到|时间|其实|改变|不|了|什么的|至少|对于|放弃|一种|好|的|而去|相信|一种|坏|的|甚至|慵懒|的|事物|是|这样|的|我|曾经|朝九晚五|不会|去|日晒雨淋|坐在|舒适|的|办公|环境|里|友好|的|同事|关系|虽然|工资|不高|生活|却|也是|很|惬意|的|如果|习|惯了|时间|它能|改|变些|什么|呢|我|不知道|也|不曾|去|幻想|因为|眼前|的|景物|足够|我|安静|的|睡去|做足了美梦|只|觉得|哪怕是|睁开眼睛|都是|件|疲惫|的|事情|都是|一件|多余|的|事情|不|必去|动脑|经|想|生活|的|意义|是什么|
配置文件: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">ext0.dic;ext1.dic;</entry> <!--用户可以在这里配置自己的扩展停止词字典--> <entry key="ext_stopwords">stopword.dic;</entry> </properties>
文件路径:
![](http://images2015.cnblogs.com/blog/675297/201510/675297-20151021160914677-731760065.png)
扩展字典:
ext0.dic:
巴西世界杯
iPhone5s土豪金
ext1.dic:
神圣纪事
天空之城
囧囧
漫长的纠结
朝九晚五
美梦
觉悟
做足了美梦
相关文章推荐
- 只有部署 SSL 证书才能保护网上隐私信息安全
- 《The C Programming Language》读书笔记总结 <一>.基础篇
- 黑马程序员——构造函数
- <Calendar>java时间加减法和格式化输出
- 百度地图,高德地图,HTML5经纬度比较
- 编译.a库文件
- rsync使用介绍
- XSS 前端防火墙(5): 整装待发
- servlet 中 web.xml
- 观察者模式-猫叫了,老鼠跑了,主人醒了...
- 洛谷1613 跑路
- TortoiseSVN测试VisualSVN Server安装和搭建【VisualSVN Server安装和搭建(二)】
- TortoiseSVN测试VisualSVN Server安装和搭建【VisualSVN Server安装和搭建(二)】
- sql 查询之排除某种特定的数据
- Android 5.0 动画(二)-SVG
- 操蛋的验证码
- 黑马程序员——私有 private
- Visual Studio 2015下OpenGL环境搭建
- 13个PHP函数超实用
- Android:自定义控件 --- 自定义属性 枚举值(固定属性值)