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

发布于 2021-12-05 14:19:25 字数 2339 浏览 916 评论 1

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

http://blog.csdn.net/mach_learn/article/details/40185361

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

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

妖妓 2021-12-07 00:02:08

错误原因是数组越界,下标超过了数据要求,将

FastVector(3)

改成

FastVector(2)

删掉Null的情况就可以了

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