您的位置:首页 > 编程语言

lucene2.4集成几种中文分词实例代码

2009-11-11 15:08 477 查看
转载书客网www.8211.cn

原地址:http://www.8211.cn/repository/list_2651.html

package com.test;

import java.io.Reader;

import java.io.StringReader;

import org.apache.lucene.analysis.Analyzer;

import org.apache.lucene.analysis.StopFilter;

import org.apache.lucene.analysis.Token;

import org.apache.lucene.analysis.TokenFilter;

import org.apache.lucene.analysis.TokenStream;

import org.apache.lucene.analysis.cjk.CJKAnalyzer;

import org.apache.lucene.analysis.cn.ChineseAnalyzer;

import org.apache.lucene.analysis.standard.StandardAnalyzer;

import org.mira.lucene.analysis.IK_CAnalyzer;

import org.mira.lucene.analysis.MIK_CAnalyzer;

public class All_Test {

private static String string = "书客网www.8211.cn计算机电子文档分享平台
";

public static void Standard_Analyzer(String str) throws Exception{

Analyzer analyzer = new StandardAnalyzer();

Reader r = new StringReader(str);

StopFilter sf = (StopFilter) analyzer.tokenStream("", r);

System.out.println("=====StandardAnalyzer====");

System.out.println("分析方法:默认没有词只有字(一元分词)");

Token t;

while ((t = sf.next()) != null) {

System.out.println(t.termText());

}

}

public static void CJK_Analyzer(String str) throws Exception{

Analyzer analyzer = new CJKAnalyzer();

Reader r = new StringReader(str);

StopFilter sf = (StopFilter) analyzer.tokenStream("", r);

System.out.println("=====CJKAnalyzer====");

System.out.println("分析方法:交叉双字分割(二元分词)");

Token t;

while ((t = sf.next()) != null) {

System.out.println(t.termText());

}

}

public static void Chiniese_Analyzer(String str) throws Exception{

Analyzer analyzer = new ChineseAnalyzer();

Reader r = new StringReader(str);

TokenFilter tf = (TokenFilter) analyzer.tokenStream("", r);

System.out.println("=====chinese analyzer====");

System.out.println("分析方法:基本等同StandardAnalyzer(一元分词)");

Token t;

while ((t = tf.next()) != null) {

System.out.println(t.termText());

}

}

public static void ik_CAnalyzer(String str) throws Exception{

Analyzer analyzer = new MIK_CAnalyzer();

// Analyzer analyzer = new IK_CAnalyzer();

Reader r = new StringReader(str);

TokenStream ts = (TokenStream)analyzer.tokenStream("", r);

System.out.println("=====IK_CAnalyzer====");

System.out.println("分析方法:字典分词,正反双向搜索");

Token t;

while ((t = ts.next()) != null) {

System.out.println(t.termText());

}

}

public static void main(String[] args) throws Exception{

String str = string;

System.out.println("我们测试的字符串是:"+str);

Standard_Analyzer(str);

CJK_Analyzer(str);

Chiniese_Analyzer(str);

ik_CAnalyzer(str);

}

}

lucene2.4集成几种分词实例

运行结果如下:

我们测试的字符串是:书客网www.8211.cn计算机电子文档分享平台

=====StandardAnalyzer====

分析方法:默认没有词只有字(一元分词)







www.8211.cn























=====CJKAnalyzer====

分析方法:交叉双字分割(二元分词)

书客

客网

8211

cn

计算

算机

机电

电子

子文

文档

档分

分享

享平

平台

=====chinese analyzer====

分析方法:基本等同StandardAnalyzer(一元分词)







www

cn























=====IK_CAnalyzer====

分析方法:字典分词,正反双向搜索

书客网

www

8211

cn

计算机

机电

电子

文档

分享

平台
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: