所以,我一直在使用这个例子" 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的解决方案。
答案 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, ...}