/** Called by {@link AbstractPOSTagger#getLabel()}. */ private String getAutoLabel(StringFeatureVector vector) { Pair<StringPrediction,StringPrediction> ps = s_models[0].predictTwo(vector); StringPrediction fst = ps.o1; StringPrediction snd = ps.o2; if (fst.score - snd.score < 1) d_tree.get(i_input).addFeat(DEPLib.FEAT_POS2, snd.label); return fst.label; }
private void addRolesets(CTTree cTree, DEPTree dTree, List<PBInstance> instances) { if (instances == null) return; DEPNode pred; for (PBInstance inst : instances) { if (isPBSkip(inst, cTree)) continue; pred = dTree.get(cTree.getTerminal(inst.predId).getTokenId()+1); pred.addFeat(DEPLib.FEAT_PB, inst.roleset); if (s_language.equals(AbstractReader.LANG_EN)) pred.lemma = inst.roleset.substring(0, inst.roleset.lastIndexOf(".")); } }
private void addWordSenses(CTTree cTree, DEPTree dTree, List<StringIntPair> p, String key) { if (p == null) return; DEPNode node; for (StringIntPair sense : p) { node = dTree.get(cTree.getTerminal(sense.i).getTokenId()+1); node.addFeat(key, sense.s); } }
/** Called by {@link CSenseClassifier#processAux()}. */ protected void classify() { String cue = (i_flag == FLAG_DECODE && s_key.equals(DEPLib.FEAT_VN)) ? DEPLib.FEAT_PB : s_key; DEPNode pred; String sense; for (i_pred=1; i_pred<t_size; i_pred++) { pred = d_tree.get(i_pred); if (pred.getFeat(cue) != null) { if ((sense = m_senses.get(pred.lemma)) == null) { if (m_lemmas.containsKey(pred.lemma)) sense = getLabel(m_lemmas.get(pred.lemma)); else if (s_key.equals(DEPLib.FEAT_PB)) sense = pred.lemma+".01"; else if (s_key.equals(DEPLib.FEAT_VN)) sense = "unknown"; } pred.addFeat(s_key, sense); } } }
@Override public void process(DEPTree tree) { int i, size = tree.size(); DEPNode node; tree.setDependents(); for (i=1; i<size; i++) { node = tree.get(i); if (isMainVerb(node)) { if (isInterrogative(node)) node.addFeat(DEPLib.FEAT_SNT, CTLibEn.FTAG_INT); else if (isImperative(node)) node.addFeat(DEPLib.FEAT_SNT, CTLibEn.FTAG_IMP); } } }
/** 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); } } } }
/** Called by {@link CRolesetClassifier#processAux()}. */ protected void classify() { DEPNode pred; String roleset; for (i_pred=1; i_pred<t_size; i_pred++) { pred = d_tree.get(i_pred); if (pred.getFeat(DEPLib.FEAT_PB) != null) { if ((roleset = m_rolesets.get(pred.lemma)) == null) { if (m_lemmas.containsKey(pred.lemma)) roleset = getLabel(m_lemmas.get(pred.lemma)); else roleset = pred.lemma+".01"; } pred.addFeat(DEPLib.FEAT_PB, roleset); } } }
private void resetVerbPOSTag(DEPNode head, DEPNode dep) { String p2 = head.getFeat(DEPLib.FEAT_POS2); if (p2 != null && (MPLibEn.isNoun(head.pos) || head.isPos(CTLibEn.POS_IN)) && ((MPLibEn.isVerb(p2) || p2.equals(CTLibEn.POS_UH)))) { if (dep.isLabel(DEPLibEn.DEP_DOBJ) || DEPLibEn.isAuxiliary(dep.getLabel()) || dep.isLabel(DEPLibEn.DEP_PRT) || dep.isLabel(DEPLibEn.DEP_ACOMP))// || DEPLibEn.isSubject(dep.getLabel()) || dep.equals(DEPLibEn.DEP_EXPL)) || dep.isLabel(DEPLibEn.DEP_AGENT) || dep.isLabel(DEPLibEn.DEP_ATTR) || dep.isLabel(DEPLibEn.DEP_IOBJ))) { if (p2.equals(CTLibEn.POS_UH)) head.addFeat(DEPLib.FEAT_POS2, CTLibEn.POS_VB); n_2ndPos[head.id] += 1d; } } }
node.addFeat(DEPLib.FEAT_GPOS, tmp[i_gpos]);
node.addFeat(DEPLib.FEAT_VN, UTCollection.toString(vnclss, DEPFeat.DELIM_VALUES));