我在 Java 中使用 Weka 机器学习库进行工作…
我尝试实现这个:http://weka.wikispaces.com/Text+categorization+with+Weka
在页面底部你可以下载 TextCategorizationTest.java,它用于文本分类,以及 text_example.zip,其中包含了大量的 HTML 文件…
所以我尝试使用 text_example 中的 class1 目录作为参数运行 TextCategorizationTest…但随后我遇到了这个错误:
Exception in thread "main" weka.core.UnsupportedAttributeTypeException: weka.classifiers.trees.j48.C45PruneableClassifierTree: Cannot handle multi-valued nominal class! at weka.core.Capabilities.test(Capabilities.java:936) at weka.core.Capabilities.test(Capabilities.java:1105) at weka.core.Capabilities.test(Capabilities.java:1018) at weka.core.Capabilities.testWithFail(Capabilities.java:1297) at weka.classifiers.trees.j48.C45PruneableClassifierTree.buildClassifier(C45PruneableClassifierTree.java:116) at weka.classifiers.trees.J48.buildClassifier(J48.java:236) at TextCategorizationTest.main(TextCategorizationTest.java:55)
这指的是这一行代码:
classifier.buildClassifier(dataFiltered);
有谁知道这是什么问题吗?
回答:
快速查看后发现,你使用的分类器不支持多值名义类。你可以尝试将你的类改为二元类吗?或者使用支持多值名义类的不同分类器(如 Weka 中的 SMO 或 NN)?