2009-12-15 47 views
5

Hiç kimse CI-Bayes için bir eğitim setini kullanmaya devam etti mi? Ben bu siteden örnek kod var:Java CI-Bayes nesnesinde kalıcılık

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" 

yüzden yerel bir dosyada eğitim seti depolamak gerekiyor: Burada

http://www.theserverside.com/news/thread.tss?thread_id=49773 kodudur.

Daha önce hiç kimse bunu yaptı mı?

cevap

0

Nesnenin yerel bir dosyada kalmasını sağlamak için, Nesne önce seri hale getirilebilir arabirimi uygulamalıdır. Ben

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

:

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

Ardından, bu eğitim setini devam etmek istiyorum hangi sınıf gibi bir yöntem içermelidir. CI-Bayes ile birkaç proje yaptıktan sonra, başka bir yere bakmanızı öneriyorum (elbette bu uzun zaman önceydi). Her kullanımdan önce eğitilmesi gereken bir çıkarım motorunu kullanmak çok kötü bir fikirdir ve eğer gerçekten devlet yönetimi konusunu ele alırsanız, karmaşıktır (örneğin, eğitim verilerini depolamak mı, yoksa eğitimli dağıtımları mı saklamak istiyorsunuz? zincirler?). CI-Bayes aynı zamanda kıvrık bir kod tabanıdır. Zekayla ilgili bir kitapta ortaya çıkan bazı Python kodları modellendi. Java sürümü çok iyi tasarlanmamıştır. Ayrıca, TDD'yi kullanmaz, gerçekten JavaDoc'u konuşmaz.

Basit bir sınıflandırıcının oldukça hızlı bir şekilde geçmesini sağlayabilirsiniz. Uzun vadede amaç, hakkında sorduğun tek şey.

İlgili konular