NLPchina / ansj_seg

ansj分词.ict的真正java实现.分词效果速度都超过开源版的ict. 中文分词,人名识别,词性标注,用户自定义词典

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

方括号干扰以英文字母结尾的用户自定义词分词结果

ldwnt opened this issue · comments

commented

版本:ansj_seg-5.1.3.jar

public class Test {
    public static void main(String[] sts) {

        List<Value> values = new ArrayList<>();
        values.add(new Value("农银货币B", new String[]{"n", "1000"}));
        Forest forest = Library.makeForest(values);

        Analysis analysis = new DicAnalysis().setForests(forest, DicLibrary.get());
        List<Term> terms =  analysis.parseStr("农银货币B 农银货币B[]").getTerms();
        System.out.println(terms);
    }
}

执行结果:
[农银货币B/n, , 农/ng, 银/ng, 货币/n, b/en]

升级nlp-lang到最新版本1.7.8

commented

升级nlp-lang到最新版本1.7.8

多谢,实测有效,请问对应的是nlp-lang哪个bug呢

主要涉及两个问题:
1、isEnglish判断有问题
2、之前版本工具类WordAlert的alertEnglish、alertNumber等方法,对传入的原始字符数组,有做变更,新版没有

commented

主要涉及两个问题:
1、isEnglish判断有问题
2、之前版本工具类WordAlert的alertEnglish、alertNumber等方法,对传入的原始字符数组,有做变更,新版没有

相关代码有分支可以参考下么?直接升级1.7.8会有词库大小写敏感的问题,想把fix的代码cherry pick到1.7.2上

依据org.nlpcn.commons.lang.util.WordAlert#isEnglish(char)和org.nlpcn.commons.lang.util.WordAlert#isNumber(char),
修改
org.nlpcn.commons.lang.tire.SmartGetWord#isE
org.nlpcn.commons.lang.tire.SmartGetWord#isNum

commented

依据org.nlpcn.commons.lang.util.WordAlert#isEnglish(char)和org.nlpcn.commons.lang.util.WordAlert#isNumber(char),
修改
org.nlpcn.commons.lang.tire.SmartGetWord#isE
org.nlpcn.commons.lang.tire.SmartGetWord#isNum

多谢,我试下~