private void leftArc(DEPNode lambda, DEPNode beta, String deprel) { lambda.setHead(beta, deprel); }
private void rightArc(DEPNode lambda, DEPNode beta, String deprel) { beta.setHead(lambda, deprel); }
private void removeDependents(DEPNode root, DEPNode verb) { List<DEPArc> remove = new ArrayList<DEPArc>(); for (DEPArc arc : verb.getDependents()) { if (arc.isLabel(P_REMOVE)) { arc.getNode().setHead(root); remove.add(arc); } } verb.removeDependents(remove); }
public void appendHeads(StringIntPair[] heads) { int i, size = size(); StringIntPair p; for (i=1; i<size; i++) { p = heads[i]; if (p.i != DEPLib.NULL_ID) get(i).setHead(get(p.i), p.s); } }
public void updateTree(int row, int column) { DEPNode node = d_tree.get(row+1); Object value = j_table.getValueAt(row, column); if (column == 2) { node.pos = (String)value; } else if (column == 3) { int headId = Integer.parseInt((String)value); DEPNode head = d_tree.get(headId); if (head != null) node.setHead(head); } else if (column == 4) { node.setLabel((String)value); } } }
/** Adds dependency heads. */ private void addDEPHeads(DEPTree dTree, CTTree cTree) { int currId, headId, size = dTree.size(), rootCount = 0; DEPNode dNode; CTNode cNode; String label; for (currId=1; currId<size; currId++) { dNode = dTree.get(currId); cNode = cTree.getToken(currId-1); headId = cNode.c2d.d_head.getTokenId() + 1; if (currId == headId) // root { dNode.setHead(dTree.get(DEPLib.ROOT_ID), DEPLibKr.DEP_ROOT); rootCount++; } else { label = cNode.c2d.s_label; dNode.setHead(dTree.get(headId), label); } } if (rootCount > 1) System.err.println("Warning: multiple roots exist"); } }
/** Called by {@link DEPLibEn#postLabel(DEPTree)}. */ static private boolean relinkReferent(DEPNode verb) { Pair<DEPNode,SRLArc> c = getFirstRelativizer(verb); if (c == null) return false; Pair<DEPNode,SRLArc> p = getLastPrepositionWithoutDependent(verb); if (p == null) return false; DEPNode comp = c.o1; comp.setHead(p.o1, DEP_POBJ); comp.removeSHead(c.o2); SRLLib.toReferentArgument(p.o2); return true; }
deprel = tmp[i_deprel]; node.setHead(tree.get(headId), deprel);
public void projectivize() { IntArrayList ids = new IntArrayList(); int i, size = size(); DEPNode nonProj; for (i=1; i<size; i++) ids.add(i); while ((nonProj = getSmallestNonProjectiveArc(ids)) != null) nonProj.setHead(nonProj.getHead().getHead(), DEPLib.DEP_NON_PROJ); }
/** Called by {@link LGAsk#generateQuestionFromAsk(DEPTree, String)}. */ private DEPNode getNode(DEPNode head, String form, String lemma, String pos, String deprel, String label) { DEPNode aux = new DEPNode(0, form, lemma, pos, new DEPFeat()); aux.initXHeads(); aux.initSHeads(); aux.setHead(head, deprel); if (label != null) aux.addSHead(head, label); return aux; }
private boolean postParsePP(DEPNode node) { DEPNode head = node.getHead(); if (head == null) return false; DEPNode gHead = head.getHead(); if (gHead == null) return false; DEPNode ggHead = gHead.getHead(); if (ggHead == null) return false; if (node.id < ggHead.id && ggHead.id < gHead.id && gHead.id < head.id && head.isPos(CTLibEn.POS_IN) && MPLibEn.isNoun(gHead.pos) && MPLibEn.isVerb(ggHead.pos)) { head.setHead(ggHead); return true; } return false; }
/** {@link LGAsk#generateAskFromQuestion(DEPTree, String)}. */ private void addPrefix(DEPTree tree, DEPNode verb, DEPNode ref) { DEPNode ask = getNode(tree.get(0), "Ask", "ask", CTLibEn.POS_VB, DEPLibEn.DEP_ROOT, null); verb.setHead(ask); tree.add(1, ask); if (ref == null && !hasRelativizer(tree) && !DEPLibEn.containsRelativizer(verb)) { DEPNode complm = getNode(verb, "whether", "whether", CTLibEn.POS_IN, DEPLibEn.DEP_COMPLM, null); tree.add(2, complm); } }
public void resetHeads(StringIntPair[] heads) { int i, size = size(), len = heads.length; StringIntPair head; DEPNode node; for (i=1; i<len && i<size; i++) { node = get(i); head = heads[i]; if (head.i == DEPLib.NULL_ID) node.clearHead(); else node.setHead(get(head.i), head.s); } for (i=len; i<size; i++) get(i).clearHead(); }
/** Called by {@link LGAsk#generateQuestionFromAsk(DEPTree, String)}. */ private void resetDEPTreePost(DEPTree tree, DEPNode root) { root.setHead(tree.get(0), DEPLibEn.DEP_ROOT); String end = STPunct.QUESTION_MARK; String vtype; if ((vtype = root.getFeat(DEPLib.FEAT_VERB_TYPE)) != null && vtype.equals(NON_FINITE)) { tree.add(1, getNode(root, PLEASE, PLEASE, CTLibEn.POS_UH, DEPLibEn.DEP_INTJ, SRLLib.ARGM_DIS)); end = STPunct.PERIOD; } DEPNode last = root.getLastNode(); if (last.isPos(CTLibEn.POS_PERIOD)) { last.form = end; last.lemma = end; } else tree.add(getNode(root, end, end, CTLibEn.POS_PERIOD, DEPLibEn.DEP_PUNCT, null)); }
public DEPTree getNullTree() { DEPTree tree = new DEPTree(); DEPNode dummy = new DEPNode(1, "NULL", "NULL", "NULL", new DEPFeat()); dummy.setHead(tree.get(0), "NULL"); tree.add(dummy); tree.initXHeads(); tree.initSHeads(); return tree; }
private DEPTree getNullTree() { DEPTree tree = new DEPTree(); DEPNode dummy = new DEPNode(1, "NULL", "NULL", "NULL", new DEPFeat()); dummy.setHead(tree.get(0), "NULL"); tree.add(dummy); tree.initXHeads(); tree.initSHeads(); return tree; }
node.setHead(tree.get(0), DEPLibEn.DEP_ROOT);
prep.setHead(gHead);