2011-02-10 71 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