annotate src/de/mpiwg/anteater/results/AResultManager.java @ 0:036535fcd179

anteater
author jdamerow
date Fri, 14 Sep 2012 10:30:43 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
036535fcd179 anteater
jdamerow
parents:
diff changeset
1 package de.mpiwg.anteater.results;
036535fcd179 anteater
jdamerow
parents:
diff changeset
2
036535fcd179 anteater
jdamerow
parents:
diff changeset
3 import java.util.ArrayList;
036535fcd179 anteater
jdamerow
parents:
diff changeset
4 import java.util.HashMap;
036535fcd179 anteater
jdamerow
parents:
diff changeset
5 import java.util.List;
036535fcd179 anteater
jdamerow
parents:
diff changeset
6 import java.util.Map;
036535fcd179 anteater
jdamerow
parents:
diff changeset
7
036535fcd179 anteater
jdamerow
parents:
diff changeset
8 import de.mpiwg.anteater.AnteaterConfiguration;
036535fcd179 anteater
jdamerow
parents:
diff changeset
9 import de.mpiwg.anteater.text.TextInformation;
036535fcd179 anteater
jdamerow
parents:
diff changeset
10
036535fcd179 anteater
jdamerow
parents:
diff changeset
11 public abstract class AResultManager<E extends IResult<?,?>> {
036535fcd179 anteater
jdamerow
parents:
diff changeset
12
036535fcd179 anteater
jdamerow
parents:
diff changeset
13 private AnteaterConfiguration configuration;
036535fcd179 anteater
jdamerow
parents:
diff changeset
14
036535fcd179 anteater
jdamerow
parents:
diff changeset
15 public AResultManager(AnteaterConfiguration configuration) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
16 this.configuration = configuration;
036535fcd179 anteater
jdamerow
parents:
diff changeset
17 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
18
036535fcd179 anteater
jdamerow
parents:
diff changeset
19 protected abstract List<AnnotationTag> getSpecificSummaryTags(List<E> results, int textIndex);
036535fcd179 anteater
jdamerow
parents:
diff changeset
20 protected abstract List<AnnotationTag> getSpecificSuppleInfTags(List<E> applicants, int textIndex);
036535fcd179 anteater
jdamerow
parents:
diff changeset
21
036535fcd179 anteater
jdamerow
parents:
diff changeset
22 public List<AnnotationTag> getSummaryTags(List<E> results, int textIndex) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
23 return getSpecificSummaryTags(results, textIndex);
036535fcd179 anteater
jdamerow
parents:
diff changeset
24 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
25
036535fcd179 anteater
jdamerow
parents:
diff changeset
26 public List<AnnotationTag> getSuppleInfTags(List<E> results, int textIndex) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
27 return getSpecificSuppleInfTags(results, textIndex);
036535fcd179 anteater
jdamerow
parents:
diff changeset
28 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
29
036535fcd179 anteater
jdamerow
parents:
diff changeset
30 public Map<TextInformation, List<E>> sortResultsByText(List<E> results) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
31 configuration.getLogger().logMessage(getClass().getSimpleName(), "Sorting results by texts.");
036535fcd179 anteater
jdamerow
parents:
diff changeset
32
036535fcd179 anteater
jdamerow
parents:
diff changeset
33 Map<TextInformation, List<E>> resultsPerText = new HashMap<TextInformation, List<E>>();
036535fcd179 anteater
jdamerow
parents:
diff changeset
34
036535fcd179 anteater
jdamerow
parents:
diff changeset
35 for (E r : results) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
36
036535fcd179 anteater
jdamerow
parents:
diff changeset
37 List<E> appResults = resultsPerText.get(r.getTextInfo());
036535fcd179 anteater
jdamerow
parents:
diff changeset
38 if (appResults == null) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
39 appResults = new ArrayList<E>();
036535fcd179 anteater
jdamerow
parents:
diff changeset
40 resultsPerText.put(r.getTextInfo(), appResults);
036535fcd179 anteater
jdamerow
parents:
diff changeset
41 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
42 appResults.add(r);
036535fcd179 anteater
jdamerow
parents:
diff changeset
43 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
44
036535fcd179 anteater
jdamerow
parents:
diff changeset
45 return resultsPerText;
036535fcd179 anteater
jdamerow
parents:
diff changeset
46 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
47
036535fcd179 anteater
jdamerow
parents:
diff changeset
48 public List<E> getPredictedResults(List<E> results) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
49 List<E> predictedResults = new ArrayList<E>();
036535fcd179 anteater
jdamerow
parents:
diff changeset
50
036535fcd179 anteater
jdamerow
parents:
diff changeset
51 if (results == null)
036535fcd179 anteater
jdamerow
parents:
diff changeset
52 return predictedResults;
036535fcd179 anteater
jdamerow
parents:
diff changeset
53
036535fcd179 anteater
jdamerow
parents:
diff changeset
54 for (E r : results) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
55 if (r.getPrediction() >= 1.0)
036535fcd179 anteater
jdamerow
parents:
diff changeset
56 predictedResults.add(r);
036535fcd179 anteater
jdamerow
parents:
diff changeset
57 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
58 return predictedResults;
036535fcd179 anteater
jdamerow
parents:
diff changeset
59 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
60 }