java weka stringtowordvector没有正确计算单词出现次数

kam*_*lot 3 java string api machine-learning weka

所以我正在使用Weka机器学习库的JAVA API,我有以下代码:

    String html = "repeat repeat repeat";

    Attribute input = new Attribute("html",(FastVector) null);

    FastVector inputVec = new FastVector();
    inputVec.addElement(input);

    Instances htmlInst = new Instances("html",inputVec,1);
    htmlInst.add(new Instance(1));  
    htmlInst.instance(0).setValue(0, html);

    StringToWordVector filter = new StringToWordVector();
    filter.setUseStoplist(true);

    filter.setInputFormat(htmlInst);
    Instances dataFiltered = Filter.useFilter(htmlInst, filter);

    Instance last = dataFiltered.lastInstance();
    System.out.println(last);
Run Code Online (Sandbox Code Playgroud)

虽然StringToWordVector应该计算字符串中出现的单词,而不是将"重复"一词计数3次,但计数仅为1

我究竟做错了什么?

小智 6

默认设置仅将存在/不存在报告为0/1.您必须明确启用计数.加:

filter.setOutputWordCounts(真);

并重新运行.

Weka有一个明确的邮件列表; 发布此类问题可能会给您更快的回复.