List<Entity> getEntitiesByTerm(Term term) { List<Entity> entities = null; try { entities = this.entitiesIndexedByTerm.get(term.getId()); } catch (Exception e) { } return (entities == null) ? new ArrayList<Entity>() : entities; }
public boolean match(@Nullable final Term term) { return term != null && (this.pos == null || this.pos.equalsIgnoreCase(term.getPos()) || this.pos .equals(term.getMorphofeat())) && (this.lemma == null || this.lemma.equalsIgnoreCase(term.getLemma())) && (this.stem == null || this.stem.equalsIgnoreCase(Stemming.stem(null, term.getStr()))); }
public static void printToken(Appendable writer, Term token, int i, String last) throws IOException { writer.append(String.format("%d", i)).append("\t"); writer.append(token.getForm()).append("\t"); writer.append("_").append("\t"); writer.append(token.getForm()).append("\t"); writer.append("_").append("\t"); writer.append(token.getMorphofeat()).append("\t"); writer.append("_").append("\t"); writer.append("_").append("\t"); writer.append("_").append("\t"); writer.append("_").append("\t"); writer.append("_").append("\t"); writer.append("_").append("\t"); writer.append("_").append("\t"); writer.append("_").append("\t"); writer.append("_").append("\t"); writer.append("_").append("\t"); writer.append(last); writer.append("\n"); }
public static List<Term> getSpan(List<Term> terms, int start, int end) { List<Term> ret = new ArrayList<>(); for (Term t : terms) { int tStart = t.getOffset(); int tEnd = t.getOffset() + t.getLength(); if ((tEnd >= start && tEnd <= end) || (tStart >= start && tStart <= end)) { ret.add(t); // System.out.println(t); // System.out.println(t.getOffset()); // System.out.println(t.getLength()); } } return ret; }
public static Boolean isActiveForm(final KAFDocument document, final Term term) { final String word = term.getStr().toLowerCase(); final String pos = term.getMorphofeat(); if (!pos.startsWith("V")) { return null; } if (word.equals("been") || !pos.equals("VBN")) { return Boolean.TRUE; } return isActiveFormHelper(document, term); }
Term head; String termcase; Comment termComment = new Comment(term.getStr()); termsElem.addContent(termComment); String tag = (isComponent) ? "component" : "term"; Element termElem = new Element(tag); termElem.setAttribute("id", term.getId()); if (term.hasType()) { termElem.setAttribute("type", term.getType()); if (term.hasLemma()) { termElem.setAttribute("lemma", term.getLemma()); if (term.hasSupersenseTag()) { termElem.setAttribute("supersense", term.getSupersenseTag()); if (term.hasWordnetSense()) { termElem.setAttribute("wordnet", term.getWordnetSense()); if (term.hasBBNTag()) { termElem.setAttribute("bbn", term.getBBNTag()); if (term.hasPos()) { termElem.setAttribute("pos", term.getPos()); if (term.hasMorphofeat()) { termElem.setAttribute("morphofeat", term.getMorphofeat()); if (term.hasHead()) {
String termcase; if (!isComponent) { Comment termComment = new Comment(StringEscapeUtils.escapeXml11(term.getStr())); termElem.setAttribute("id", term.getId()); if (term.hasType()) { termElem.setAttribute("type", term.getType()); if (term.hasLemma()) { termElem.setAttribute("lemma", term.getLemma()); if (term.hasPos()) { termElem.setAttribute("pos", term.getPos()); if (term.hasMorphofeat()) { termElem.setAttribute("morphofeat", term.getMorphofeat()); if (term.hasHead()) { termElem.setAttribute("head", term.getHead().getId()); if (term.hasCase()) { termElem.setAttribute("case", term.getCase()); if (term.hasSentiment()) { Term.Sentiment sentiment = term.getSentiment(); Element sentimentElem = sentimentToDOM(sentiment); termElem.addContent(sentimentElem); Span<WF> span = term.getSpan();
out.append("<strong>Term ").append(term.getId()).append("</strong>"); if (term.getPos() != null && term.getMorphofeat() != null) { out.append(": pos ").append(term.getPos()).append('/').append(term.getMorphofeat()); if (term.getLemma() != null) { out.append(", lemma '").append(term.getLemma().replace("\"", """)).append("'"); if (dep != null) { out.append(", ").append(dep.getRfunc()).append(" of '") .append(dep.getFrom().getForm().replace("\"", """)).append("' (") .append(dep.getFrom().getId()).append(")"); for (final ExternalRef ref : term.getExternalRefs()) { out.append(", ").append(ref.getResource()).append(' ').append(ref.getReference()); final Predicate predicate = predicates.get(0); out.append("<br/><b>Predicate ").append(predicate.getId()).append("</b>: sense "); final boolean isNoun = term.getPos().toUpperCase().equals("N"); for (final ExternalRef ref : predicate.getExternalRefs()) { final String resource = ref.getResource().toLowerCase(); for (final Span<Term> span : coref.getSpans()) { out.append(separator); out.append(span.getTargets().get(0).getId()); out.append(" '").append(span.getStr()).append("'"); separator = ", ";
for (ixa.kaflib.Span<Term> spanTerm : entitySpanList) { Term neTerm = spanTerm.getFirstTarget(); entityToSpanSize.put(neTerm.getId(), spanTerm.size()); entityToType.put(neTerm.getId(), ne.getType()); if (entityToSpanSize.get(thisTerm.getId()) != null) { int neSpanSize = entityToSpanSize.get(thisTerm.getId()); String neClass = entityToType.get(thisTerm.getId()); String neType = convertToConLLTypes(neClass); if (neSpanSize > 1) { for (int j = 0; j < neSpanSize; j++) { thisTerm = sentenceTerms.get(i + j); sb.append(thisTerm.getForm()); sb.append("\t"); sb.append(thisTerm.getLemma()); sb.append("\t"); sb.append(thisTerm.getMorphofeat()); sb.append("\t"); if (j == 0) { sb.append(thisTerm.getForm()); sb.append("\t"); sb.append(thisTerm.getLemma()); sb.append("\t"); sb.append(thisTerm.getMorphofeat()); sb.append("\t"); sb.append(BIO.BEGIN.toString()); sb.append(thisTerm.getForm());
Term(Term term, HashMap<String, WF> wfs) { super(term.getId()); this.type = term.type; this.lemma = term.lemma; this.termcase = term.termcase; if (term.hasSentiment()) { this.sentiment = new Sentiment(term.sentiment); this.components = new ArrayList<Term>(); for (Term component : term.components) { Term copyComponent = new Term(component, wfs); this.components.add(copyComponent); newComponents.put(component.getId(), copyComponent); if (term.hasHead()) { this.head = newComponents.get(term.head.getId()); WF copiedWf = wfs.get(wf.getId()); if (copiedWf == null) { throw new IllegalStateException("WF not found when copying Term " + term.getId()); for (ExternalRef externalRef : term.getExternalRefs()) { this.externalReferences.add(new ExternalRef(externalRef));
boolean hasSynset = false; boolean hasSST = false; for (final ExternalRef ref : term.getExternalRefs()) { hasBBN |= RESOURCE_BBN.equalsIgnoreCase(ref.getResource()); hasSynset |= RESOURCE_WN_SYNSET.equalsIgnoreCase(ref.getResource()); hasSST |= RESOURCE_WN_SST.equalsIgnoreCase(ref.getResource()); if (!hasBBN && term.getBBNTag() != null) { term.addExternalRef(document.newExternalRef(RESOURCE_BBN, term.getBBNTag())); if (!hasSynset && term.getWordnetSense() != null) { term.addExternalRef(document.newExternalRef(RESOURCE_WN_SYNSET, term.getWordnetSense())); if (!hasSST && term.getSupersenseTag() != null) { term.addExternalRef(document.newExternalRef(RESOURCE_WN_SST, term.getSupersenseTag())); term.setBBNTag(null); term.setWordnetSense(null); term.setSupersenseTag(null);
throws RDFHandlerException { if ("QPD".indexOf(head.getPos()) < 0 && label != null && !label.isEmpty()) { emitFact(instanceID, RDFS.LABEL, label, mentionID, null); final char pos = Character.toUpperCase(head.getPos().charAt(0)); if (pos == 'N' || pos == 'V') { emitMeta(mentionID, KS.LEMMA, head.getLemma()); final String p = head.getMorphofeat().toUpperCase(); if (p.equals("NNS") || p.equals("NNPS")) { emitMeta(mentionID, KS.PLURAL, true); for (final ExternalRef ref : head.getExternalRefs()) { final URI typeURI = mintRefURI(ref.getResource(), ref.getReference()); if (ref.getResource().equals(NAFUtils.RESOURCE_SUMO)) {
/** * 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); }
final char pos = Character.toUpperCase(term.getPos().charAt(0)); if (pos != 'V' && pos != 'N' && pos != 'G' && pos != 'A' || !document.getPredicatesByTerm(term).isEmpty() || !document.getTimeExsByWF(term.getWFs().get(0)).isEmpty()) { continue; final String lemma = term.getLemma(); if (pos == 'V') { final List<PropBank.Roleset> rolesets = PropBank.getRolesets(lemma);
public static String extendedPos(final KAFDocument document, final Term term) { final String pos = term.getMorphofeat(); final String lemma = term.getLemma().toLowerCase(); if ("some".equals(lemma) || "many".equals(lemma) || "all".equals(lemma) || "few".equals(lemma) || "this".equals(lemma) || "these".equals(lemma) || "that".equals(lemma) || "those".equals(lemma)) { final Dep dep = document.getDepToTerm(term); if (dep == null || !"NMOD".equals(dep.getRfunc())) { return pos + "P"; // determiner (DT) or adj (JJ) used as demonstrative pronoun } } return pos; }
private void emitOpinionArgument(final URI opinionID, @Nullable final URI spanProperty, @Nullable final URI headProperty, @Nullable final Span<Term> span, @Nullable final Set<Term> heads) { if (span != null) { outer: for (final Term term : span.getTargets()) { final Annotation ann = this.annotations.get(term.getId()); URI uri = ann == null ? null : ann.objectURI != null ? ann.objectURI : ann.predicateURI; if (uri == null && "AGV".contains(term.getPos())) { for (final Dep dep : this.document.getDepsFromTerm(term)) { if (dep.getRfunc().equals("VC")) { continue outer; } } uri = emitTerm(term); } if (uri != null) { if (spanProperty != null) { emitFact(opinionID, spanProperty, uri, null, null); } if (headProperty != null && heads != null && heads.contains(term)) { emitFact(opinionID, headProperty, uri, null, null); } } } } }
final String readableHeadSynsetID = WordNet.getReadableSynsetID(headSynsetID); final String headID = MoreObjects.firstNonNull(readableHeadSynsetID, // head.getLemma().toLowerCase()); if ("AGV".contains(modifier.getPos())) { final URI modifierURI = emitTerm(modifier); modifierURIs.add(modifierURI); "(AMOD|NMOD)*"); for (final Iterator<Term> i = terms.iterator(); i.hasNext();) { if (!"AGV".contains(i.next().getPos())) { i.remove();
public List<WF> getWFs() { return word.getWFs(); }
void add(Term term, int index) { terms.add(index, term); for (WF wf : term.getWFs()) { indexAnnotation(term, wf.getId(), termsIndexedByWF); } if (!term.isComponent()) { this.indexBySent(term, term.getSent(), this.termsIndexedBySent); } }
public static String getText(final Iterable<Term> terms) { final StringBuilder builder = new StringBuilder(); boolean atBeginning = true; for (final Term term : Ordering.from(Term.OFFSET_COMPARATOR).sortedCopy(terms)) { final boolean properNoun = term.getMorphofeat().startsWith("NNP"); for (final WF word : term.getWFs()) { builder.append(atBeginning ? "" : " "); builder.append(properNoun ? word.getForm() : word.getForm().toLowerCase()); atBeginning = false; } } return builder.toString(); }