2009-12-15 10 views
5

Có ai từng tiếp tục tập huấn cho CI-Bay không? Tôi có mẫu mã từ trang web này: http://www.theserverside.com/news/thread.tss?thread_id=49773Sự kiên trì trên đối tượng Java CI-Bayes

đây là mã:

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" 

vì vậy tôi cần để có thể lưu trữ các tập huấn luyện trong một tập tin địa phương.

Có ai từng làm điều này trước đây không?

Trả lời

0

Để duy trì một đối tượng java trong một tệp cục bộ, đối tượng trước tiên phải triển khai giao diện Serializable.

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

Sau đó, lớp mà từ đó bạn muốn kéo dài tập huấn luyện này, nên bao gồm một phương pháp như:

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

tôi có. Sau khi thực hiện một vài dự án với CI-Bayes, tôi khuyên bạn nên tìm nơi khác (tất nhiên đây là một thời gian dài trước đây). Đó là một ý tưởng rất tồi khi sử dụng công cụ suy luận cần được đào tạo trước mỗi lần sử dụng và nếu bạn thực sự xem xét vấn đề quản lý nhà nước, nó phức tạp (ví dụ: bạn có muốn lưu trữ dữ liệu đào tạo không? chuỗi?).

CI-Bayes cũng là một loại codebase phức tạp. Nó đã được mô hình hoá một số mã Python xuất hiện trong một cuốn sách về trí thông minh. Phiên bản Java không được thiết kế rất tốt. Nó cũng không sử dụng TDD, không thực sự có JavaDoc để nói về.

Điều đó nói rằng, bạn có thể nhận được một trình phân loại đơn giản diễn ra khá nhanh chóng. Mục tiêu dài hạn là mục tiêu bạn hỏi về mặc dù.