稀疏ARFF文件的Weka字符串属性

时间:2011-05-16 10:44:47

标签: file-format weka sparse-matrix arff

我正在尝试使用Weka进行文本分类。 为此,使用稀疏ARFF数据文件格式是有意义的。 使用Weka 3.7.2,我尝试了:

  1. 使用将文本目录转换为Instances对象 TextDirectoryLoader
  2. 使用StringToWordVector将前一阶段产生的字符串翻译为数字。
  3. 第一阶段运作良好。第二阶段造成了一个问题,用这种方式描述了 Weka's ARFF file format specification

      

    警告:从具有字符串属性的数据集中保存SparseInstance对象存在一个已知问题。在Weka中,字符串和标称数据值存储为数字;这些数字作为可能属性值数组的索引(这非常有效)。但是,第一个字符串值被赋予索引0:这意味着,在内部,此值存储为0.当写入SparseInstance时,不输出内部值为0的字符串实例,因此它们的字符串值将丢失(并且再次读取arff文件,默认值0是不同字符串值的索引,因此属性值似乎更改)。

    ARFF格式提出了这个解决方案:

      

    要解决此问题,请在索引0处添加一个虚拟字符串值,只要声明可能在SparseInstance对象中使用并保存为稀疏ARFF文件的字符串属性,就不会使用该值。

    我正在尝试这样做 - 添加一个虚拟字符串。我没有手动执行此操作(通过编辑ARFF文件)。任何已经完成此操作的人都可以发布一个示例 - 执行此操作的程序段,正确修改的ARFF文件或其他一些方法吗?

    感谢。

1 个答案:

答案 0 :(得分:1)

请勿直接编辑arff文件。

我刚才在这里回答了类似的问题: Weka printing sparse arff file

使用相同的代码示例。