Map<AnnotationType, List<Annotation>> getReferencedAnnotations() { Map<AnnotationType, List<Annotation>> referenced = new HashMap<AnnotationType, List<Annotation>>(); List<Annotation> terms = new ArrayList<Annotation>(); for (Span<Term> span : this.getSpans()) { terms.addAll((List<Annotation>)(List<?>) span.getTargets()); } referenced.put(AnnotationType.TERM, terms); return referenced; }
/** * Adds a coreference to the container */ void add(Coref coref) { coreferences.add(coref); /* Index by terms */ for (Span<Term> span : coref.getSpans()) { for (Term term : span.getTargets()) { indexAnnotation(coref, term.getId(), corefsIndexedByTerm); } } //this.indexBySent(coref, coref.getSpans().get(0).getTargets().get(0).getSent(), this.corefsIndexedBySent); }
final List<URI> coreferentials = Lists.newArrayList(); final List<URI> coreferentialConjuncts = Lists.newArrayList(); for (final Span<Term> span : coref.getSpans()) { final Term head = NAFUtils.extractHead(this.document, span); if (head != null) {
Coref(Coref coref, HashMap<String, Term> terms) { this.coid = coref.coid; /* Copy references */ String id = coref.getId(); this.mentions = new ArrayList<Span<Term>>(); for (Span<Term> span : coref.getSpans()) { /* Copy span */ List<Term> targets = span.getTargets(); List<Term> copiedTargets = new ArrayList<Term>(); for (Term term : targets) { Term copiedTerm = terms.get(term.getId()); if (copiedTerm == null) { throw new IllegalStateException("Term not found when copying " + id); } copiedTargets.add(copiedTerm); } if (span.hasHead()) { Term copiedHead = terms.get(span.getHead().getId()); this.mentions.add(new Span<Term>(copiedTargets, copiedHead)); } else { this.mentions.add(new Span<Term>(copiedTargets)); } } }
Coref(Coref coref, HashMap<String, Term> terms) { super(coref.getId()); /* Copy references */ String id = coref.getId(); this.mentions = new ArrayList<Span<Term>>(); for (Span<Term> span : coref.getSpans()) { /* Copy span */ List<Term> targets = span.getTargets(); List<Term> copiedTargets = new ArrayList<Term>(); for (Term term : targets) { Term copiedTerm = terms.get(term.getId()); if (copiedTerm == null) { throw new IllegalStateException("Term not found when copying " + id); } copiedTargets.add(copiedTerm); } if (span.hasHead()) { Term copiedHead = terms.get(span.getHead().getId()); this.mentions.add(new Span<Term>(copiedTargets, copiedHead)); } else { this.mentions.add(new Span<Term>(copiedTargets)); } } }
String idCluster = folder + "_" + cluster; for (Span<Term> termSpan : coref.getSpans()) { Term term = termSpan.getTargets().get(0);
for (final Span<Term> span : ImmutableList.copyOf(coref.getSpans())) { final Term head = NAFUtils.extractHead(document, span); if (head == null) { coref.getSpans().remove(span); if (LOGGER.isDebugEnabled()) { LOGGER.debug("Removed span with invalid head '{}' from {}", span.getStr(), final List<Span<Term>> spans = ImmutableList.copyOf(coref.getSpans()); outer: for (final Span<Term> span1 : spans) { for (final Span<Term> span2 : spans) { if (span1.size() > span2.size() && span1.getTargets().containsAll(span2.getTargets())) { coref.getSpans().remove(span1); if (LOGGER.isDebugEnabled()) { LOGGER.debug("Removed span '{}' including smaller span '{}' from {}", for (final Span<Term> span : ImmutableList.copyOf(coref.getSpans())) { final Term head = span.getHead(); if (!head.getMorphofeat().startsWith("NNP") && !isEvent) { if (head.getMorphofeat().startsWith("VB")) { coref.getSpans().remove(span); LOGGER.debug("Removed span with VB head '{}' from {}", span.getStr(), NAFUtils.toString(coref)); coref.getSpans().remove(span); LOGGER.debug("Removed span with non-role predicate " + "head '{}' from {}", span.getStr(), for (final Span<Term> span : coref.getSpans()) {
public static boolean hasHead(final KAFDocument document, final Object annotation, final Term head) { List<Span<Term>> spans; if (annotation instanceof Coref) { spans = ((Coref) annotation).getSpans(); } else if (annotation instanceof Entity) { spans = ((Entity) annotation).getSpans(); } else if (annotation instanceof Timex3) { spans = ImmutableList.of(KAFDocument.newTermSpan(document .getTermsByWFs(((Timex3) annotation).getSpan().getTargets()))); } else if (annotation instanceof Predicate) { spans = ImmutableList.of(((Predicate) annotation).getSpan()); } else if (annotation instanceof Role) { spans = ImmutableList.of(((Role) annotation).getSpan()); } else { throw new IllegalArgumentException("Unsupported annotation: " + annotation); } for (final Span<Term> span : spans) { if (head == extractHead(document, span)) { return true; } } return false; }
final StringBuilder builder = new StringBuilder("Added coref "); builder.append(coref.getId()).append(":"); for (final Span<Term> span : coref.getSpans()) { builder.append(" '").append(span.getStr()).append('\'');
String idCluster = folder + "_" + cluster; for (Span<Term> termSpan : coref.getSpans()) { Term term = termSpan.getTargets().get(0); String lemma = term.getLemma();
String idCluster = String.valueOf(1000 * folder + cluster); for (Span<Term> termSpan : coref.getSpans()) { Term term = termSpan.getTargets().get(0); String lemma = term.getLemma();
String idCluster = String.valueOf(1000 * folder + cluster); for (Span<Term> termSpan : coref.getSpans()) { Term term = termSpan.getTargets().get(0); String lemma = term.getLemma();
String idCluster = String.valueOf(1000 * folder + cluster); for (Span<Term> termSpan : coref.getSpans()) { Term term = termSpan.getTargets().get(0); String lemma = term.getLemma();
for (final Coref coref : document.getCorefsByTerm(argTerm)) { final List<Term> spanHeads = Lists.newArrayList(); for (final Span<Term> span : coref.getSpans()) { final Term spanHead = NAFUtils.extractHead(document, span); if (spanHead != null) {
for (final Coref coref : this.document.getCorefsByTerm(a1Head)) { final Set<Term> corefHeads = Sets.newHashSet(); for (final Span<Term> span : coref.getSpans()) { final Term head = NAFUtils .extractHead(this.document, span); for (final Coref coref : corefs) { final List<Term> heads = Lists.newArrayList(); for (final Span<Term> span : coref.getSpans()) { final Term head = NAFUtils.extractHead(this.document, span); if (head != null) { for (final Span<Term> span : coref.getSpans()) { if (this.sentenceIDs[span.getFirstTarget().getSent()]) { spans.add(span);
Coref coref = (Coref) annotation; coreferences.remove(coref); for (Span<Term> span : coref.getSpans()) { for (Term term : span.getTargets()) { unindexAnnotation(coref, term.getId(), corefsIndexedByTerm);
corefElem.setAttribute("cluster", coref.getCluster()); for (Span<Term> span : coref.getSpans()) { Comment spanComment = new Comment(coref.getSpanStr(span)); corefElem.addContent(spanComment);
corefElem.setAttribute("type", coref.getType()); for (Span<Term> span : coref.getSpans()) { Comment spanComment = new Comment(StringEscapeUtils.escapeXml11(coref.getSpanStr(span))); corefElem.addContent(spanComment);