SRLElement(final SRLElement parent, final Object element, final boolean useProposition) { this.parent = parent; this.element = element; if (useProposition) { final Predicate predicate = (Predicate) element; final Set<Term> termSet = Sets.newHashSet(); termSet.addAll(predicate.getTerms()); for (final Role role : predicate.getRoles()) { termSet.addAll(role.getTerms()); } this.terms = Ordering.from(Term.OFFSET_COMPARATOR).immutableSortedCopy(termSet); } else if (element instanceof Predicate) { this.terms = ((Predicate) element).getTerms(); } else { this.terms = ((Role) element).getTerms(); } this.begin = this.terms.get(0).getOffset(); this.end = endOf(this.terms.get(this.terms.size() - 1)); }
/** * Adds a predicate to the container */ void add(Predicate predicate) { predicates.add(predicate); /* Index by terms */ for (Term term : predicate.getTerms()) { indexAnnotation(predicate, term.getId(), predicatesIndexedByTerm); } this.indexBySent(predicate, predicate.getSpan().getTargets().get(0).getSent(), this.predicatesIndexedBySent); }
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; }
if (element instanceof Predicate) { final Predicate predicate = (Predicate) element; final String res = predicate.getTerms().get(0).getPos() .equalsIgnoreCase("V") ? "propbank" : "nombank"; String roleset = null;
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; } } } }
for (Term predicateTerm : predicate.getTerms()) { fnTerms.put(predicateTerm, fn);
final Term predTerm = predicate.getTerms().get(0); if (predTerm.getPos().equalsIgnoreCase("V")) { continue;
final Term head = document.getTermsHead(predicate.getTerms()); final String expectedLemma = head.getLemma();
Predicate predicate = (Predicate) annotation; predicates.remove(predicate); for (Term term : predicate.getTerms()) { unindexAnnotation(predicate, term.getId(), predicatesIndexedByTerm);
if (head.equals(document.getTermsHead(predicate.getTerms()))) { if (NAFUtils.getRef(predicate, le.getResource(), le.getReference()) == null) { final ExternalRef ref = document.newExternalRef(le.getResource(),
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());