【问题标题】:Persistence on Java CI-Bayes objectJava CI-Bayes 对象的持久性
【发布时间】:2010-12-26 22:21:02
【问题描述】:

有没有人坚持使用 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"

所以我需要能够将训练集存储在本地文件中。

以前有人做过吗?

【问题讨论】:

    标签: java persistence bayesian


    【解决方案1】:

    要将java Object 持久化到本地文件中,Object 必须首先实现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
        }
    }
    

    【讨论】:

      【解决方案2】:

      我有。在用 CI-Bayes 做了几个项目之后,我建议你去别处看看(当然这是很久以前的事了)。使用每次使用前都需要训练的推理引擎是一个非常糟糕的主意,如果你真的考虑状态管理的问题,它会很复杂(例如,你想只存储训练数据吗?或者也许是训练好的分布?链?)。

      CI-Bayes 也是一种复杂的代码库。它模仿了一本关于智能的书中出现的一些 Python 代码。 Java版本的设计不是很好。它也没有使用 TDD,没有真正的 JavaDoc 可言。

      也就是说,您可以很快得到一个简单的分类器。不过,长期目标是您询问的目标。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-18
        • 2017-01-05
        • 2011-12-25
        • 2021-04-05
        • 2020-03-07
        • 1970-01-01
        • 1970-01-01
        • 2013-06-04
        相关资源
        最近更新 更多