解决 ANSJ分词 自定义词典文件无效

注意:

1、指定配置文件的路径时,建议配置为绝对路径。这种方式最简单,否则需自行解决路径的问题

2、配置文件的内容,词典各字段之间使用tab(\t)分割。一般发现自定义字典无效,就是因为使用的不是tab(\t)而是4个空格等。所以,一定要记住,tab、tab、tab

3、字典中,英文字母,全部转为小写。因为拆词的时候,是先转为小写,然后比较的。输出的结果,拆词后,输出的结果,也都是小写。

字典配置(default.dic)文件,格式如下:

基于java	n	100
西红柿炖牛腩	n	1000
连网	n	8000
いらないよ	n	100

========================= 填坑完毕 =========================

一、文档: 官方文档

二、自定词典的使用方式

方式1、从内存操作词典

这个最简单,官方也有demo,开箱即用

 @Test
    public void test() throws Exception {

        //添加自定义词语 【 英文,按照小写配置。(大写,不识别。拆词的结果,也转为小写了)】
        DicLibrary.insert(DicLibrary.DEFAULT, "基于java", "n", 1);

        String text = "基于Java开发的轻量级的中分分词工具包";

        System.out.println(DicAnalysis.parse(text));

    }
输出结果:

基于java/n,开发/v,的/u,轻量级/b,的/u,中分/n,分词/v,工具包/n

方式2、通过代码方式来加载

@Test
    public void test() throws Exception {
         // 关闭名字识别
         MyStaticValue.isNameRecognition = false;
         // 配置自定义词典的位置。注意是绝对路径
         MyStaticValue.ENV.put(DicLibrary.DEFAULT, "D:\\project\\library\\default.dic");

        String text = "基于Java开发的轻量级的中分分词工具包";

        System.out.println(DicAnalysis.parse(text));
    }

方式3、通过配置文件

在 resource 目录下,建一个 library.properties 配置文件

接着,配置 dic 节点,指定配置文件的绝对路径

dic=D:/project/library/default.dic

就可以直接使用了

@Test
    public void test() throws Exception {

        String text = "基于Java开发的轻量级的中分分词工具包";

        System.out.println(DicAnalysis.parse(text));
    }

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值