2010-11-17 6 views
0

J'essaie d'exécuter un programme Java qui exécute les commandes Weka. Le programme que je cours est au http://weka.wikispaces.com/Use+WEKA+in+your+Java+code, sous Classificateurs incrémentiels, "Un exemple de travail est IncrementalClassifier.java."impossible d'exécuter le programme java qui exécute les commandes weka

Ceci est mon code, et j'ai changé l'adresse du arff:

import weka.core.Instance; 
import weka.core.Instances; 
import weka.core.converters.ArffLoader; 
import weka.classifiers.bayes.NaiveBayesUpdateable; 

import java.io.File; 

/** 
* This example trains NaiveBayes incrementally on data obtained 
* from the ArffLoader. 
* 
* @author FracPete (fracpete at waikato dot ac dot nz) 
*/ 
public class IncrementalClassifier { 

    /** 
    * Expects an ARFF file as first argument (class attribute is assumed 
    * to be the last attribute). 
    * 
    * @param args  the commandline arguments 
    * @throws Exception if something goes wrong 
    */ 
    public static void main(String[] args) throws Exception { 
    // load data 
    ArffLoader loader = new ArffLoader(); 
    loader.setFile(new File("C:\\Program Files\\Weka-3-6\\10random+5.arff")); 
    Instances structure = loader.getStructure(); 
    structure.setClassIndex(structure.numAttributes() - 1); 

    // train NaiveBayes 
    NaiveBayesUpdateable nb = new NaiveBayesUpdateable(); 
    nb.buildClassifier(structure); 
    Instance current; 
    while ((current = loader.getNextInstance(structure)) != null) 
     nb.updateClassifier(current); 

    // output generated model 
    System.out.println(nb); 
    } 
} 

L'erreur que je reçois est:

java.io.FileNotFoundException: \iris.2.arff (The system cannot find the file specified) 
    at java.io.FileInputStream.open(Native Method) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at java.io.FileReader.<init>(Unknown Source) 
    at weka.classifiers.bayes.net.ADNode.main(ADNode.java:270) 

Comment procéder?

Merci

Répondre

1

Ce fichier (iris.2.arff) semble être hardcoded dans la source, comme le montre here. Je suppose que ce fichier est venu avec la distribution mais n'est pas au bon endroit. Ou peut-être vous invoquez la mauvaise méthode.

+0

Merci d'avoir répondu. Je ne sais pas comment réagir à vos commentaires. – user511440

+0

Commencez par mettre à jour votre message pour inclure l'intégralité de la trace de la pile et indiquez également à quelle ligne de VOTRE source l'exception est levée. –

+0

Les erreurs que je reçois sont: 1.Projet 'CN170' est manquant bibliothèque requise: 'C: \ Program Files \ Weka-3-4 \ weka.jar' (Ressource: CN170, Emplacement: Chemin de construction), 2. Le le projet ne peut pas être construit tant que les erreurs de chemin de génération ne sont pas résolues (Ressource: CN170, Emplacement: inconnu), 3. Exception IOException non gérée (Ressource: simpleprog.java, emplacement: ligne18). – user511440

0

c'est parce que vous utilisez la mauvaise classe dans la configuration de votre application Java, ce que vous avez à faire est:

clic droit sur le projet: Exécuter en tant que: Exécuter la configuration: Dans le champ « classe principale » choisir votre classe "IncrementalClassifier"

c'est tout, bonne chance!

Questions connexes