public static List<Term> filterTerms(final Iterable<Term> terms) { final List<Term> result = Lists.newArrayList(); boolean atBeginning = true; for (final Term term : Ordering.from(Term.OFFSET_COMPARATOR).sortedCopy(terms)) { final char pos = Character.toUpperCase(term.getPos().charAt(0)); if (atBeginning && (pos == 'D' || pos == 'P')) { continue; } for (final WF word : term.getWFs()) { final String text = word.getForm(); if (SYMBOLS.contains(text) || !WF_EXCLUSION_PATTERN.matcher(text).matches()) { result.add(term); atBeginning = false; break; } } } return result; }
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 String getRoleset(final Predicate predicate) { final String res = predicate.getTerms().get(0).getPos().equalsIgnoreCase("V") ? RESOURCE_PROPBANK : RESOURCE_NOMBANK; String roleset = null; for (final ExternalRef ref : predicate.getExternalRefs()) { if (res.equalsIgnoreCase(ref.getResource())) { if (ref.getSource() != null) { roleset = ref.getReference(); break; } else if (roleset == null) { roleset = ref.getReference(); } } } return roleset; }
clusters.get(head).add(dep.getFrom()); clusters.get(dep.getFrom()).add(head); } else if ("CO".indexOf(dep.getFrom().getPos()) < 0) { break; // don't include intermediate terms that are not conjunctions or commas
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); } } } } }
if (element instanceof Predicate) { final Predicate predicate = (Predicate) element; final String res = predicate.getTerms().get(0).getPos() .equalsIgnoreCase("V") ? "propbank" : "nombank"; String roleset = null;
if (term.getPos() != null && term.getMorphofeat() != null) { out.append(": pos ").append(term.getPos()).append('/').append(term.getMorphofeat()); 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();
private void applySRLRemoveUnknownPredicates(final KAFDocument document) { // Scan all predicates in the SRL layer for (final Predicate predicate : Lists.newArrayList(document.getPredicates())) { // Determine whether the predicate is a verb and thus which resource to check for> final Term head = document.getTermsHead(predicate.getTerms()); final boolean isVerb = head.getPos().equalsIgnoreCase("V"); final String resource = isVerb ? "propbank" : "nombank"; // Predicate is invalid if its roleset is unknown in NomBank / PropBank for (final ExternalRef ref : NAFUtils.getRefs(predicate, resource, null)) { final String roleset = ref.getReference(); if (isVerb && PropBank.getRoleset(roleset) == null || !isVerb && NomBank.getRoleset(roleset) == null) { document.removeAnnotation(predicate); if (LOGGER.isDebugEnabled()) { LOGGER.debug("Removed " + NAFUtils.toString(predicate) + " with unknown sense '" + roleset + "' in resource " + resource); } break; } } } }
final char pos = Character.toUpperCase(term.getPos().charAt(0)); final Dep dep = document.getDepToTerm(term); final boolean namePart = pos == 'R' && dep != null && dep.getRfunc().toLowerCase().contains("name") && Character.toUpperCase(dep.getFrom().getPos().charAt(0)) == 'R' && document.getEntitiesByTerm(dep.getFrom()).isEmpty(); if (pos != 'R' && pos != 'N' && pos != 'Q' || namePart
if (predTerm.getPos().equalsIgnoreCase("V")) { continue;
final char pos = Character.toUpperCase(modifierTerm.getPos().charAt(0)); final List<Entity> entities = this.document.getEntitiesByTerm(modifierTerm); final Annotation ann = this.annotations.get(modifierTerm.getId());
final char pos = Character.toUpperCase(head.getPos().charAt(0)); if (pos == 'N' || pos == 'V') { this.model.add(mention.uri, KS.LEMMA, this.vf.createLiteral(head.getLemma()));
final char pos = Character.toUpperCase(term.getPos().charAt(0)); if (pos != 'V' && pos != 'N' && pos != 'G' && pos != 'A' || !document.getPredicatesByTerm(term).isEmpty()
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 resource = head.getPos().equalsIgnoreCase("V") ? "propbank" : "nombank";
final boolean isNoun = Character.toUpperCase(term.getPos().charAt(0)) == 'N'; if (isNoun) {
if (this.srlSenseMappingPM) { if (predicate.getTerms().get(0).getPos().equalsIgnoreCase("V")) { final ExternalRef ref = predicate.getExternalRef(NAFUtils.RESOURCE_PROPBANK); pbRoleset = ref == null ? null : PropBank.getRoleset(ref.getReference());
termElem.setAttribute("pos", term.getPos());
termElem.setAttribute("pos", term.getPos());