// Copyright 2013 Thomas Müller
// This file is part of MarMoT, which is licensed under GPLv3.
package marmot.util.eval;
import java.util.Collection;
import marmot.util.KeyValueOptions;
public class TaggingScorer extends AbstractOneTokenPerLineScorer {
@Override
public double getScore(KeyValueOptions actual_opts, String[] actual_tokens,
KeyValueOptions prediction_opts, String[] prediction_tokens) {
Collection<String> keys = actual_opts.getSortedKeys();
String actual_tag = getTag(keys, actual_opts, actual_tokens);
String prediction_tag = getTag(keys, prediction_opts, prediction_tokens);
boolean tag_correct = actual_tag.equals(prediction_tag);
if (tag_correct) {
return 1.0;
}
return 0.0;
}
private String getTag(Collection<String> keys, KeyValueOptions opts, String[] tokens) {
StringBuilder sb = new StringBuilder();
for (String key : keys) {
int index = opts.getValueAsInteger(key);
sb.append(tokens[index]);
}
return sb.toString().toLowerCase();
}
}