详解庖丁解牛中文分词器工具的使用

今天在网上看了一篇关于中文分词的文章,有一类是关于基于字符串匹配的中文分词,里面谈到了一个“庖丁解牛分词器”,于是本人就想尝试跑跑这个分词工具。下面是具体的使用步骤:

1.  从网上下载了一个庖丁解牛中文分词工具压缩包,放入D:\SoftwarePackage中。解压D:\SoftwarePackage中的paoding-analysis-2.0.4-beta压缩包到文件夹D:\software\paoding-analysis-2.0.4-beta中。

2.  新建java工程PaodingAnalysisTest,在工程下新建文件夹lib,将解压后文件里面的paoding-analysis.jar以及lib目录下的commons-logging.jar,lucene-analyzer-2.2.0.jar,lucene-core-2.2.0.jar四个文件拷贝到lib目录下,在这里需要修改下paoding-analysis.jar里面的内容,用解压工具打开paoding-analysis.jar,修改paoding-dic-home.properties里面的内容,将#paoding.dic.home=dic修改成paoding.dic.home=E://WorkSpace//data//dic(此处路径可根据字典存放的位置进行相应更改),保存即可。

3.  右键单击工程->Properties->Java Build Path,在右侧选中第三个标签Libraries,点击Add JARs…,导入上述四个包;再选择第四个标签Order and Export,勾选上这四个包,点击OK按钮。

4.  然后创建一个主类,编写测试小程序(此程序是从网上copy过来的)

import java.io.*;

 

import org.apache.lucene.analysis.Analyzer;

import org.apache.lucene.analysis.Token;

import org.apache.lucene.analysis.TokenStream;

import net.paoding.analysis.analyzer.PaodingAnalyzer;

 

public class FenciTest{

 

/**

     * @param args

 */

public static voidmain(String[] args) {

// TODOAuto-generated method stub

     Analyzeranalyzer=new PaodingAnalyzer();

     StringdocText=null;

     Filefile=new File("E:\\WorkSpace\\data\\FenciTest1.txt");

     docText=readText(file);

     TokenStreamtokenStream=analyzer.tokenStream(docText, newStringReader(docText));

     try{

         Tokent;

         //System.out.println(docText);

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

             System.out.println(t);

         }

        }catch(IOExceptione){

         e.printStackTrace();

     }

}

 

    private static StringreadText(File file) {

        // TODOAuto-generated method stub

        String text=null;

        try{

                InputStreamReaderread1=new InputStreamReader(newFileInputStream(file),"GBK");

            BufferedReaderbr1=new BufferedReader(read1);

            StringBufferbuff1=new StringBuffer();

            while((text=br1.readLine())!=null){

                buff1.append(text+"/r/n");

            }

            br1.close();

            text=buff1.toString();         

        }catch(FileNotFoundExceptione){

            System.out.println(e);

        }catch(IOExceptione){

            System.out.println(e);

        }

        return text;

    }

}

说明:此测试程序对lucene2.2适用,但对lucene3.0不适用,因为其去掉了tokenStream.next()方法,具体可参                                        考:http://www.cnblogs.com/LeftNotEasy/archive/2010/01/14/1647778.html

5.  运行后的结果:


 



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值