lucene初探(一):IKAnalyzer2012中文分词扩展初探


 1、到google下载IKAnalyzer2012

http://code.google.com/p/ik-analyzer/downloads/list
 

 

2、如果有maven本地服务仓库,直接把IKAnalyzer2012上传到本地maven仓库,无的话直接拷贝到项目lib目录



 

3、测试还需要使用到lucene的几个包,这边使用3.6.0版本

maven配置

<dependencies>
		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-core</artifactId>
			<version>3.6.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-highlighter</artifactId>
			<version>3.6.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-memory</artifactId>
			<version>3.6.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-analyzers</artifactId>
			<version>3.6.0</version>
		</dependency>
		
		<dependency>
			<groupId>IKAnalyzer</groupId>
			<artifactId>IKAnalyzer</artifactId>
			<version>IKAnalyzer2012</version>
			<type>jar</type>
		</dependency>
	</dependencies>

 

4、好了,直接上测试例子,

4.1、建立一个java测试项目scmsplitkw 

4.2、拷贝下载包里面的stopword.dic、IKAnalyzer.cfg.xml到项目源码根目录

4.3、因为要测试自定义中文分词,在源码根目录创建文件ext.dic

4.4、配置IKAnalyzer.cfg.xml,在properties内添加

写道
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_dict">ext.dic;</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords">stopword.dic;stopword_chinese.dic</entry>

4.5、特别提醒,以上文件内容格式全部必须是utf-8,用记事本打开,另存为utf-8格式



 

4.6、既然是测试自定义关键词拆分, 就必须添加一些自定义关键词到ext.dic文件中,注意添加的文字必须是全部小写

yag晶体
集成化文件管理体系
量子点太阳电池
游客满意度指数
血清药理学
硅热法
建筑幕墙
共振腔
蛋白质粒子
行星逃逸层
可靠性建模
空隙模型
基因挖掘
细粒赤铁矿
磁性液晶
wnt分泌
游离甲醛
河鲀毒素
自由表面
磷酸银
多元标记
aire基因
群速度
带3蛋白
可信度
推力轴承
超光谱荧光
锚定性能
嗜铬粒蛋白a衍生多肽
ip电路
雌雄异体生殖
旋翼转速
珍稀物种
元过程

 

4.7、代码测试

package com.iris.scm.lucene.test;

import java.io.StringReader;

import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
import org.wltea.analyzer.lucene.IKAnalyzer;

public class IKAnalyzerTest {

	public static void main(String[] args) throws Exception {

		String keyWord = "YAG晶体采用过滤阴极真空电弧技术制备非晶金刚石薄膜,细粒赤铁矿.
		IKAnalyzer analyzer = new IKAnalyzer();

		// 使用智能分词
		analyzer.setUseSmart(true);

		System.out.println("当前使用的分词器:" + analyzer.getClass().getSimpleName());
		TokenStream tokenStream = analyzer.tokenStream("content", new StringReader(keyWord));
		tokenStream.addAttribute(CharTermAttribute.class);
		while (tokenStream.incrementToken()) {
			CharTermAttribute charTermAttribute = tokenStream.getAttribute(CharTermAttribute.class);
			System.out.println(new String(charTermAttribute.buffer()));
		}
	}

}

 

4.8、结果



  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值