2011-02-10 79 views
1

我想使用weka的java API过滤数据集。我已经用Weka的GUI在stringToWordVector过滤器中成功地过滤了我想要的属性,但我似乎无法在我的java代码中执行相同的操作。我复制并粘贴了自动生成的过滤参数,并将它们发布到我的代码中,但仍然继续出现错误。目前,我的代码如下所示:weka stringToWordVector过滤器stringOptions

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

实际上,你可以省略大多数的选项,因为它们是StringToWordVector默认值。你想传递的分隔符是默认标记生成器的默认分隔符,WordTokenizer,它们是:

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

权,但我的问题是真的,为什么我得到了“-delimiters选项没有给出值” 。我曾尝试省略一些像你建议的选项,这些选项工作,但随后,改变另一段代码后,我得到的原始参数字符串以及工作。它看起来像我的问题是在我的代码不同的错误,被绊倒的错误消息的某些原因。 – akobre01 2011-02-11 15:41:19