Постоянство на Java CI-байесовский объект - PullRequest
5 голосов
/ 15 декабря 2009

Кто-нибудь сохранил тренировочный комплекс для CI-Bayes? У меня есть образец кода с этого сайта: http://www.theserverside.com/news/thread.tss?thread_id=49773

вот код:

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"

, поэтому мне нужно иметь возможность сохранять тренировочный набор в локальном файле.

Кто-нибудь делал это раньше?

Ответы [ 2 ]

0 голосов
/ 19 января 2013

У меня есть. Сделав пару проектов с CI-Bayes, я бы порекомендовал вам посмотреть в другом месте (конечно, это было давно). Это очень плохая идея - использовать механизм вывода, который необходимо обучать перед каждым использованием, и если вы действительно рассматриваете вопрос управления состоянием, это сложно (например, хотите ли вы просто хранить обучающие данные? цепи?).

CI-Bayes также является своего рода запутанной кодовой базой. Он был смоделирован на основе некоторого кода Python, который появился в книге об интеллекте. Версия Java не очень хорошо разработана. Он также не использует TDD, на самом деле не имеет JavaDoc, о котором можно говорить.

Тем не менее, вы можете получить простой классификатор довольно быстро. Однако долгосрочная цель - это та, о которой вы спрашивали.

0 голосов
/ 14 июня 2011

Чтобы сохранить Java-объект в локальном файле, он должен сначала реализовать интерфейс Serializable.

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

Тогда класс, из которого вы хотите сохранить этот обучающий набор, должен включать метод, подобный:

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
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...