【实训日记9】Ansj5.1.3版本自定义词典、歧义词典的使用
·
之前的资料说的都不太明白,这次也是自己找了很久之后,做一个总结,以便以后再用到。
我们这里使用的都是资源配置。
零、Maven
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
log文件的地址,在配置一个log4j.properties,看一下log输出有助于debug
<dependency>
<groupId>org.ansj</groupId>
<artifactId>ansj_seg</artifactId>
<version>5.1.3</version>
</dependency>
一、properties文件以及dic文件的位置
dic文件要放在library文件夹下,这个library是和src文件属于同一级的,也就是在工程文件目录下,不要放在resources文件夹下,否则会没有用的。
至于dic文件,起什么名无所谓,我还是起的ambiguity.dic(歧义字典)userLibrary.dic(自定义词典)
配置文件为library.properties
userLibrary=library/userLibrary.dic
ambiguityLibrary=library/ambiguity.dic
注意看图中文件的位置。

二、自定义词典的格式
格式非常重要,而且歧义词典和用户自定义词典不一样。不过有一点是一样的,那就是间隔为制表符\t,如果没法弄好的话,在程序里面println一下,然后复制就行。
歧义词典
芝麻油 cl
咖喱粉 cl
情侣 rs
使用之后,原来的词典就失去了效用,慎用。例如情侣的词性不再是名词n而是自定义词性rs。
普通词典
香肠炒饭 cm 1000
番茄鸡蛋水饺 cm 1000
黄金馒头片 cm 1000
三、代码
Forest forest= Library.makeForest("library/userLibrary.dic");//加载字典文件
MyStaticValue.putLibrary(DicLibrary.DEFAULT, "library/userLibrary.dic",forest);
Forest f = Library.makeForest("library/ambiguity.dic");
MyStaticValue.putLibrary(AmbiguityLibrary.DEFAULT, "library/ambiguity.dic", AmbiguityLibrary.get());
加载即可使用!
对于句子“芝麻油和咖喱粉”
输出
2018-05-14 14:39:20,372 INFO [org.ansj.util.MyStaticValue] - init ambiguityLibrary to env value is : library/ambiguity.dic
2018-05-14 14:39:20,373 INFO [org.ansj.util.MyStaticValue] - init userLibrary to env value is : library/userLibrary.dic
2018-05-14 14:39:20,393 INFO [org.ansj.dic.impl.File2Stream] - path to stream library/default.dic
2018-05-14 14:39:20,408 INFO [org.ansj.library.DicLibrary] - load dic use time:30 path is : library/default.dic
2018-05-14 14:39:20,410 INFO [org.ansj.dic.impl.File2Stream] - path to stream library/ambiguity.dic
2018-05-14 14:39:20,410 INFO [org.ansj.library.AmbiguityLibrary] - load dic use time:0 path is : library/ambiguity.dic
2018-05-14 14:39:22,166 INFO [org.ansj.app.crf.Model] - load crf model ok ! use time :1712
2018-05-14 14:39:22,167 INFO [org.ansj.library.CrfLibrary] - load crf use time:1746 path is : jar://crf.model
2018-05-14 14:39:22,680 INFO [org.ansj.library.DATDictionary] - init core library ok use time : 481
2018-05-14 14:39:23,591 INFO [org.ansj.library.NgramLibrary] - init ngram ok use time :909
芝麻油:cl
和:c
咖喱粉:cl
更多推荐



所有评论(0)