在使用庖丁自定义词典的时候,按照网上查的资料,
1.首先自定义一个XXX.dic的文件,以utf-8保存;
2.将自定义词添加到dic\locale下的XXX.dic中;
3.删除.compile文件夹
- 首先配置paoding.dic.home.config-fisrt。其有2个选项:system-env和this。
- paoding.dic.home.config-fisrt=system-env 表示使用系统变量。如果使用这个,那个需要配置环境变量 PAODING_DIC_HOME 为字典所在目录。
- paoding.dic.home.config-fisrt=this 表示使用本配置文件里面的配置。如果使用这个,需要在本配置文件中继续配置 paoding.dic.home。
- 配置paoding.dic.home (如果在上面选择了paoding.dic.home.config-fisrt=this才需要),也有2种方法:使用相对路径和绝对路径
- paoding.dic.home=classpath:dic 使用相对路径。表示使用本项目的classpath中列出的任意一个文件夹,然后把dic文件夹放置其中。一般在eclipse项目中,把dic文件夹放在源码文件夹(src)中。
- paoding.dic.home=D:/somepath/dic 使用绝对路径。
classpath下修改的paoding-dic-home.properties文件
paoding.dic.home.config-fisrt=this
paoding.dic.home=classpath:dic
庖丁有两种分词模式:
most-words:最大词量分词方式,此模式对应的词典编译类为MostWordsModeDictionariesCompiler
max-word-length:按词在词典中的原序来进行编译,基本不再做其他处理,此模式对应的词典编译类为SortingDictionariesCompiler
most-words是默认的分词模式。
注意:出现自定义词不起效果
修改classpath下配置paoding-analyzer.properties,内容如下(需要根据分词模式来选择哪种compiler):
#PaodingAnlyzer Mode, "most-words", "max-word-length", "class:com.xxx.MyTokenCollectorImpl"...
#paoding.analyzer.mode=most-words
#paoding.analyzer.dictionaries.compiler=net.paoding.analysis.analyzer.impl.MostWordsModeDictionariesCompiler
#paoding.analyzer.mode=max-word-length
paoding.analyzer.dictionaries.compiler=net.paoding.analysis.analyzer.impl.SortingDictionariesCompiler
最后 删掉.compile文件
public class tt {
public static void main(String[] args) throws IOException {
// String indexStr = "我是林俊杰,我喜爱编程,我的测试用例";
String indexStr = "我是运动员,碳专项项目开发进行中...";
@SuppressWarnings("resource")
Analyzer analyzer = new PaodingAnalyzer();
StringReader reader=new StringReader(indexStr);
TokenStream token = analyzer.tokenStream(indexStr, reader);
boolean hasnext= token.incrementToken();
while (hasnext){
CharTermAttribute ta = token.getAttribute(CharTermAttribute.class);
System.out.println(ta.toString());
hasnext = token.incrementToken();
}
}
}