hadoop学习过程-2013.08.30.2--初次使用IKAnalyzer来切词--切词试验
来源:互联网 发布:如何注册一个好的域名 编辑:程序博客网 时间:2024/06/01 11:54
代码如下:
package 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;/** * 切词演示 * @author caogl * */public class IKAnalyzerTest { public static void main(String[] args) throws Exception{ new IKAnalyzerTest().testIKAnalyzer(); } public void testIKAnalyzer() throws Exception { String keyWord = "2013年欧洲杯四强赛";// String keyWord = "中方数月内三度警告美方勿干涉香港内政 "; IKAnalyzer analyzer = new IKAnalyzer(); //使用智能分词 analyzer.setUseSmart(true); //打印分词结果 printAnalysisResult(analyzer,keyWord); } /** * 打印出给定分词器的切词结果 */ private void printAnalysisResult(Analyzer analyzer, String keyWord) throws Exception {// System.out.println("当前使用的分词器:" + analyzer.getClass().getSimpleName()); TokenStream tokenStream = analyzer.tokenStream("content", new StringReader(keyWord)); tokenStream.addAttribute(CharTermAttribute.class); CharTermAttribute charTermAttribute = null; //以下循环中charTermAttribute.termBuffer是同一个对象 while (tokenStream.incrementToken()) { charTermAttribute = tokenStream.getAttribute(CharTermAttribute.class);// System.out.println(new String(charTermAttribute.buffer())); System.out.println(new String(charTermAttribute.toString())); } }}
依赖的jar包:
IKAnalyzer2012_u6/IKAnalyzer2012_u6.jar
lucene-3.6.0/lucene-core-3.6.0.jar
程序输出结果分析:
输出结果是: (#之间的为输出,不包括单引号) #
2013年
欧洲杯3年
四强赛3年
#
每一行后面都有9个类似'口'的符号。输出结果解释如下:
第一次进循环时, charTermAttribute.termBuffer内容为
['2', '0', '1', '3', '年', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000']
第二次进循环时, charTermAttribute.termBuffer内容为
['欧', '洲', '杯', '3', '年', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000']
第三次进循环时, charTermAttribute.termBuffer内容为
['四', '强', '赛', '3', '年', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000']
因此产生了上述输出。
当然了如果输出charTermAttribute.toString(),程序输出结果是: #
2013年
欧洲杯
四强赛
#
得到的内容正常了,不再包括上次循环的内容。
- hadoop学习过程-2013.08.30.2--初次使用IKAnalyzer来切词--切词试验
- 中文分词-IKAnalyzer初次使用
- hadoop初次使用篇
- 初次学习使用CSDN
- 初次使用 Hadoop Streaming 的过程(遇到各种各样的问题)
- FFmpeg-mt初次试验
- Java多线程初次试验
- FFmpeg-mt初次试验
- hadoop学习过程-2013.08.29--爬虫larbin安装、配置、使用
- 初次使用hadoop时遇到的问题.
- 使用lucene,IKAnalyzer提取敏感词
- Java使用IKAnalyzer进行敏感词过滤
- MarkDown的初次学习使用。
- 学习easyUI之初次使用
- hadoop学习过程-2013.08.22.1--运行WordCount
- hadoop学习过程-2013.08.20--搭建hadoop环境
- <hadoop学习历程>--笔记心得8-HA环境搭建试验
- hadoop学习过程
- C#获取汉字首字母,多音拼音
- Silverlight中常用的尺寸
- 一些php错误
- Visual Studio 2010新功能-IntelliTrace(智能跟踪)
- C#项目引用完全相同dll文件的问题解决方法(反射)
- hadoop学习过程-2013.08.30.2--初次使用IKAnalyzer来切词--切词试验
- Struts2 控制台不打印异常的解决方案
- How to: Scrape search engines without pissing them off
- 搜索文本框焦点离开时设置文本,位置跳动问题
- Linux下SSH使用rsa认证方式省去输入密码
- 播放多媒体——MCI控件
- 第十一次java课后笔记
- DestroyWindow与PostNcDestroy
- hdu/hdoj 1166 敌兵布阵