static public String getReferentValueOf3rdPronoun(DEPNode node) { String coref = node.getFeat(DEPLibEn.FEAT_COREF); if (coref == null) return null; if (node.isLemma("his") || node.isLemma("hers") || node.isLemma("its") || node.lemma.startsWith("our") || node.lemma.startsWith("your") || node.lemma.startsWith("their")) return getPossessiveForm(coref); if (node.isLemma("he") || node.isLemma("him") || node.isLemma("she") || node.isLemma("it") || node.isLemma("we") || node.isLemma("us") || node.isLemma("they") || node.isLemma("them")) return coref; if (node.isLemma("her")) return node.isPos(CTLibEn.POS_PRPS) ? getPossessiveForm(coref) : coref; return null; }
static public void convertFirstFormToLowerCase(DEPTree tree) { DEPNode fst = tree.get(1); if (!fst.pos.startsWith(CTLibEn.POS_NNP) && !fst.isLemma(ENPronoun.I)) fst.form = fst.form.toLowerCase(); } }
private void to2ndNumber(DEPNode verb) { if (verb.isPosAny(CTLibEn.POS_VB, CTLibEn.POS_VBP, CTLibEn.POS_VBZ)) { verb.form = verb.isLemma(ENAux.BE) ? ENAux.ARE : verb.lemma; verb.pos = CTLibEn.POS_VBP; } else if (verb.isPosAny(CTLibEn.POS_VBD)) { if (verb.isLemma(ENAux.BE)) verb.form = ENAux.WERE; } }
@Override protected String getHardLabel(DEPNode node) { DEPNode dep; if (node.isLemma(ENPrep.AT)) { if ((dep = rm_deps[node.id]) != null && dep.isPos(CTLibEn.POS_NN) && (ENTime.isTemporalSuffix(dep.lemma))) return SRLLib.ARGM_TMP; } return null; }
/** {@link LGAsk#generateAskFromQuestion(DEPTree, String)}. */ private void set3rdSingularVerbForm(DEPNode verb, DEPNode sbj) { if (sbj.isLemma(ENPronoun.YOU)) { if (verb.isPos(CTLibEn.POS_VBP)) { verb.form = LGVerbEn.get3rdSingularForm(verb.lemma); verb.pos = CTLibEn.POS_VBZ; } } }
/** {@link LGAsk#generateAskFromQuestion(DEPTree, String)}. */ private void setBeVerbForm(DEPNode verb, DEPNode sbj) { if (sbj.isLemma(ENPronoun.YOU)) { if (verb.isPos(CTLibEn.POS_VBD)) verb.form = ENAux.WAS; else if (verb.isPos(CTLibEn.POS_VBP)) { verb.form = ENAux.IS; verb.pos = CTLibEn.POS_VBZ; } } }
/** Called by {@link CPredIdentifier#process(DEPTree)}. */ protected void identify() { DEPNode pred; String label, id; for (i_pred=1; i_pred<t_size; i_pred++) { pred = d_tree.get(i_pred); if (f_xmls[0].isPredicate(pred)) { label = getLabel(); if (label.equals(AbstractModel.LABEL_TRUE)) { if (pred.isLemma("'s")) pred.lemma = "be"; id = pred.lemma+".XX"; pred.addFeat(DEPLib.FEAT_PB, id); } } } }
tree.remove(aux); if (aux.isLemma(ENAux.DO)) else if (aux.isPos(CTLibEn.POS_VBZ)) verb.form = LGVerbEn.get3rdSingularForm(verb.lemma); else if (aux.isPos(CTLibEn.POS_VBP) && sbj.isLemma(ENPronoun.YOU)) if (aux.isLemma(ENAux.BE)) setBeVerbForm(aux, sbj); else if (aux.isLemma(ENAux.HAVE)) set3rdSingularVerbForm(aux, sbj);
/** {@link LGAsk#generateAskFromQuestion(DEPTree, String)}. */ private void convertYouToUser(DEPTree tree, DEPNode head) { if (head.isLemma(ENPronoun.YOU) || head.isLemma(ENPronoun.YOURSELF)) { head.form = head.lemma = USER; head.pos = CTLibEn.POS_NN; matchUserVerb(head); tree.add(tree.indexOf(head), getNode(head, STConstant.THE, STConstant.THE, CTLibEn.POS_DT, DEPLibEn.DEP_DET, null)); } else if (head.isLemma(ENPronoun.YOUR) || head.isLemma(ENPronoun.YOURS)) { int idx = tree.indexOf(head); head.form = head.lemma = USER; head.pos = CTLibEn.POS_NN; tree.add(idx , getNode(head, STConstant.THE, STConstant.THE, CTLibEn.POS_DT, DEPLibEn.DEP_DET, null)); tree.add(idx+2, getNode(head, STConstant.APOSTROPHE_S, STConstant.APOSTROPHE_S, CTLibEn.POS_POS, DEPLibEn.DEP_POSSESSIVE, null)); } for (DEPArc arc : head.getDependents()) convertYouToUser(tree, arc.getNode()); }
private boolean[] getModifierAspects(SRLTree qsTree) { boolean[] b = {false, false, false}; String label; DEPNode arg; for (SRLArc arc : qsTree.getArguments()) { label = SRLLib.getBaseLabel(arc.getLabel()); arg = arc.getNode(); if (arg.isLemma("where") || isLocative(label)) b[0] = true; else if (arg.isLemma("when") || isTemporal(label)) b[1] = true; else if (isManner(label)) b[2] = true; } return b; }
void classifySentenceType(DEPTree tree, IntIntPair count) { int i, size = tree.size(); DEPNode node; String feat; tree.setDependents(); for (i=1; i<size; i++) { node = tree.get(i); feat = node.getFeat(DEPLib.FEAT_SNT); if (node.pos.startsWith("VB")) { if (isImperative(node)) { count.i1++; if (feat == null || !feat.equals("IMP")) { if (node.isLemma("be")) System.out.println(node.id+" "+tree.toStringDEP()+"\n"); count.i2++; } } } } }
private DEPNode getNodeFromSyntacticInfo(DEPNode head, ArgInfo rArg, String delim) { Pair<String,String> p = rArg.popNextSyntacticInfo(); String label = p.o1, lemma = p.o2; DEPNode dep; for (DEPArc arc : head.getDependents()) { dep = arc.getNode(); if (dep.isLemma(lemma) && (arc.isLabel(label) || (label.equals(DEPLibEn.DEP_PREP) && dep.isPos(CTLibEn.POS_IN)))) { if (!rArg.hasSyntacticInfo()) return dep; else return getNodeFromSyntacticInfo(dep, rArg, delim); } } return null; }
/** {@link LGAsk#generateAskFromQuestion(DEPTree, String)}. */ private void relocateAuxiliary(DEPTree tree, DEPNode verb) { List<DEPNode> auxes = new ArrayList<DEPNode>(); DEPNode sbj = null; for (DEPArc arc : verb.getDependents()) { if (arc.isLabel(DEPLibEn.P_AUX)) auxes.add(arc.getNode()); else if (arc.isLabel(DEPLibEn.P_SBJ)) sbj = arc.getNode(); } if (sbj != null) { if (!auxes.isEmpty() && auxes.get(0).id < sbj.id) { relocateAuxiliaryAux(tree, verb, auxes, sbj); } else if (verb.isLemma(ENAux.BE) && verb.id < sbj.id) { tree.remove(verb); tree.add(sbj.getLastNode().id, verb); setBeVerbForm(verb, sbj); } } }
@Deprecated private DEPNode findPredicateInQuestion(SRLTree qsTree, String label, String lemma) { SRLArc qArc = qsTree.getFirstArgument(label); if (qArc != null && qArc.getNode().getFeat(DEPLibEn.FEAT_PB) != null) { return qArc.getNode(); } else { DEPNode arg; for (SRLArc arc : qsTree.getArguments()) { arg = arc.getNode(); if (arg.getFeat(DEPLibEn.FEAT_PB) != null && arg.isLemma(lemma)) return arg; } } return null; }
if (beVerb.isLemma(ENAux.BE) && beVerb.id < lambda.id && (gHead == null || gHead.id < beVerb.id))