2009-12-15 14 views
5

¿Alguien ha persistido alguna vez con un conjunto de entrenamiento para CI-Bayes? Tengo código de ejemplo de este sitio: http://www.theserverside.com/news/thread.tss?thread_id=49773Persistencia en el objeto Java CI-Bayes

Aquí está el código:

FisherClassifier fc=new FisherClassifierImpl(); 
fc.train("The quick brown fox jumps over the lazy dog's tail","good"); 
fc.train("Make money fast!", "bad"); 
String classification=fc.getClassification("money", "unknown"); // should be "bad" 

así que tengo que ser capaz de almacenar el conjunto de entrenamiento en un archivo local.

¿Alguien ha hecho esto antes?

Respuesta

0

Para persistir un objeto java en un archivo local, el objeto primero debe implementar la interfaz serializable.

import java.io.Serializable; 
public class MyClass implements Serializable {... 

Entonces, la clase de la que le gustaría que persista este conjunto de entrenamiento, debe incluir un método como:

public void persistTrainingSet(FisherClassifier fc) { 
    String outputFile = <path/to/output/file>; 

    try { 
     FileOutputStream fos = new FileOutputStream(outputFile); 
     ObjectOutputStream oos = new ObjectOutputStream(fos); 
     oos.writeObject(fc); 
     oos.close(); 
    } 
    catch (IOException e) { 
     //handle exception 
    } 
    finally { 
     //do any cleaning up 
    } 
} 
0

tengo. Después de hacer un par de proyectos con CI-Bayes, recomendaría que busques en otro lado (por supuesto, esto fue hace mucho tiempo). Es una muy mala idea usar un motor de inferencia que necesita ser entrenado antes de cada uso y si realmente considera el tema de la administración estatal, es complicado (por ejemplo, ¿quiere simplemente almacenar los datos de capacitación? ¿O quizás las distribuciones entrenadas? cadenas?).

CI-Bayes también es una especie de código enrevesado. Fue modelado a partir de un código de Python que apareció en un libro sobre inteligencia. La versión de Java no está muy bien diseñada. Tampoco usa TDD, realmente no tiene JavaDoc para hablar.

Dicho esto, puede obtener un clasificador simple que vaya bastante rápido. Sin embargo, el objetivo a más largo plazo es el que usted solicitó.

Cuestiones relacionadas