Lucene学习——IKAnalyzer中文分词
一、环境
1、平台:MyEclipse8.5/JDK1.5
2、开源框架:Lucene3.6.1/IKAnalyzer2012
3、目的:测试IKAnalyzer的分词效果
二、开发调试
1、下载框架
1)IKAnalyzer:http://code.google.com/p/ik-analyzer/downloads/list
2)Lucene:http://www.apache.org/dist/lucene/java/3.6.1/
2、添加依赖的库
1)添加Lucene:lucene-core-3.6.1.jar
2)添加IKAnalyzer:IKAnalyzer2012.jar
3、配置IKAnalyzer
1)添加配置文件IKAnalyzer.cfg.xml和StopWord词典库stopword.dic文件,把这两个文件放到src目录下,也就是classpath路径下
4、编写测试程序,测试代码如下
package org.cyxl.lucene.test; import java.io.StringReader; import org.apache.lucene.analysis.Analyzer;
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) {
String keyWord = "IKAnalyzer的分词效果到底怎么样呢,我们来看一下吧";
//创建IKAnalyzer中文分词对象
IKAnalyzer analyzer = new IKAnalyzer();
// 使用智能分词
analyzer.setUseSmart(true);
// 打印分词结果
try {
printAnalysisResult(analyzer, keyWord);
} catch (Exception e) {
e.printStackTrace();
}
} /**
* 打印出给定分词器的分词结果
*
* @param analyzer
* 分词器
* @param keyWord
* 关键词
* @throws Exception
*/
private static void printAnalysisResult(Analyzer analyzer, String keyWord)
throws Exception {
System.out.println("["+keyWord+"]分词效果如下");
TokenStream tokenStream = analyzer.tokenStream("content",
new StringReader(keyWord));
tokenStream.addAttribute(CharTermAttribute.class);
while (tokenStream.incrementToken()) {
CharTermAttribute charTermAttribute = tokenStream
.getAttribute(CharTermAttribute.class);
System.out.println(charTermAttribute.toString()); }
}
}
5、结果如下
[IKAnalyzer的分词效果到底怎么样呢,我们来看一下吧]分词效果如下
加载扩展停止词典:stopword.dic
ikanalyzer
的
分词
效果
到底
怎么样
呢
我们
来看
一下
吧
6、扩展自己的词典和StopWord
1)在src目录下,新建自身的词典文件ext.dic,输入词如下(注意第一行留空,不知道为什么)
分词效果
2)在src目录下,新建自身的StopWord文件chinese_stopword.dic(也是第一行留空,疑惑中)
吧
呢
来
的
3)配置IKAnalyzer配置文件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_stopwords">stopword.dic;chinese_stopword.dic</entry> </properties>
4)配置好后测试结果如下
[IKAnalyzer的分词效果到底怎么样呢,我们来看一下吧]分词效果如下
加载扩展词典:ext.dic
加载扩展停止词典:stopword.dic
加载扩展停止词典:chinese_stopword.dic
ikanalyzer
分词效果
到底
怎么样
我们
来看
一下
三、总结
1、IKAnalyzer分词效果基本还是可以的,可以根据我们自身的项目业务扩展自己的词典和StopWord
2、下面就结果中文分词和Lucene将上一篇的搜索引擎雏形加以修改,让它适合中文网站
Lucene学习——IKAnalyzer中文分词的更多相关文章
- Solr的学习使用之(三)IKAnalyzer中文分词器的配置
		1.为什么要配置? 1.我们知道要使用Solr进行搜索,肯定要对词语进行分词,但是由于Solr的analysis包并没有带支持中文的包或者对中文的分词效果不好,需要自己添加中文分词器:目前呼声较高的是 ... 
- solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件
		昨天已经在Tomcat容器中成功的部署了solr全文检索引擎系统的服务:今天来分享一下solr服务在海量数据的网站中是如何实现数据的检索. 在solr服务中集成IKAnalyzer中文分词器的步骤: ... 
- 2.IKAnalyzer 中文分词器配置和使用
		一.配置 IKAnalyzer 中文分词器配置,简单,超简单. IKAnalyzer 中文分词器下载,注意版本问题,貌似出现向下不兼容的问题,solr的客户端界面Logging会提示错误. 给出我配置 ... 
- Solr4.0+IKAnalyzer中文分词安装(转)
		有近2年没接触Solr跟Lucene了,这2年自己跟solr/lucene都发生了很多变化.不过有种疏途同归的感觉,那就是都向分布式/云和监控靠了.2年前接触了solrcloud,那时大概玩了一周.那 ... 
- Solr4.0+IKAnalyzer中文分词安装
		1.依赖: JDK1.6,Tomcat 5.5,Solr 4.0.0,IKAnalyzer 2012FF Tomcat虽然不是必须,但觉得上生产环境的话,还是得用Tomcat,便于统一管理和监控. T ... 
- Java实现敏感词过滤 - IKAnalyzer中文分词工具
		IKAnalyzer 是一个开源的,基于java语言开发的轻量级的中文分词工具包. 官网: https://code.google.com/archive/p/ik-analyzer/ 本用例借助 I ... 
- 用于Lucene的各中文分词比较
		对几种中文分析器,从分词准确性和效率两方面进行比较.分析器依次为:StandardAnalyzer.ChineseAnalyzer.CJKAnalyzer.IK_CAnalyzer.MIK_CAnal ... 
- Lucene系列四:Lucene提供的分词器、IKAnalyze中文分词器集成、扩展 IKAnalyzer的停用词和新词
		一.Lucene提供的分词器StandardAnalyzer和SmartChineseAnalyzer 1.新建一个测试Lucene提供的分词器的maven项目LuceneAnalyzer 2. 在p ... 
- (转)全文检索技术学习(三)——Lucene支持中文分词
		http://blog.csdn.net/yerenyuan_pku/article/details/72591778 分析器(Analyzer)的执行过程 如下图是语汇单元的生成过程: 从一个Re ... 
随机推荐
- bzoj3111: [Zjoi2013]蚂蚁寻路
			题目链接 bzoj3111: [Zjoi2013]蚂蚁寻路 题解 发现走出来的图是一向上的凸起锯齿状 对于每个突出的矩形dp一下就好了 代码 /* */ #include<cstdio> ... 
- NOIp模拟赛 巨神兵(状压DP 容斥)
			\(Description\) 给定\(n\)个点\(m\)条边的有向图,求有多少个边集的子集,构成的图没有环. \(n\leq17\). \(Solution\) 问题也等价于,用不同的边集构造DA ... 
- Educational Codeforces Round 14 A. Fashion in Berland 水题
			A. Fashion in Berland 题目连接: http://www.codeforces.com/contest/691/problem/A Description According to ... 
- 使用 IntraWeb (9) - JavaScript
			IW 依赖 js 构建(我数了数, 在当前版本它的资源文件默认携带了 26 个 js); 但 IW 尽可能地让用户少用或不用 js, 但如果你对 js 也不陌生, IW 提供了多种途径与方便. 我给它 ... 
- WebLogic使用总结(五)——Web项目使用Sigar在WebLogic服务器部署遇到的问题
			今天在WebLogic 12c服务器上部署Web项目时,碰到了一个问题.项目中使用到了"Sigar.jar"监控Window平台下的cpu使用率.内存使用率和硬盘信息,sigar. ... 
- 大不列颠百科全书Encyclopaedia Britannica Ultimate 2014光盘镜像
			大不列颠百科全书又名大英百科全书,是目前最古老的百科全书之一.大英百科全书每10余年出一个版本,如今已经推出到Encyclopaedia Britannica Ultimate 2014.此次推荐的是 ... 
- Command /usr/sbin/chown failed with exit code 1?
			问题: 解答: 转自:http://stackoverflow.com/questions/7589771/command-usr-sbin-chown-failed-with-exit-code-1 
- iOS: 计算 UIWebView 的内容高度
			- (void)webViewDidFinishLoad:(UIWebView *)wb { //方法1 CGFloat documentWidth = [[wb stringByEvaluating ... 
- .NET:分布式事务
			背景 分布式事务使用起来比较方便,不过也是有成本的,因此如果可以不用就尽量不用,比如:采用saga.如果采用了分布式事务的话,就需要对分布式事务相关的几个概念有所了解. 分布式事务 相关角色: 事务发 ... 
- Linux学习13-CentOS安装ab做压力测试
			前言 网站性能压力测试是服务器网站性能调优过程中必不可缺少的一,测试环境准备好了后,如何对网站做压力测试? 压力测试的工具很多,如:ab.http_load.webbench.siege.jmeter ... 
