private void getSubcatAux(StringBuilder build, DEPNode node, String type) { build.append(SRLLib.DELIM_SUBCAT); if (type.equals(JointFtrXml.F_POS)) build.append(node.pos); else if (type.equals(JointFtrXml.F_DEPREL)) build.append(node.getLabel()); }
@Override protected boolean isNotHead(DEPNode node) { String label = node.getLabel(); return label != null && DEPLibEn.isAuxiliary(label); }
private String getDependents(List<DEPNode> nodes, String type) { boolean isPos = type.equals("p"); if (!nodes.isEmpty()) { StringBuilder build = new StringBuilder(); for (DEPNode node : nodes) { build.append("_"); if (isPos) build.append(node.pos); else build.append(node.getLabel()); } return build.substring(1); } else return null; }
if (regnodes[i].pos==null) regnodes[i].pos = ANY_POS; if (regnodes[i].getLabel()==null) regnodes[i].setLabel(ANY_DEPREL); + L_REL_DELIM + regnodes[i].getLabel() + R_REL_DELIM + DN_ARC_B + L_TOK_DELIM + regnodes[i].form + R_TOK_DELIM + L_POS_DELIM + regnodes[i].pos + R_POS_DELIM + UP_ARC_B + L_REL_DELIM + regnodes[i].getLabel() + R_REL_DELIM + UP_ARC_A );
public void add(DEPNode node) { Object[] data = new Object[]{node.id, node.form, node.pos, node.getHead().id, node.getLabel()}; DefaultTableModel model = (DefaultTableModel)j_table.getModel(); model.addRow(data); }
if (regnodes[i].pos==null) regnodes[i].pos = ANY_POS; if (regnodes[i].getLabel()==null) regnodes[i].setLabel(ANY_DEPREL); + L_REL_DELIM + regnodes[i].getLabel() + R_REL_DELIM + DN_ARC_B + L_TOK_DELIM + regnodes[i].form + R_TOK_DELIM + L_POS_DELIM + regnodes[i].pos + R_POS_DELIM + UP_ARC_B + L_REL_DELIM + regnodes[i].getLabel() + R_REL_DELIM + UP_ARC_A );
private boolean rerankUnique(StringPrediction prediction, DEPLabel label, DEPNode head, Pattern p, int bIdx, int eIdx) { if (p.matcher(label.deprel).find()) { DEPNode node; int i; for (i=bIdx; i<eIdx; i++) { node = d_tree.get(i); if (node.isDependentOf(head) && p.matcher(node.getLabel()).find()) { prediction.score = -1; return true; } } } return false; }
build.append(head.getLabel());
private void mergeLabels(DEPTree dTree) { int i, size = dTree.size(); DEPNode node; for (Pair<String,Set<String>> p : l_mergeLabels) { for (i=1; i<size; i++) { node = dTree.get(i); if (p.o2.contains(node.getLabel())) node.setLabel(p.o1); } } }
/** Resets dependents of each node in this tree. */ public void resetDependents() { int i, size = size(); DEPNode node, head; for (i=0; i<size; i++) get(i).l_dependents = new ArrayList<DEPArc>(); for (i=1; i<size; i++) { node = get(i); head = node.getHead(); if (head != null) head.addDependent(node, node.getLabel()); } }
return node.getLabel();
return node.getLabel();
return node.getLabel();
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; } } }
/** Splits certain Stanford dependency labels into finer-grained labels. */ private void splitLabels(DEPTree tree) { int i, size = tree.size(); List<DEPNode> list; DEPNode node; tree.setDependents(); for (i=1; i<size; i++) { node = tree.get(i); if (node.isLabel(DEPLibEn.DEP_ADVMOD)) { if (MPLibEn.RE_NEG.matcher(node.form.toLowerCase()).find()) node.setLabel(DEPLibEn.DEP_NEG); } if (node.containsDependent(DEPLibEn.DEP_AUXPASS)) { for (DEPNode child : node.getDependentsByLabels(DEPLibEn.DEP_CSUBJ, DEPLibEn.DEP_NSUBJ)) child.setLabel(child.getLabel()+DEPLibEn.DEP_PASS); } if ((list = node.getDependentsByLabels(DEPLibEn.DEP_DOBJ)).size() > 1) list.get(0).setLabel(DEPLibEn.DEP_IOBJ); } }
counts[2]++; if (gHeads[i].s.equals(node.getLabel()))
uimaNode.setFeats("_"); uimaNode.setHead(uimaNodes.get(clearNode.getHead().id)); uimaNode.setDeprel(clearNode.getLabel()); uimaNode.setPhead(null); uimaNode.setPdeprel("_");
uimaNode.setFeats("_"); uimaNode.setHead(uimaNodes.get(clearNode.getHead().id)); uimaNode.setDeprel(clearNode.getLabel()); uimaNode.setPhead(null); uimaNode.setPdeprel("_");
void checkPosDeprel(DEPTree tree, Prob2DMap mc, Prob2DMap mh) { int i, size = tree.size(); DEPNode node, head; String deprel; for (i=1; i<size; i++) { node = tree.get(i); head = node.getHead(); deprel = node.getLabel(); mc.add(deprel, MPLibEn.toCPOSTag(node.pos)); mh.add(deprel, MPLibEn.toCPOSTag(head.pos)); } }
public StringIntPair[] getDiff(StringIntPair[] heads) { int i, size = size(); DEPNode node, head; StringIntPair[] diff = new StringIntPair[size]; StringIntPair p; for (i=1; i<size; i++) { node = get(i); head = node.getHead(); p = heads[i]; if (head != null && head.id != p.i && !node.isLabel(p.s)) diff[i] = new StringIntPair(node.getLabel(), head.id); else diff[i] = new StringIntPair(null, DEPLib.NULL_ID); } return diff; }