我正在尝试使用weka的java API过滤数据集。我已经使用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选项给出值。
(我在上面的代码中添加了额外的间距以便于阅读。我怀疑这与转义字符/引号有关...)
谢谢!
答案 0 :(得分:0)
您实际上可以省略大多数选项,因为它们是StringToWordVector的默认选项。您尝试传递的分隔符是默认分词器WordTokenizer中的默认分隔符,它们是:
' \r\n\t.,;:'"()?!'