weka 内存数据集添加数据失败

发布于 2022-09-06 09:52:21 字数 2236 浏览 16 评论 0

我参考如下代码做了一个基于自己数据的分类测试代码。

http://blog.csdn.net/mach_lea...

但是在往内存集里面添加数据的时候,一直报这个错误:

java.lang.NullPointerException

at weka.core.Attribute.indexOfValue(Unknown Source)
at weka.core.Instance.setValue(Unknown Source)
at decisionTree.LevelClassifier.makeInstance(LevelClassifier.java:187)
at decisionTree.LevelClassifier.classifyMessage(LevelClassifier.java:139)
at decisionTree.LevelClassifier.getData(LevelClassifier.java:237)
at decisionTree.LevelClassifier.main(LevelClassifier.java:246)


其中错误涉及行附近的代码如下:

at decisionTree.LevelClassifier.makeInstance(LevelClassifier.java:187)

        186  Attribute FOUND_TYPEadd = data.attribute("FOUND_TYPE");
        187  instance.setValue(FOUND_TYPEadd, seedFeatureData.getFOUND_TYPE());

at decisionTree.LevelClassifier.classifyMessage(LevelClassifier.java:139)

        Instance instance = makeInstance(seedFeatureData,data);

at decisionTree.LevelClassifier.getData(LevelClassifier.java:237)

        try {
            levelClassifier.classifyMessage(seedFeatureData);
        } catch (Exception e) {
            e.printStackTrace();
        }

at decisionTree.LevelClassifier.main(LevelClassifier.java:246)

        levelClassifier.getData();
         

这个类的结构如下:

public class LevelClassifier {

   public  LevelClassifier(){
           FastVector FOUND_TYPE = new FastVector(3);
           FOUND_TYPE.addElement("null");
           FOUND_TYPE.addElement("图");
           FOUND_TYPE.addElement("文");
           attributes.addElement(new Attribute("FOUND_TYPE", FOUND_TYPE));
   }
   public void classifyMessage(SeedFeatureData seedFeatureData)
   private Instance makeInstance(SeedFeatureData seedFeatureData,Instances data)
   public void getData()
   public static void main(String args[])

}
关键代码和错误行代码都给出了,SeedFeatureData是我自建的一个存储数据的类。

我找了好久,实在是不知道错在哪儿了。然后还要说明一下的地方是,NullPointerException这个错误,好像是trycatch抛出的异常,我在有一次排查的时候发现是catch里面的异常输出,但是后来去找又没有了。

整体代码和参考代码基本无大区别。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

残疾 2022-09-13 09:52:21

错误原因是数组越界,下标超过了数据要求,将
FastVector(3)
改成
FastVector(2)
删掉Null的情况就可以了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文