/** Deprecated */ public List<List<Term>> getReferences() { List<List<Term>> list = new ArrayList<List<Term>>(); for (Span<Term> span : this.references) { list.add(span.getTargets()); } return list; }
Chunk(String id, Span<Term> span) { super(id); if (span.size() < 1) { throw new IllegalStateException("Chunks must contain at least one term target"); } this.span = span; }
/** * Converts a Span into a Target list */ static List<Target> span2TargetList(Span<Term> span) { List<Target> list = new ArrayList<Target>(); for (Term t : span.getTargets()) { list.add(KAFDocument.createTarget(t, (t == span.getHead()))); } return list; }
private static Set<Object> getTarget(@Nullable final Opinion opinion) { if (opinion != null) { final Span<Term> target = opinion.getTargetSpan(); if (target != null && !target.isEmpty()) { return ImmutableSet.copyOf(target.getTargets()); } } return NULL_TERMS; }
OpinionHolder(OpinionHolder oh, HashMap<String, Term> terms) { /* Copy span */ Span<Term> span = oh.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 opinion_holder"); } copiedTargets.add(copiedTerm); } if (span.hasHead()) { Term copiedHead = terms.get(span.getHead().getId()); this.span = new Span<Term>(copiedTargets, copiedHead); } else { this.span = new Span<Term>(copiedTargets); } }
coref.getSpans().remove(span); if (LOGGER.isDebugEnabled()) { LOGGER.debug("Removed span with invalid head '{}' from {}", span.getStr(), NAFUtils.toString(coref)); span.setHead(head); 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 {}", span1.getStr(), span2.getStr(), NAFUtils.toString(coref)); hasProperNounHead |= span1.getHead().getMorphofeat().startsWith("NNP"); if (!isEvent) { for (final ExternalRef ref : NAFUtils.getRefs(span1.getHead(), NAFUtils.RESOURCE_SUMO, null)) { final URI sumoID = new URIImpl(Sumo.NAMESPACE + ref.getReference()); 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)); } else {
indexes.put("target-end", -1); expression = opinion.getExpressionSpan().getStr(); indexes.put("expression-start", opinion.getExpressionSpan().getTargets().get(0).getOffset()); indexes.put("expression-end", opinion.getExpressionSpan().getTargets().get(opinion.getExpressionSpan().getTargets().size() - 1).getOffset() + opinion.getExpressionSpan().getTargets().get(opinion.getExpressionSpan().getTargets().size() - 1).getLength()); holder = opinion.getHolderSpan().getStr(); indexes.put("holder-start", opinion.getHolderSpan().getTargets().get(0).getOffset()); indexes.put("holder-end", opinion.getHolderSpan().getTargets().get(opinion.getHolderSpan().getTargets().size() - 1).getOffset() + opinion.getHolderSpan().getTargets().get(opinion.getHolderSpan().getTargets().size() - 1).getLength()); target = opinion.getTargetSpan().getStr(); indexes.put("target-start", opinion.getTargetSpan().getTargets().get(0).getOffset()); indexes.put("target-end", opinion.getTargetSpan().getTargets().get(opinion.getTargetSpan().getTargets().size() - 1).getOffset() + opinion.getTargetSpan().getTargets().get(opinion.getTargetSpan().getTargets().size() - 1).getLength());
@Override public Integer getSent() { return this.span.getFirstTarget().getSent(); }
public Term newCompound(List<Term> terms, String lemma) { Span<WF> span = new Span<WF>(); for (Term term : terms) { span.addTargets(term.getSpan().getTargets()); } String newId = idManager.getNextId(AnnotationType.MW); Term compound = newTerm(newId, span, annotationContainer.getPosition(Layer.TERMS, terms.get(0))); compound.setLemma(lemma); for (Term term : terms) { compound.addComponent(term); term.setCompound(compound); this.annotationContainer.remove(term, Layer.TERMS, AnnotationType.TERM); } return compound; }
List<ixa.kaflib.Span<Term>> entitySpanList = ne.getSpans(); for (ixa.kaflib.Span<Term> spanTerm : entitySpanList) { Term neTerm = spanTerm.getFirstTarget(); entityToSpanSize.put(neTerm.getId(), spanTerm.size()); entityToType.put(neTerm.getId(), ne.getType());
@Nullable public static Span<Term> trimSpan(@Nullable final Span<Term> span, final int sentenceID) { if (span == null || span.isEmpty()) { return null; } boolean sameSentence = true; for (final Term term : span.getTargets()) { if (term.getSent() != sentenceID) { sameSentence = false; break; } } if (sameSentence) { return span; } final List<Term> filteredTerms = Lists.newArrayList(); for (final Term term : span.getTargets()) { if (term.getSent() == sentenceID) { filteredTerms.add(term); } } final Span<Term> result = KAFDocument.newTermSpan(filteredTerms); for (final Term head : span.getHeads()) { if (head.getSent() == sentenceID) { result.getHeads().add(head); } } return result; }
public String getStr() { String str = ""; if (!this.span.isEmpty()) { Term target = this.span.getFirstTarget(); str += target.getId() + " " + target.getStr() + " "; } str += ":"; for (Role role : this.roles) { if (!role.span.isEmpty()) { Term roleTarget = role.getSpan().getFirstTarget(); str += " " + role.getSemRole() + "[" + roleTarget.getId() + " " + roleTarget.getStr() + "]"; } } return str; }
public void addTarget(T target, boolean isHead) { this.addTarget(target); if (isHead) { this.head = target; } }
public boolean hasHead() { return (span.getHead() != null); }
SSTspan(String linkedEntityId) { this.sstID= linkedEntityId; this.mentions = new Span<Term>(); }
@Override public String toString() { return "Role{" + semRole + " -> " + span.getStr() + '}'; }
public void setTargetSpan(final Span<Term> targetSpan) { if (targetSpan == null || targetSpan.isEmpty()) { this.opinionTarget = null; } else if (this.opinionTarget == null) { this.opinionTarget = new Opinion.OpinionTarget(targetSpan); } else { this.opinionTarget.setSpan(targetSpan); } }
/** Deprecated */ public void setHead(Term term) { this.span.setHead(term); }
OpinionTarget(OpinionTarget ot, HashMap<String, Term> terms) { /* Copy span */ Span<Term> span = ot.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 opinion_target"); } copiedTargets.add(copiedTerm); } if (span.hasHead()) { Term copiedHead = terms.get(span.getHead().getId()); this.span = new Span<Term>(copiedTargets, copiedHead); } else { this.span = new Span<Term>(copiedTargets); } }