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

来源:互联网 发布:淘宝在线链接转换工具 编辑:程序博客网 时间:2024/06/18 12:44

这次的笔记是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>
其他代码不变,可以看到控制台不输入自定义的停用词(这个里就不显示效果了)。




原创粉丝点击