1. 程式人生 > >詳解庖丁解牛中文分詞器工具的使用

詳解庖丁解牛中文分詞器工具的使用

今天在網上看了一篇關於中文分詞的文章,有一類是關於基於字串匹配的中文分詞,裡面談到了一個“庖丁解牛分詞器”,於是本人就想嘗試跑跑這個分詞工具。下面是具體的使用步驟:

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;

    }

}

5.  執行後的結果: