自己动手写搜索引擎(常搜吧历程四#分词#)(Java、Lucene、hadoop)

分词的基本原理:

1、分词是用来对文本按语言特征按算法进行过滤、分组处理的一种技术。

2、分词的对象是文本,而不是图像动画脚本等等。

3、分词的方式就是过滤和分组。

4、过滤主要把文本中那些没有实际意义的字或词过滤掉。

5、分组就是按照”分词数据库“内已添加好的词,进行匹配。


下面来看Lucene分词器的使用

package com.qianyan.analyzer;

import java.io.IOException;
import java.io.StringReader;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.SimpleAnalyzer;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.WhitespaceAnalyzer;
import org.apache.lucene.analysis.cjk.CJKAnalyzer;
import org.apache.lucene.analysis.cn.ChineseAnalyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;

public class TestAnalyzer {

	public static void main(String[] args) throws IOException {
		Analyzer analyzer = new StandardAnalyzer(); //标准 过滤停用次
		//Analyzer analyzer = new SimpleAnalyzer();  //简单 过滤空格和符号
		//Analyzer analyzer = new WhitespaceAnalyzer();  //过滤空格
		//Analyzer analyzer = new ChineseAnalyzer();  //lucene下的中文分词器   拆分每个字符,过滤符号
		//Analyzer analyzer = new CJKAnalyzer();  //中文 两字两字拆分 英文和standard功能一样
		String input = "this is test lucene analyzer class!";
		TokenStream tokenStream = analyzer.tokenStream("", new StringReader(input));
		Token token = new Token();
		while(null != tokenStream.next(token))
			System.out.println(token.term());
	}
}

对于初学者,我们只需要掌握这些经典的分词器就足够了。

但在实际的开发过程中,满足我们需要得,是一些基于lucene分词之上的第三方中文分词包,在这里我们只介绍 ”庖丁分词包“,命令借鉴了”庖丁解牛“这个成语。

庖丁解牛,我国古代成语,出自《庄子》,比喻经过反复实践,掌握了事物的客观规律,做事得心应手,运用自如。

下载网址链接:http://code.google.com/p/paoding/

解压后我们需要对项目添加2个jar包,解压目录下的paoding-analysis.jar 和lib下的 commons-logging.jar 。令把dic文件夹复制到我们的项目src目录下。

package com.qianyan.analyzer;

import java.io.IOException;
import java.io.StringReader;

import net.paoding.analysis.analyzer.PaodingAnalyzer;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenStream;

public class TestPaodingAnalyzer {

	public static void
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值