weka java api stringtovector 异常

所以我有这样一段使用Weka Java API的代码:

  String html = "blaaah";    Attribute input = new Attribute("html",(FastVector) null);    FastVector inputVec = new FastVector();    inputVec.addElement(input);    Instances htmlInst = new Instances("html",inputVec,1);    htmlInst.add(new Instance(1));      htmlInst.instance(0).setValue(0, html);    System.out.println(htmlInst);StringToWordVector filter = new StringToWordVector();filter.setInputFormat(htmlInst);Instances dataFiltered = Filter.useFilter(htmlInst, filter);

但是在执行filter.setInputFormat(htmlInst)这一行时,Java报错说该函数抛出了未处理的异常…

我哪里做错了?


回答:

当一个函数明确抛出异常时,必须发生以下两种情况之一:

  1. 调用函数必须在try-catch块中处理该异常
  2. 调用函数必须将异常抛给其调用者函数(因此您必须选择某个点实际使用try-catch块来处理该异常)

根据此处的文档:http://www.lri.fr/~pierres/donn%E9es/save/these/weka-3-4/doc/weka/filters/unsupervised/attribute/StringToWordVector.html#setInputFormat(weka.core.Instances) 该函数抛出一个普通的Exception。虽然描述不算详细,但仍然需要适当处理。

您可以这样做:

try {    StringToWordVector filter = new StringToWordVector();    filter.setInputFormat(htmlInst);    Instances dataFiltered = Filter.useFilter(htmlInst, filter);} catch (Exception e) {    System.err.println("格式化过程中捕获到异常: " + e.getMessage());    return;}

如果您希望另一个函数处理该异常,可以更改方法签名以明确抛出异常:

private Object formatMyString(String s) throws Exception {    ...}

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注