Filter weka StringToOrdVector过滤器stringOptions

Filter weka StringToOrdVector过滤器stringOptions,filter,weka,Filter,Weka,我正在尝试使用weka的JavaAPI过滤数据集。我已经在Weka的GUI中使用stringToWordVector过滤器成功地过滤了我想要的属性,但在java代码中似乎无法做到这一点。我复制并粘贴了自动生成的过滤参数,并将它们发布到我的代码中,但仍然会出现错误。目前,我的代码如下所示: Instances newInsts = new Instances(this.instances); StringToWordVector stringFilter = new StringToWordVec

我正在尝试使用weka的JavaAPI过滤数据集。我已经在Weka的GUI中使用stringToWordVector过滤器成功地过滤了我想要的属性,但在java代码中似乎无法做到这一点。我复制并粘贴了自动生成的过滤参数,并将它们发布到我的代码中,但仍然会出现错误。目前,我的代码如下所示:

Instances newInsts = new Instances(this.instances);
StringToWordVector stringFilter = new StringToWordVector();
stringFilter.setOptions(
            weka.core.Utils.splitOptions("-R 1,2,3,4,8 -W 1000 
                                          -prune-rate -1.0 -N 0 -stemmer
                                           weka.core.stemmers.NullStemmer -M 1
                                          -tokenizer \"weka.core.tokenizers.WordTokenizer 
                                          -delimiters \" \\r\\n\\t.,;:\\\'\\\"()?!\""));
stringFilter.setInputFormat(newInsts);
newInsts = Filter.useFilter(newInsts, stringFilter);
但我在eclipse控制台中不断遇到这个错误:没有为-delimiters选项指定值

(我在上面的代码中添加了额外的间距以提高可读性。我怀疑这与转义字符/引号有关…)


谢谢

实际上可以忽略大多数选项,因为它们是StringToWordVector的默认选项。您试图传递的分隔符是默认标记器中的默认分隔符,它们是:

' \r\n\t.,;:'"()?!'

是的,但我的问题是为什么我会得到“没有为-分隔符提供值”选项。我确实试着省略了一些选项,就像你建议的那样,但在更改了另一段代码之后,我让原始参数字符串也可以工作。看起来我的问题是我代码中的另一个错误,出于某种原因导致错误消息出错。很高兴你把它解决了。如果您仍然希望跟踪错误的根本原因,是否可以包含更多代码?