zoukankan      html  css  js  c++  java
  • ansj 2.0.7 错误例子分析

    我在做一个solr的项目,分词选定了ansj分词。

    选择ansj的原因:

    1)身边若干朋友的念叨,说是效果不错

    2)网上看了若干评论,说是不错

    3)自己尝试了一些case,觉得确实不错。

    好了,项目中选择了ansj2.0.7-min.jar作为实际使用的版本。

    结果。。。愿望是美好的,现实是残酷的。

    碰到了若干case,效果不好(使用IndexAnalysis):

    1)上海马勒别墅

    切分结果:(上/海马/勒/别墅)

    预期结果:(上海/马勒/别墅)

    调试了一下,在构建Graph的时候没有问题,问题出现在Merger阶段的

                @Override
                public List<Term> merger() {
                    graph.walkPath();//上海马勒别墅的问题在这里// 数字发现
                    if (MyStaticValue.isNumRecognition && graph.hasNum) {
                        NumRecognition.recognition(graph.terms);
                    }
    
                    // 姓名识别
                    if (graph.hasPerson && MyStaticValue.isNameRecognition) {
                        // 亚洲人名识别
                        new AsianPersonRecognition(graph.terms).recognition();
                        graph.walkPathByScore();
                        NameFix.nameAmbiguity(graph.terms);
                        // 外国人名识别
                        new ForeignPersonRecognition(graph.terms).recognition();
                        graph.walkPathByScore();
                    }
    
                    // 用户自定义词典的识别
                    userDefineRecognition(graph, forests);
    
                    return result();
                }

    2)电话卡+周杰伦摩天轮巡演(开启人名识别)

    切分结果:(电话/卡+周/杰伦摩/天轮/巡演)

    期望结果: (电话卡/+/周杰伦/摩天轮/巡演)

    结果发现, 卡+周 居然被识别成了一个名词。进一步debug发现,“+” 的PersonNatureAttr 属性值不太正常,因为"+"的TermNatures 是TermNatures.NULL.

    最终debug发现, TermNatures.NULL 这个常量被修改过。

    最终的最终发现,作者在AnsjItem中定义了成员变量引用到了 TermNatures.NULL,并对其进行了修改。

    问题发现,并修复掉。

    ---------------------------------------------------------------------------------------------------------------------------------最终将bug反馈给作者。打完收工

    后记,发现人名识别效果分析。

    下期再谈论Ansj的人名识别话题。

  • 相关阅读:
    R 包安装问题
    特征值分解与奇异值分解
    向量内积&外积
    hdu_3449(有依赖背包)
    Gene co-expression analysis for functional classification and gene–disease predictions
    MCMC & 贝叶斯
    继承(来自视频)
    面向对象 创建对象
    mongodb笔记(三)
    mongodb笔记(二)
  • 原文地址:https://www.cnblogs.com/lykm02/p/4091832.html
Copyright © 2011-2022 走看看