Mercurial > hg > anteater
diff src/de/mpiwg/anteater/results/AResultManager.java @ 0:036535fcd179
anteater
author | jdamerow |
---|---|
date | Fri, 14 Sep 2012 10:30:43 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/de/mpiwg/anteater/results/AResultManager.java Fri Sep 14 10:30:43 2012 +0200 @@ -0,0 +1,60 @@ +package de.mpiwg.anteater.results; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import de.mpiwg.anteater.AnteaterConfiguration; +import de.mpiwg.anteater.text.TextInformation; + +public abstract class AResultManager<E extends IResult<?,?>> { + + private AnteaterConfiguration configuration; + + public AResultManager(AnteaterConfiguration configuration) { + this.configuration = configuration; + } + + protected abstract List<AnnotationTag> getSpecificSummaryTags(List<E> results, int textIndex); + protected abstract List<AnnotationTag> getSpecificSuppleInfTags(List<E> applicants, int textIndex); + + public List<AnnotationTag> getSummaryTags(List<E> results, int textIndex) { + return getSpecificSummaryTags(results, textIndex); + } + + public List<AnnotationTag> getSuppleInfTags(List<E> results, int textIndex) { + return getSpecificSuppleInfTags(results, textIndex); + } + + public Map<TextInformation, List<E>> sortResultsByText(List<E> results) { + configuration.getLogger().logMessage(getClass().getSimpleName(), "Sorting results by texts."); + + Map<TextInformation, List<E>> resultsPerText = new HashMap<TextInformation, List<E>>(); + + for (E r : results) { + + List<E> appResults = resultsPerText.get(r.getTextInfo()); + if (appResults == null) { + appResults = new ArrayList<E>(); + resultsPerText.put(r.getTextInfo(), appResults); + } + appResults.add(r); + } + + return resultsPerText; + } + + public List<E> getPredictedResults(List<E> results) { + List<E> predictedResults = new ArrayList<E>(); + + if (results == null) + return predictedResults; + + for (E r : results) { + if (r.getPrediction() >= 1.0) + predictedResults.add(r); + } + return predictedResults; + } +}