paoding庖丁分詞使用小例子(學習筆記)
推薦使用為知筆記(Wiz),它是電腦、手機、平板都能用的雲筆記軟體,使用我的邀請註冊可獲VIP體驗:http://www.wiz.cn/i/02c6808b
做SRT遇到要分詞,以前做了一個分詞系統,但那個是老師提供的詞庫,真要自己來做分詞,沒詞庫怎麼行?
到處找詞庫,找不到好用的,後來還在臺灣某個學術機構上看到一個詞庫,但要臺幣一萬大洋,鬱悶~~
沒辦法,最後想到直接找開源的分詞軟體,找到庖丁,於是大呼“爽”!
下面直接給一個小例子,功能是將某個目錄下的某個txt檔案裡面的內容讀取出來並分詞,把分詞結果顯示出來:
先配置好paoding的執行環境,無非就是把庖丁用的那些jar檔案匯入專案。
然後需要匯入包:
這裡是直接從我的專案裡copy出來的,有些用不到。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;
下面自己寫個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
大
大
大洋
鬱悶
沒辦
辦法
最後
想到
直接
找開
開源
分詞
軟體
找到
庖丁
於是
大
大呼
爽
必須成功的!