如何在opennlp maxent中获取每个功能的权重

时间:2019-05-31 06:51:11

标签: java opennlp maxent

我有一些用于最大熵分类的代码。

    public static void main(String[] args) throws IOException {
        List<Event> samples =  Arrays.asList(new Event[] {
                //           outcome + context
                createEvent("c=4", "a=1", "b=1", "d=0", "e=1"),
                createEvent("c=3", "a=1", "b=0", "d=1", "e=0"),
                createEvent("c=2", "a=0", "b=1", "d=1", "e=0"),
                createEvent("c=1", "a=0", "b=0", "d=1", "e=0")
        });

        EventStream stream = new ListEventStream(samples);
        MaxentModel model = GIS.trainModel(stream);

        String[] context = {"a=1", "b=0", "d=0", "e=1"};
        double[] outcomeProbs = model.eval(context);
        String outcome = model.getBestOutcome(outcomeProbs);

        System.out.println(outcome);
    }

在此代码中,c是结果,而a,b,d,e是特征。 从此代码中,当上下文为{“ a = 1”,“ b = 0”,“ d = 0”,“ e = 1”}时,我可以得到结果,但是我找不到如何获取每个元素的权重特征(a,b,d,e)。 我想知道每个权重,因为权重意味着每个功能的重要性。 我已经看过http://maxent.sourceforge.net/api/index.html,但是找不到减肥的方法。在maxent opennlp中没有办法减肥吗?

0 个答案:

没有答案