/** * Adds a named entity to the container */ void add(Entity entity) { entities.add(entity); /* Index by terms */ for (Term term : entity.getTerms()) { indexAnnotation(entity, term.getId(), entitiesIndexedByTerm); } this.indexBySent(entity, entity.getSpans().get(0).getTargets().get(0).getSent(), this.entitiesIndexedBySent); }
private void applyEntityRemoveOverlaps(final KAFDocument document) { // Consider all the entities in the document outer: for (final Entity entity : ImmutableList.copyOf(document.getEntities())) { for (final Term term : entity.getTerms()) { // Remove entities whose span is contained in the span of another entity for (final Entity entity2 : document.getEntitiesByTerm(term)) { if (entity2 != entity && entity2.getTerms().containsAll(entity.getTerms())) { document.removeAnnotation(entity); if (LOGGER.isDebugEnabled()) { LOGGER.debug("Removed " + NAFUtils.toString(entity) + " overlapping with " + NAFUtils.toString(entity2)); } continue outer; } } // Remove entities whose span overlaps with the span of some timex for (final WF wf : term.getWFs()) { final List<Timex3> timex = document.getTimeExsByWF(wf); if (!timex.isEmpty()) { document.removeAnnotation(entity); if (LOGGER.isDebugEnabled()) { LOGGER.debug("Removed " + NAFUtils.toString(entity) + " overlapping with TIMEX3 '" + NAFUtils.toString(timex)); } continue outer; } } } } }
Entity entity = (Entity) annotation; entities.remove(entity); for (Term term : entity.getTerms()) { unindexAnnotation(entity, term.getId(), entitiesIndexedByTerm);
if (head.equals(document.getTermsHead(entity.getTerms()))) { entityToModify = entity;