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

anteater
author jdamerow
date Fri, 14 Sep 2012 10:30:43 +0200
parents
children dcc35f89dce3
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.impl;
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.List;
036535fcd179 anteater
jdamerow
parents:
diff changeset
5
036535fcd179 anteater
jdamerow
parents:
diff changeset
6 import de.mpiwg.anteater.places.PlaceInformation;
036535fcd179 anteater
jdamerow
parents:
diff changeset
7 import de.mpiwg.anteater.places.PlacesExtraction;
036535fcd179 anteater
jdamerow
parents:
diff changeset
8 import de.mpiwg.anteater.results.IResultFinder;
036535fcd179 anteater
jdamerow
parents:
diff changeset
9 import de.mpiwg.anteater.results.SpeciesScientificResult;
036535fcd179 anteater
jdamerow
parents:
diff changeset
10 import de.mpiwg.anteater.species.scientific.ScientificName;
036535fcd179 anteater
jdamerow
parents:
diff changeset
11 import de.mpiwg.anteater.species.scientific.ScientificNamesExtraction;
036535fcd179 anteater
jdamerow
parents:
diff changeset
12 import de.mpiwg.anteater.text.TextInformation;
036535fcd179 anteater
jdamerow
parents:
diff changeset
13
036535fcd179 anteater
jdamerow
parents:
diff changeset
14 public class ScientificNameResultFinder implements
036535fcd179 anteater
jdamerow
parents:
diff changeset
15 IResultFinder<SpeciesScientificResult> {
036535fcd179 anteater
jdamerow
parents:
diff changeset
16
036535fcd179 anteater
jdamerow
parents:
diff changeset
17 @Override
036535fcd179 anteater
jdamerow
parents:
diff changeset
18 public List<SpeciesScientificResult> getResults(List<TextInformation> infos) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
19 List<SpeciesScientificResult> finalResults = new ArrayList<SpeciesScientificResult>();
036535fcd179 anteater
jdamerow
parents:
diff changeset
20
036535fcd179 anteater
jdamerow
parents:
diff changeset
21 for (TextInformation info : infos) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
22
036535fcd179 anteater
jdamerow
parents:
diff changeset
23 List<ScientificNamesExtraction> resultsExtractions = info.getScientificNamesExtractions();
036535fcd179 anteater
jdamerow
parents:
diff changeset
24 List<PlacesExtraction> placesExtraction = info.getPlacesExtractions();
036535fcd179 anteater
jdamerow
parents:
diff changeset
25
036535fcd179 anteater
jdamerow
parents:
diff changeset
26
036535fcd179 anteater
jdamerow
parents:
diff changeset
27 for (ScientificNamesExtraction nameExtraction : resultsExtractions) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
28 for (PlacesExtraction placeExtraction : placesExtraction) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
29 if (placeExtraction.getType() == nameExtraction.getType() && placeExtraction.getTextIdx() == nameExtraction.getTextIdx()) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
30 List<ScientificName> names = nameExtraction.getNames();
036535fcd179 anteater
jdamerow
parents:
diff changeset
31 List<PlaceInformation> places = placeExtraction.getPlaceInformation();
036535fcd179 anteater
jdamerow
parents:
diff changeset
32
036535fcd179 anteater
jdamerow
parents:
diff changeset
33 // put all indices where there is a place according to placemaker
036535fcd179 anteater
jdamerow
parents:
diff changeset
34 // into list
036535fcd179 anteater
jdamerow
parents:
diff changeset
35 List<Integer> placeIndices = new ArrayList<Integer>();
036535fcd179 anteater
jdamerow
parents:
diff changeset
36 for (PlaceInformation place : places) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
37 int start = place.getStart();
036535fcd179 anteater
jdamerow
parents:
diff changeset
38 int end = place.getStart() + place.getLength();
036535fcd179 anteater
jdamerow
parents:
diff changeset
39 for (int i = start; i < end; i++) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
40 placeIndices.add(i);
036535fcd179 anteater
jdamerow
parents:
diff changeset
41 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
42 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
43
036535fcd179 anteater
jdamerow
parents:
diff changeset
44 for (ScientificName name : names) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
45 if (!placeIndices.contains(name.getStart()))
036535fcd179 anteater
jdamerow
parents:
diff changeset
46 {
036535fcd179 anteater
jdamerow
parents:
diff changeset
47 SpeciesScientificResult finalResult = new SpeciesScientificResult();
036535fcd179 anteater
jdamerow
parents:
diff changeset
48 finalResult.setFinding(name);
036535fcd179 anteater
jdamerow
parents:
diff changeset
49 finalResult.setPrediction(1.0);
036535fcd179 anteater
jdamerow
parents:
diff changeset
50 finalResult.setResult(nameExtraction);
036535fcd179 anteater
jdamerow
parents:
diff changeset
51 finalResult.setTextInfo(info);
036535fcd179 anteater
jdamerow
parents:
diff changeset
52 finalResults.add(finalResult);
036535fcd179 anteater
jdamerow
parents:
diff changeset
53 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
54 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
55 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
56 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
57 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
58 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
59 return finalResults;
036535fcd179 anteater
jdamerow
parents:
diff changeset
60 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
61
036535fcd179 anteater
jdamerow
parents:
diff changeset
62 }