java ansj加入自定义词典使用(DicAnalysis和ToAnalysis)(加载词典方法一)

ansj提供的分词工具

名称用户自定义词典数字识别人名识别机构名识别新词发现
BaseAnalysisXXXXX
ToAnalysisXX
DicAnalysisXX
IndexAnalysisXX
NlpAnalysis

 

亲测了3种:ToAnalysis、DicAnalysis、NlpAnalysis

感受:Nlp比前两种都要慢很多。所以选择使用了前两者。

使用步骤:

1、在项目目录/src/main/resources下创建文件夹library,并在该文件夹下添加userLibrary.dic文件:

userLibrary.dic文件中,自定义字典格式为:

这是  r  1000
一个 r  1000
西红柿女郎 r  1000

其中 r表示当前词语的词性,1000为词频,可自行设置。

注意

1)、词典各字段之间使用tab(\t)分割,如“这是  r  1000”三个字段之间的间隔是一个tab分隔符。

2)、词性需小写(如n)。

 

2、在项目目录/src/main/resources下创建文件library.properties,并设置内容

userLibrary=/library/userLibrary.dic
isRealName=true

3、在运行文件中添加如下方法:

import org.nlpcn.commons.lang.tire.domain.Forest;
import org.nlpcn.commons.lang.tire.library.Library;


static List<Term> ansj(String string) {
    Result result = DicAnalysis.parse(string,Inner.forest);// 将DicAnalysis换成ToAnalysis也可以,二者区别请读者自查
    return result.getTerms();
}

private static class Inner {
    static Forest forest;
    static {
        try {
            forest = Library.makeForest(Utils.class.getResourceAsStream("/library/userLibrary.dic"));
        } catch (Exception e) {
            e.printStackTrace();
            System.exit(1);
        }
    }
}

 

4、调用:

public class TestAnsj {
    @org.junit.Test
    public void testDicAnalysis() {
        String str = "这是一个西红柿女郎";
        List<Term> termList = dicAnsj(str);
        for (Term term : termList) {
            System.out.println(term.getName() + ":" + term.getNatureStr());
        }
    }
}

5、结果如下:

这是:n
一个:n
西红柿女郎:n

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值