1. 程式人生 > >paoding庖丁分詞使用小例子(學習筆記)

paoding庖丁分詞使用小例子(學習筆記)

推薦使用為知筆記(Wiz),它是電腦、手機、平板都能用的雲筆記軟體,使用我的邀請註冊可獲VIP體驗:http://www.wiz.cn/i/02c6808b

做SRT遇到要分詞,以前做了一個分詞系統,但那個是老師提供的詞庫,真要自己來做分詞,沒詞庫怎麼行?

到處找詞庫,找不到好用的,後來還在臺灣某個學術機構上看到一個詞庫,但要臺幣一萬大洋,鬱悶~~

沒辦法,最後想到直接找開源的分詞軟體,找到庖丁,於是大呼“爽”!

下面直接給一個小例子,功能是將某個目錄下的某個txt檔案裡面的內容讀取出來並分詞,把分詞結果顯示出來:

先配置好paoding的執行環境,無非就是把庖丁用的那些jar檔案匯入專案。

然後需要匯入包:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

import net.paoding.analysis.analyzer.PaodingAnalyzer;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenStream;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
這裡是直接從我的專案裡copy出來的,有些用不到。

下面自己寫個test類,把下面的程式碼貼進去:

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

		String content = null;

		// 將庖丁封裝成符合Lucene要求的Analyzer規範
		Analyzer analyzer = new PaodingAnalyzer();

		FileInputStream in = null;
		in = new FileInputStream(new File("d://text.txt"));

		InputStreamReader inReader = new InputStreamReader(in);
		BufferedReader br = new BufferedReader(inReader);
		TokenStream ts = analyzer.tokenStream(content, br);

		Token t;
		t = ts.next();
		while (t != null) {
			content += t.termText() + " ";
			System.out.println(t.termText());
			t = ts.next();
		}
	}

在D盤根目錄下建立一個text.txt檔案,把本文前兩段的內容貼進去。

測試一下,控制檯輸出:

三月 06, 2012 1:22:50 下午 net.paoding.analysis.knife.PaodingMaker getProperties
資訊: config paoding analysis from: F:\eclipse_work\SRTDemo\file:\F:\eclipse_work\SRTDemo\lib\paoding-analysis.jar!\paoding-analysis.properties;F:\eclipse_work\SRTDemo\file:\F:\eclipse_work\SRTDemo\lib\paoding-analysis.jar!\paoding-analysis-default.properties;F:\eclipse_work\SRTDemo\file:\F:\eclipse_work\SRTDemo\lib\paoding-analysis.jar!\paoding-analyzer.properties;F:\eclipse_work\SRTDemo\bin\paoding-dic-home.properties;D:\dic\paoding-dic-names.properties;F:\eclipse_work\SRTDemo\file:\F:\eclipse_work\SRTDemo\lib\paoding-analysis.jar!\paoding-knives.properties;F:\eclipse_work\SRTDemo\file:\F:\eclipse_work\SRTDemo\lib\paoding-analysis.jar!\paoding-knives-user.properties
三月 06, 2012 1:22:50 下午 net.paoding.analysis.knife.PaodingMaker createPaodingWithKnives
資訊: add knike: net.paoding.analysis.knife.CJKKnife
三月 06, 2012 1:22:50 下午 net.paoding.analysis.knife.PaodingMaker createPaodingWithKnives
資訊: add knike: net.paoding.analysis.knife.LetterKnife
三月 06, 2012 1:22:50 下午 net.paoding.analysis.knife.PaodingMaker createPaodingWithKnives
資訊: add knike: net.paoding.analysis.knife.NumberKnife

srt
遇到

分詞

以前
做了
一個
分詞
系統
那個
老師
提供
詞庫
真要

分詞
沒詞
詞庫
怎麼

到處
找詞
詞庫
不到
找不到
好用
用的
後來
還在
在臺
臺灣
某個
學術
機構
看到
一個
一個詞
詞庫
但要
臺幣
10000


大洋
鬱悶
沒辦
辦法
最後
想到
直接
找開
開源
分詞
軟體
找到
庖丁
於是

大呼

必須成功的!