我有一些用于最大熵分类的代码。
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中没有办法减肥吗?