public void testTaxonomyLinker() throws Exception{
OpenNlpAnalysedContentFactory acf = OpenNlpAnalysedContentFactory.getInstance(openNLP,
new TextAnalyzerConfig());
EntityLinkerConfig config = new EntityLinkerConfig();
config.setRedirectProcessingMode(RedirectProcessingMode.FOLLOW);
EntityLinker linker = new EntityLinker(
acf.create(TEST_TEXT,"en"), searcher, config);
linker.process();
Map<String,List<String>> expectedResults = new HashMap<String,List<String>>();
expectedResults.put("Patrick Marshall", new ArrayList<String>(
Arrays.asList("urn:test:PatrickMarshall")));
expectedResults.put("geologist", new ArrayList<String>(
Arrays.asList("urn:test:redirect:Geologist"))); //the redirected entity
expectedResults.put("New Zealand", new ArrayList<String>(
Arrays.asList("urn:test:NewZealand")));
expectedResults.put("University of Otago", new ArrayList<String>(
Arrays.asList("urn:test:UniversityOfOtago")));
for(LinkedEntity linkedEntity : linker.getLinkedEntities().values()){
List<String> expectedSuggestions = expectedResults.remove(linkedEntity.getSelectedText());
assertNotNull("LinkedEntity "+linkedEntity.getSelectedText()+
"is not an expected Result (or was found twice)", expectedSuggestions);
linkedEntity.getSuggestions().iterator();
assertEquals("Number of suggestions "+linkedEntity.getSuggestions().size()+