我迁出的版本:paoding-analysis-2.0.4-beta
然后运行个例子先看一下,
结果提示我找不到词典文件,我的paoding_dic_home已经设置了,指向E:\data\paoding\dic目录下,只是,词典文件如何
生成呢?
先谢谢了。
Paoding中文分词参考手册
本文档对应paoding-analysis 2.0.4-alpha2,目前还在草稿状态。
由于没有docbook编辑文档的经验和环境,暂时以word编辑文档。
目录
一般使用
使用评估
参考资料
下载
开始使用
分词策略
高级专题
配置参考
PaodingMaker的设计
庖丁架构
词典的抽象与设计
词典定制
词典动态加载
自定制分词策略
集成指南
Spring XML 配置
一般使用
使用评估
暂略
参考资料
暂略
下载
zip download:http://code.google.com/p/paoding/downloads/list
svn: http://paoding.googlecode.com/svn/trunk/paoding-analysis/
效果体验
E:\Paoding-Analysis>analyzer.bat ?
当没有在命令行参数种输入分词内容或待分词的文章时,analyzer.bat进入分词对话模式,使用者可以多次输入或粘贴不同的文字内容,查看分词效果,如:
E:\Paoding-Analysis>analyzer.bat
此时使用者可以在光标所在所在位置(|)输入或粘贴待分词的内容(以分号结束),按下Enter键换行,analyzer.bat便可以输出分词结果。比如:
分词器net.paoding.analysis.analyzer.PaodingAnalyzer
--------------------------------------------------
analyzer.bat允许对指定的文件进行分词体验。文件以路径名给出可以使绝对地址、相对当前目录的地址,或以classpath:为前缀的类路径地址。示例如下:
paoding> :-f E:/content.txt -c gbk
paoding> :-f E:/content.txt -c gbk -m max
开始使用
在linux下,我们可以考虑将词典安装在一个专门存储数据的分区下某目录,以笔者为例,笔者将/data作为系统的一个独立分区,笔者便是将词典保存在/data/paoding/dic下。
在windows下,我们可以考虑将词典安装在非系统盘的另外分区下的某个目录,以笔者为例,笔者可能将词典保存在E:/data/paoding/dic下。
使用者安装辞典后,应该设置系统环境变量PAODING_DIC_HOME指向词典安装目录。
在linux下,通过修改/etc/profile,在文件末尾加上以下2行,然后保存该文件并退出即可。
PAODING_DIC_HOME=/data/paoding/dic
分词策略
package net.paoding.analysis;
import java.io.StringReader;
import junit.framework.TestCase;
import net.paoding.analysis.analyzer.PaodingAnalyzer;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenStream;
public class AnalyzerTest extends TestCase {
protected PaodingAnalyzer analyzer = new PaodingAnalyzer();
protected StringBuilder sb = new StringBuilder();
protected String dissect(String input) {
try {
TokenStream ts = analyzer.tokenStream("", new StringReader(input));
Token token;
sb.setLength(0);
while ((token = ts.next()) != null) {
sb.append(token.termText()).append('/');
}
if (sb.length() > 0) {
sb.setLength(sb.length() - 1);
}
return sb.toString();
} catch (Exception e) {
e.printStackTrace();
return "error";
}
}
/**
*
*/
public void test000() {
String result = dissect("a");
assertEquals("", result);
}
/**
*
*/
public void test001() {
String result = dissect("空格 a 空格");
assertEquals("空格/空格", result);
}
/**
*
*/
public void test002() {
String result = dissect("A座");
assertEquals("a座", result);
}
/**
*
*/
public void test003() {
String result = dissect("u盘");
assertEquals("u盘", result);
}
public void test004() {
String result = dissect("刚买的u盘的容量");
assertEquals("刚/买的/u盘/容量", result);
}
public void test005() {
String result = dissect("K歌之王很好听");
assertEquals("k歌之王/很好/好听", result);
}
// --------------------------------------------------------------
// 仅包含词语的句子分词策略
// --------------------------------------------------------------
/**
* 句子全由词典词语组成,但词语之间没有包含、交叉关系
*/
public void test100() {
String result = dissect("台北中文国际");
assertEquals("台北/中文/国际", result);
}
/**
* 句子全由词典词语组成,但词语之间有包含关系
*/
public void test101() {
String result = dissect("北京首都机场");
assertEquals("北京/首都/机场", result);
}
/**
* 句子全由词典词语组成,但词语之间有交叉关系
*/
public void test102() {
String result = dissect("东西已经拍卖了");
assertEquals("东西/已经/拍卖/<span style='font-family:宋体;mso-ascii-font-family:"Courier New"; mso-hansi-font-family:"Courier New";mso-bidi-font-family: