1

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オプションに値が指定されていません。

(上記のコードで読みやすくするために余分なスペースを追加しました。これは、エスケープ文字/引用符と関係があると思われます...)

ありがとう!

4

1 に答える 1

0

StringToWordVectorのデフォルトであるため、実際にはほとんどのオプションを省略できます。渡そうとしている区切り文字は、デフォルトのトークナイザーであるWordTokenizerのデフォルトの区切り文字です

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