为什么在Weka GUI中运行过滤器StringToWordVector的结果与等效的java代码不同?我使用与gui中使用的相同属性,但java中的tokenizer似乎没有做好工作!博士生告诉我这是常见的,没有他的进一步答复。
请帮忙。我的项目停滞不前。
这是我的代码:
DataSource tempSource = new DataSource("/home/r_omio/Dataset.arff");
Instances temp = tempSource.getDataSet();
NumericToBinary nbTemp = new NumericToBinary();
nbTemp.setInputFormat(temp);
temp = Filter.useFilter(temp, nbTemp);
StringToWordVector stringFilterTemp = new StringToWordVector(2500);
stringFilterTemp.setOptions(
weka.core.Utils.splitOptions("-R 1,2,3,4 -W 2500 -prune-rate -1.0 <br>-N 1 -stemmer weka.core.stemmers.NullStemmer -M 1 -tokenizer weka.core.tokenizers.WordTokenizer -delimiters \" \\r\\n\\t.,;:\\\'\\\"()?![]_\"")
);
stringFilterTemp.setInputFormat(temp);
temp = Filter.useFilter(temp, stringFilterTemp);
答案 0 :(得分:1)
我怀疑你的分隔符被错误地转义了。尝试使用GUI中的默认分隔符,并使用Java保留tokenizer,它将使用默认值,并查看是否获得相同的值。