2009-12-15 6 views
5

Czy ktoś kiedykolwiek utrzymywał zestaw treningowy dla CI-Bayes? Mam przykładowy kod z tej strony: http://www.theserverside.com/news/thread.tss?thread_id=49773Trwałość na obiekcie Java CI-Bayes

oto kod:

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" 

więc muszę być w stanie przechowywać zestaw szkoleniowy w pliku lokalnym.

Czy ktoś kiedykolwiek to zrobił wcześniej?

Odpowiedz

0

Aby utrwalić obiekt java w pliku lokalnym, obiekt musi najpierw zaimplementować interfejs Serializable.

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

Następnie klasa, z której chcesz utrzymywać ten zestaw szkoleniowy powinien obejmować metody jak:

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

mam. Po wykonaniu kilku projektów z CI-Bayes, poleciłbym szukać gdzie indziej (oczywiście to było dawno temu). To bardzo zły pomysł, aby użyć mechanizmu wnioskowania, który musi zostać przeszkolony przed każdym użyciem i jeśli naprawdę rozważasz kwestię zarządzania państwem, jest to skomplikowane (np. Czy chcesz po prostu przechowywać dane treningowe? Lub może wyszkolone dystrybucje? więzy?).

CI-Bayes to także rodzaj zawikłanego kodu. Został wzorowany na jakimś kodzie Pythona, który pojawił się w książce o inteligencji. Wersja Java nie jest dobrze zaprojektowana. Nie używa także TDD, tak naprawdę nie ma mowy o JavaDoc.

To powiedziawszy, możesz szybko zrobić prosty klasyfikator. Długookresowym celem jest jednak ten, o który pytałeś.