Skip to content

配置文件说明

ansj edited this page Aug 28, 2017 · 7 revisions

在默认情况下,如果你想做更多的全局设定在程序调用时候,配置文件是个必不可少的玩意,在ansj中配置文件名为library.properties,这是一个不可更改的约定.下面让我们看看都有哪些选项在这个配置文件中.

字段名 默认值 说明
isNameRecognition true 是否开启人名识别
isNumRecognition true 是否开启数字识别
isQuantifierRecognition true 是否数字和量词合并
isRealName false 是否取得真实的词,默认情况会取得标注化后的
isSkipUserDefine false 是否用户辞典不加载相同的词
dic "library/default.dic" 自定义词典路径
dic_[key] "你的词典路径" 针对不同语料调用不同的自定义词典
ambiguity "library/ambiguity.dic" 歧义词典路径
ambiguity_[key] "library/ambiguity.dic" 歧义词典路径
crf null crf词典路径,不设置为默认
crf_[key] "你的模型路径" 针对不同语料调用不同的分词模型
synonyms "默认的同义词典" 针对不同语料调用不同的分词模型
synonyms_[key] "你的同义词典路径" 针对不同语料调用不同的分词模型
默认的配置文件格式
#path of userLibrary this is default library
dic=library/default.dic

#redress dic file path
ambiguityLibrary=library/ambiguity.dic

#set real name
isRealName=true

#isNameRecognition default true
isNameRecognition=true

#isNumRecognition default true
isNumRecognition=true

#digital quantifier merge default true
isQuantifierRecognition=true
加载词典的方式 5.1.0版本之后

在5.1.0版本之后你可以通过多种方式加载你的词典.也可以自定义词典加载的接口.目前有如下方式

  • 文件加载 file://c:/dic.txt 当然你可以依旧保持旧的写法c:/dic.txt
  • 从jar包中加载 jar://org.ansj.dic.DicReader|/crf.model , 以jar://开头..第一个为类全名称,后面为这个类所在jar包词典文件的路径.
  • 从jdbc包中加载 jdbc://jdbc:mysql://192.168.10.103:3306/dic_table?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull|username|password|select name as name,nature,freq from dic where type=1
  • 从url中加载.url://http://maven.nlpcn.org/down/library/default.dic
  • 当然你也可以实现自己的 加载方式,通过继承 PathToStream来实现.
配置文件放在什么地方

默认情况下.放入到classpath中,来加载,但是很多时候,鬼知道classpath死哪去了,所以在你不知道的情况下,放到项目根目录还算是很保险的一个做法,程序默认在classpath中找不到的情况下,会尝试在启动目录的后两级开始找,当然项目启动的时候会有一个log来显示配置文件是否加载成功!如下所示:

INFO: load library not find in classPath ! i find it in 
.....ansj_seg/library.properties make sure it is your config!

阅读拓展

​ 细心的你也许会发现,这些key的变量完全对应代码中static field的变量,所以.我是通过反射给对象赋值的,所以你完全可以通过配置文件操作MyStaticValue.class中所有的static field.当然你可以无视这段话,就当我胡说八道呢吧!