1

我正在尝试使用 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 选项提供值。

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

谢谢!

4

1 回答 1

0

您实际上可以省略大部分选项,因为它们是 StringToWordVector 的默认值。您尝试传递的分隔符是默认标记器 WordTokenizer中的默认分隔符,它们是:

' \r\n\t.,;:'"()?!'
于 2011-02-11T00:01:43.330 回答