ARFF 没有一个 class 实例

ARFF without one class in instances

所以,我一直在使用本教程 https://weka.wikispaces.com/Text+categorization+with+WEKA 中的示例 "TextCategorizationTest.java"。

我有一个包含两个文件夹的目录:"neg" 和 "pos"。这两个文件夹代表了应该在我的 ARRF 中的 classes。问题是当尝试创建 ARFF 文件时,实例不包含 "pos" 的属性 class,但它们确实包含 class "neg" 的属性。

这是我的 ARFF 文件:http://pastebin.com/6nGWEyMq

如您所见,"pos" 个实例以这种格式呈现: @数据 {1 1,3 1,24 1,27 1,29 1,37 ...} "neg" 个实例以这种格式呈现: {0 否定,1 1,2 1,3 1,6 1 ...}

我该怎么做才能解决这个 ARFF?我会接受来自 weka 代码或 weka GUI 的解决方案。

您的 ARFF 文件完全没问题,无需更改。

您的 ARFF 文件是稀疏格式,这意味着值为 0 的属性将被忽略。对于您期望很多属性为 0 的场景,例如字数统计,这种格式简洁多了。

格式为:

{index value,index value,index value, ...}

但正如我所说,值为 0 的属性将被忽略,因此此处仅列出不为 0 的属性的索引。

标称属性使用它们的值索引(不要与属性索引混淆)存储,class 属性定义(索引为 0 的第一个属性)的顺序为 {pos,neg} ,因此 "pos" 的值索引为 0,而 "neg" 的值索引为“1”。这样一来,所有 "pos" 条目都丢失了,因为 "pos"(索引为 0)是默认值。

您的某些数据行的第一列采用稀疏格式(如您发布的那样):

@data
{1 1,3 1,24 1,27 1, ...}
{1 1,4 1,5 1,8 1,17 1,24 1,26 1,29 1, ...}
...
{0 neg,17 1, ...}

这相当于以下密集格式:

@data
{0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0, ...}
{0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,1, ...}
...
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0, ...}