做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
大
大
大洋
郁闷
没办
办法
最后
想到
直接
找开
开源
分词
软件
找到
庖丁
于是
大
大呼
爽
必须成功的!