java鬼混笔记:lucene 4、中文分词器--IKAnalyzer

本文介绍如何使用Lucene的IKAnalyzer进行中文分词,包括基本操作、自定义分词字典及停用词等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这次的笔记是lucene中的中文分词器IKAnalyzer的操作,要导入相关的jar包:IKAnalyzer2012.jar,接着进行普通的操作测试

1、基本操作


		// 定义文字
		String txt = "还是原来那个我,不过流掉几公升泪所以变瘦,对着镜子我承诺,迟早我会还这张脸一堆笑容,不算什麽 爱错就爱错,早点认错,早一点解脱,我寂寞寂寞就好,这时候谁都别来安慰 拥抱,就让我一个人去痛到受不了";
		Analyzer analyzer = new IKAnalyzer();
		
		TokenStream ts = analyzer.tokenStream("content", new StringReader(txt));
		
		while(ts.incrementToken()) {
			CharTermAttribute cta = ts.getAttribute(CharTermAttribute.class);
			System.out.println(cta.toString());
		}
		analyzer.close();
		/*控制台打印:整体很不错
		还是
		原来
		那个
		我
		不过
		流掉
		几
		公升
		泪
		所以
		变
		瘦
		对着
		镜子
		我
		承诺
		迟早
		我会
		我
		会
		还
		这张
		脸
		一堆
		一
		堆笑
		堆
		笑容
		不算
		什
		麽
		爱错
		就爱
		爱错
		早点
		认错
		早一点
		一点
		一
		点解
		点
		解脱
		我
		寂寞
		寂寞
		就好
		这时候
		这时
		时候
		谁都
		别来
		来安
		安慰
		拥抱
		就让
		我
		一个人
		一个
		一
		个人
		个
		人去
		去痛
		到
		受不了*/


2、自定义分词器的字典:

像网上时不时暴出各种网络词,IKAnalyzer是不识别的,所以我们要手动加词让IKAnalyzer识别,比如txt = "网络词:王尼马,苹果婊,张全蛋,papi酱";,那么IKAnalyzer分词的结果是:

网络
词
王
尼
马
苹果
婊
张
全
蛋
papi
酱

这个结果并不是我们想要的,所以这时候要添加分词的字典了。

首先在src目录下添加IKAnalyzer.cfg.xml文件

IKAnalyzer.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  
		<properties>  
			<comment>DIY</comment>
			<!-- 自定义分词字典 -->
			<entry key="ext_dict">ext_dict.dic;</entry> 
		</properties>

接着在src目录下创建ext_dict.dic文件,打开这个文件,内容如下:

ext_dict.dic
王尼马// 一个词一行
苹果婊
张全蛋
papi酱
保存后运行程序,控制台打印:

加载扩展词典:ext_dict.dic
网络
词
王尼马
苹果婊
苹果
婊
张全蛋
papi酱
papi
酱

这个分词结果就很理想了。。。

3、自定义分词器的停用词

首先在IKAnalyzer.cfg.xml中加入

<!-- 自定义停用分词字典 -->
	  <entry key="ext_stopwords">ext_stopwords.dic;</entry>

<?xml version="1.0" encoding="UTF-8"?>
		<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  
		<properties>  
			<comment>DIY</comment>
			<!-- 自定义分词字典 -->
			<entry key="ext_dict">ext_dict.dic;</entry> 
			<!-- 自定义停用分词字典 -->
			<entry key="ext_stopwords">ext_stopwords.dic;</entry>
		</properties>
其他代码不变,可以看到控制台不输入自定义的停用词(这个里就不显示效果了)。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值