【问题标题】:weka java api stringtovector exceptionweka java api stringtovector异常
【发布时间】:2017-12-31 22:19:24
【问题描述】:

所以我有这个使用 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 抱怨该函数抛出未处理的异常...

我做错了什么?

【问题讨论】:

    标签: java api exception machine-learning weka


    【解决方案1】:

    当函数显式抛出异常时,必须发生两件事之一

    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("Exception caught during formatting: " + e.getMessage());
        return;
    }
    

    如果您希望让另一个函数处理异常,请更改您的方法签名以显式抛出异常:

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

    【讨论】:

      【解决方案2】:

      你必须使用 try catch 块以防出现任何问题:

          try {
              filter.setInputFormat(htmlInst);
              Instances dataFiltered = Filter.useFilter(htmlInst, filter);
          } catch (Exception e) {
              e.printStackTrace();
          }
      

      【讨论】:

        猜你喜欢
        • 2015-04-29
        • 1970-01-01
        • 2012-09-09
        • 2017-11-04
        • 2017-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多