1. 程式人生 > >自然語言交流系統 phxnet團隊 創新實訓 項目博客 (十)

自然語言交流系統 phxnet團隊 創新實訓 項目博客 (十)

catch 上下 技術分享 聯系 cnblogs 支付寶 while ner bsp

關於本項目中使用到的庖丁分詞的總結: Paoding 詳細介紹

庖丁中文分詞庫是一個使用Java開發的,可結合到Lucene應用中的,為互聯網、企業內部網使用的中文搜索引擎分詞組件。Paoding填補了國內中文分詞方面開源組件的空白,致力於此並希翼成為互聯網網站首選的中文分詞開源組件。 Paoding中文分詞追求分詞的高效率和用戶良好體驗。

Paoding‘s Knives 中文分詞具有極 高效率高擴展性 。引入隱喻,采用完全的面向對象設計,構思先進。

高效率:在PIII 1G內存個人機器上,1秒 可準確分詞 100萬 漢字。

采用基於 不限制個數 的詞典文件對文章進行有效切分,使能夠將對詞匯分類定義。

能夠對未知的詞匯進行合理解析

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;

}

}

如果您願意花幾塊錢請我喝杯茶的話,可以用手機掃描下方的二維碼,通過 支付寶 捐贈。我會努力寫出更好的文章。
(捐贈不顯示捐贈者的個人信息,如需要,請註明您的聯系方式)
Thank you for your kindly donation!!

技術分享

自然語言交流系統 phxnet團隊 創新實訓 項目博客 (十)