我在ARFF文件中传递Apriori算法:
@relation test_r
@attribute nome string
@attribute ling_prog {java,c,vb}
@attribute conosciuto {conosciuto,non_conosciuto}
@data
'Giuseppe Verdi',c,conosciuto
'Giuseppe Verdi',vb,non_conosciuto
'Giuseppe Verdi',java,conosciuto
'Mario Rossi',java,conosciuto
'Mario Rossi',c,conosciuto
'Mario Rossi',c,non_conosciuto
'Verdi Rossi',java,conosciuto
'Verdi Rossi',vb,conosciuto
'Verdi Rossi',c,non_conosciuto
当我通过"实例"时,我收到以下错误到Apriori:
weka.core.UnsupportedAttributeTypeException: weka.associations.Apriori: Cannot handle string attributes!
我该如何解决?我需要使用String属性,因为我有很多文本!
答案 0 :(得分:0)
试试这个:
String[] options = new String[2];
options[0] = "-R"; // "range"
options[1] = "1"; // first attribute
weka.filters.unsupervised.attribute.StringToNominal ff=new weka.filters.unsupervised.attribute.StringToNominal(); // new instance of filter
ff.setOptions(options); // set options
ff.setInputFormat(data1); // inform filter about dataset **AFTER** setting options
Instances data2 = Filter.useFilter(data1, ff);
然后:
apriori.buildAssociations(data2);