/** Sets semantic heads of the specific dependency tree given the input lines. */ private void setSHeads(List<String[]> lines, DEPTree tree) { int i, headId, size = tree.size(); String heads, label; String[] tmp; DEPNode node; tree.initSHeads(); for (i=1; i<size; i++) { node = tree.get(i); heads = lines.get(i-1)[i_sheads]; if (heads.equals(AbstractColumnReader.BLANK_COLUMN)) continue; for (String head : heads.split(DEPLib.DELIM_HEADS)) { tmp = head.split(DEPLib.DELIM_HEADS_KEY); headId = Integer.parseInt(tmp[0]); label = tmp[1]; node.addSHead(tree.get(headId), label); } } }
arg.addSHead(pred, p.label, fTag);
/** 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; }
/** Called by {@link DEPLibEn#postLabel(DEPTree)}. */ static private void labelReferentOfRelativeClause(DEPNode verb, List<DEPArc> argList) { DEPNode top = getTopVerbChain(verb); DEPNode head = top.getHead(); if (top.isLabel(DEPLibEn.DEP_RCMOD) && !head.containsSHead(verb)) { for (DEPArc arc : argList) { if (arc.isLabel(SRLLib.P_ARG_REF) && isReferentArgument(arc.getNode())) { head.addSHead(verb, SRLLib.getBaseLabel(arc.getLabel())); return; } } } }
private void initPBArgs(DEPTree dTree, CTTree cTree, CTNode cNode) { if (!cNode.isPTag(CTLib.PTAG_TOP)) { DEPNode dNode, sHead; if (cNode.isPhrase()) dNode = getDEPNode(dTree, cNode); else dNode = dTree.get(cNode.getTokenId()+1); for (StringIntPair p : cNode.pbArgs) { sHead = dTree.get(p.i); if (isRefArgument(cNode)) p.s = "R-"+p.s; if (!dNode.containsSHead(sHead) && dNode != sHead) dNode.addSHead(sHead, p.s); } } for (CTNode child : cNode.getChildren()) initPBArgs(dTree, cTree, child); }
head.addSHead(gHead, sp.getLabel());
nNode.addSHead(map.get(oHead.id), sHead.getLabel());