在addMatch()方法上找不到classifier4j类异常

时间:2011-09-04 23:24:21

标签: java exception classification

尝试使用classifier4j包中的贝叶斯分类器时,我有一种奇怪的行为

基本上我的代码是:

String test_string = "some bla bla web designers in here whatever";
SimpleWordsDataSource wds = new SimpleWordsDataSource();
BayesianClassifier classifier = new BayesianClassifier(wds);
wds.addMatch("Web Design")
Double d = classifier.classify(test_string);

尝试运行此代码时我得到的是:

run:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at net.sf.classifier4J.bayesian.WordProbability.calculateProbability(WordProbability.java:167)
    at net.sf.classifier4J.bayesian.WordProbability.setMatchingCount(WordProbability.java:138)
    at net.sf.classifier4J.bayesian.WordProbability.<init>(WordProbability.java:115)
    at net.sf.classifier4J.bayesian.SimpleWordsDataSource.addMatch(SimpleWordsDataSource.java:94)
    at tothego_classifier_test.Main.main(Main.java:44)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 5 more
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

这非常烦人,因为我一直在尝试运行一个简单的hello-world测试(如网站的使用部分)。我在netbeans 6.9上,我已经包括classifier4j 0.6 jar和可选jar,在我的主类中也有正确的import语句。 我知道Nick Lothian在这里做出贡献,所以我认为这很好! 感谢大家的努力

1 个答案:

答案 0 :(得分:1)

好吧我解决了这个问题,在这里我们为每个人提供快速的方法:

  • http://commons.apache.org/logging/download_logging.cgi点击此链接并下载二进制文件
  • 解压缩刚刚下载的文件
  • 将commons-logging-xxx.jar,commons-logging-adapters.jar,commons-logging-api.jar添加到您的CLASSPATH / project libs(我尝试了很多,它似乎只适用于整个jar包括在内)
  • 重建并重新运行

希望这有用:)