private String getSimpleLabel(CTNode C) { if (C.isPTag(CTLibKaist.PTAG_MODP) || CTLibKaist.isAdnoun(C, DELIM_PLUS)) return DEPLibKr.DEP_ADN; if (C.isPTag(CTLibKaist.PTAG_ADVP) || CTLibKaist.isAdverb(C, DELIM_PLUS)) return DEPLibKr.DEP_ADV; if (C.isPTagAny(CTLibKaist.PTAG_IP) || CTLibKaist.isInterjection(C, DELIM_PLUS)) return DEPLibKr.DEP_INTJ; return null; }
// KAIST private String getSpecialLabel(CTNode C) { CTNode d = C.c2d.getDependencyHead(); if (CTLibKaist.isPunctuation(C) || CTLibKaist.isPunctuation(d)) return DEPLibKr.DEP_PUNCT; if (CTLibKaist.isOnlyEJX(C, DELIM_PLUS)) return DEPLibKr.DEP_EJX; if (C.isPTag(CTLibKaist.PTAG_AUXP)) return DEPLibKr.DEP_AUX; if (CTLibKaist.isConjunction(C, DELIM_PLUS)) return DEPLibKr.DEP_CC; if (CTLibKaist.isConjunct(C, DELIM_PLUS)) return DEPLibKr.DEP_CONJ; return null; }
@Override protected String getDEPLabel(CTNode C, CTNode P, CTNode p) { String label; if ((label = getFunctionLabel(C)) != null) return label; if ((label = getSpecialLabel(C)) != null) return label; String[] pTags = CTLibKaist.getLastPOSTags(C, DELIM_PLUS); String pTag = pTags[pTags.length - 1]; if ((label = getRoleLabel(pTag)) != null) return label; if ((label = getSubLabel(pTags)) != null) return label; if ((label = getSimpleLabel(C)) != null) return label; CTNode d = C.c2d.getDependencyHead(); if ((label = getSimpleLabel(d)) != null) return label; if (P.isPTag(CTLibKaist.PTAG_ADJP)) return DEPLibKr.DEP_AMOD; if (P.isPTag(CTLibKaist.PTAG_ADVP)) return DEPLibKr.DEP_ADV; if (P.isPTag(CTLibKaist.PTAG_NP)) return DEPLibKr.DEP_NMOD; if (P.isPTag(CTLibKaist.PTAG_VP)) return DEPLibKr.DEP_VMOD; return DEPLibKr.DEP_DEP; }
@Override protected int getHeadFlag(CTNode child) { if (child.c2d.hasHead()) return -1; if (child.isPTag(CTLibKaist.PTAG_AUXP)) return 1; if (child.isPTag(CTLibKaist.PTAG_IP)) return 2; if (child.hasFTag(CTLibKaist.FTAG_PRN)) return 3; if (CTLibKaist.isOnlyEJX(child, DELIM_PLUS)) return 4; if (CTLibKaist.isPunctuation(child)) return 5; return 0; }
private String getConjunctLabel(CTNode parent, CTNode child) { String label; if (CTLibKaist.isConjunct(child, DELIM_PLUS)) return DEPLibKr.DEP_CONJ; if ((label = getSpecialLabel(child)) != null) return label; if (child.isPTag(CTLibKaist.PTAG_ADVP) && !parent.isPTag(CTLibKaist.PTAG_ADVP)) return DEPLibKr.DEP_ADV; return DEPLibKr.DEP_CONJ; }
/** * If the specific node contains a coordination structure, find the head of each coordination. * * @param curr the specific node to be compared. * @return {@code true} if this node contains a coordination structure. */ private void findConjuncts(HeadRule rule, CTNode curr) { List<CTNode> children = curr.getChildren(); int i, size = children.size(); String label; CTNode child; for (i = 0; i < size; i++) { child = children.get(i); if ((label = getSpecialLabel(child)) != null) child.addFTag(label); else break; } if (CTLibKaist.containsCoordination(children.subList(i, size), DELIM_PLUS)) { for (; i < size; i++) { child = children.get(i); if ((label = getConjunctLabel(curr, child)) != null) child.addFTag(label); } } }