ARFF在实例中没有一个类

时间:2016-10-13 13:56:35

标签: java weka

所以,我一直在使用这个例子" TextCategorizationTest.java"来自本教程https://weka.wikispaces.com/Text+categorization+with+WEKA

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

这是我的ARFF档案:http://pastebin.com/6nGWEyMq

如你所见," pos"实例以此格式显示: @数据 {1 1,3 1,24 1,27 1,29 1,37 ......} " NEG"实例以此格式显示: {0 neg,1 1,2 1,3 1,6 1 ...}

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

1 个答案:

答案 0 :(得分:1)

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

您的ARFF文件采用稀疏格式,这意味着将省略值为0的属性。对于您希望许多属性为0的情况,例如字数统计,这种格式更紧凑。

格式为:

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

但正如我所说,值0的属性将被省略,因此这里只列出非0属性的索引。

使用其值索引存储标称属性(不要与属性索引混淆),类属性定义(索引为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, ...}