private boolean isCoveredRoot(DependencyNode node) { return isCoveredRoot.get(node.getIndex()); }
private void setPath(DependencyNode node) { nodePath.set(node.getIndex(), true); }
public DependencyNode getLeftSibling() { if (headEdge == null) { return null; } int nodeDepedentPosition = 0; List<DependencyNode> headDependents = getHead().getListOfDependents(); for (int i = 0; i < headDependents.size(); i++) { if (headDependents.get(i).getIndex() == index) { nodeDepedentPosition = i; break; } } return (nodeDepedentPosition > 0) ? headDependents.get(nodeDepedentPosition - 1) : null; }
private boolean leftComplete(DependencyStructure gold, DependencyNode right) throws MaltChainedException { final DependencyNode goldNode = gold.getDependencyNode(right.getIndex()); if (!goldNode.hasLeftDependent()) { return true; } else if (!right.hasLeftDependent()) { return false; } else if (goldNode.getLeftmostDependent().getIndex() == right.getLeftmostDependent().getIndex()) { return true; } return false; }
/** * Gets the shortest pending link between (to or from) the input node and a node to the left of the top of the active stack, * such that the link can be established on the active plane. */ private Edge getFirstPendingLinkOnActivePlane ( TwoPlanarConfig config , DependencyStructure gold ) throws MaltChainedException { return getFirstPendingLinkOnPlane ( config , gold , config.getStackActivityState() == TwoPlanarConfig.FIRST_STACK ? FIRST_PLANE : SECOND_PLANE , config.getActiveStack().peek().getIndex() ); }
/** * Gets the shortest pending link between (to or from) the input node and a node to the left of the top of the inactive stack, * such that the link can be established on the inactive plane. */ private Edge getFirstPendingLinkOnInactivePlane ( TwoPlanarConfig config , DependencyStructure gold ) throws MaltChainedException { return getFirstPendingLinkOnPlane ( config , gold , config.getStackActivityState() == TwoPlanarConfig.FIRST_STACK ? SECOND_PLANE : FIRST_PLANE , config.getInactiveStack().peek().getIndex() ); }
private DependencyNode getShortestNonProjectiveNode(DependencyStructure pdg) throws MaltChainedException { DependencyNode shortestNonProjectiveNode = null; for (int index : pdg.getDependencyIndices()) { if (!pdg.getDependencyNode(index).isProjective() && (shortestNonProjectiveNode == null || nodeRelationLength.get(index) < nodeRelationLength.get(shortestNonProjectiveNode.getIndex()) )) { // || (nodeRelationLength.get(index) == nodeRelationLength.get(shortestNonProjectiveNode.getIndex())))) { shortestNonProjectiveNode = pdg.getDependencyNode(index); } } return shortestNonProjectiveNode; }
private boolean checkRightDependent(DependencyStructure gold, DependencyStructure parseDependencyGraph, int index) throws MaltChainedException { if (gold.getTokenNode(index).getRightmostDependent() == null) { return true; } else if (parseDependencyGraph.getTokenNode(index).getRightmostDependent() != null) { if (gold.getTokenNode(index).getRightmostDependent().getIndex() == parseDependencyGraph.getTokenNode(index).getRightmostDependent().getIndex()) { return true; } } return false; }
private boolean checkRightDependent(DependencyStructure gold, DependencyStructure parseDependencyGraph, int inputPeekIndex) throws MaltChainedException { if (gold.getTokenNode(inputPeekIndex).getRightmostDependent() == null) { return true; } else if (parseDependencyGraph.getTokenNode(inputPeekIndex).getRightmostDependent() != null) { if (gold.getTokenNode(inputPeekIndex).getRightmostDependent().getIndex() == parseDependencyGraph.getTokenNode(inputPeekIndex).getRightmostDependent().getIndex()) { return true; } } return false; }
private boolean checkIfArcExists ( DependencyStructure dg , int index1 , int index2 ) throws MaltChainedException { return dg.getTokenNode(index2).hasHead() && dg.getTokenNode(index2).getHead().getIndex() == index1; }
private boolean checkIfArcExists ( DependencyStructure dg , int index1 , int index2 ) throws MaltChainedException { return dg.getTokenNode(index2).hasHead() && dg.getTokenNode(index2).getHead().getIndex() == index1; }
private int createSwapArray(DependencyNode node, int order) { int o = order; if (node != null) { for (int i=0; i < node.getLeftDependentCount(); i++) { o = createSwapArray(node.getLeftDependent(i), o); } swapArray.set(node.getIndex(), o++); for (int i=node.getRightDependentCount(); i >= 0; i--) { o = createSwapArray(node.getRightDependent(i), o); } } return o; } }
private void deattachCoveredRootsForDeprojectivization(DependencyStructure pdg, SymbolTable deprelSymbolTable) throws MaltChainedException { SymbolTable ppcoveredRootSymbolTable = pdg.getSymbolTables().getSymbolTable("PPCOVERED"); for (int index : pdg.getTokenIndices()) { Edge e = pdg.getDependencyNode(index).getHeadEdge(); if (e.hasLabel(deprelSymbolTable)) { if (e.hasLabel(ppcoveredRootSymbolTable) && ppcoveredRootSymbolTable.getSymbolCodeToString(e.getLabelCode(ppcoveredRootSymbolTable)).equals("#true#")) { pdg.moveDependencyEdge(pdg.getDependencyRoot().getIndex(), pdg.getDependencyNode(index).getIndex()); } } } }
private void deattachCoveredRootsForDeprojectivization(DependencyStructure pdg) throws MaltChainedException { for (int index : pdg.getTokenIndices()) { if (pdg.getDependencyNode(index).getHeadEdge().hasLabel(deprelSymbolTable)) { if (pdg.getDependencyNode(index).getHeadEdge().hasLabel(ppcoveredRootSymbolTable) && ppcoveredRootSymbolTable.getSymbolCodeToString(pdg.getDependencyNode(index).getHeadEdge().getLabelCode(ppcoveredRootSymbolTable)).equals( "#true#")) { pdg.moveDependencyEdge(pdg.getDependencyRoot().getIndex(), pdg.getDependencyNode(index).getIndex()); } } } }
private void deattachCoveredRootsForProjectivization(DependencyStructure pdg) throws MaltChainedException { for (int index : pdg.getTokenIndices()) { if (isCoveredRoot(pdg.getTokenNode(index))) { pdg.moveDependencyEdge(pdg.getDependencyRoot().getIndex(), pdg.getTokenNode(index).getIndex()); } } }
private DependencyNode getDeepestNonProjectiveNode(DependencyStructure pdg) throws MaltChainedException { DependencyNode deepestNonProjectiveNode = null; for (int index : pdg.getDependencyIndices()) { if (!pdg.getDependencyNode(index).isProjective() && (deepestNonProjectiveNode == null || pdg.getDependencyNode(index).getDependencyNodeDepth() > pdg.getDependencyNode(deepestNonProjectiveNode.getIndex()).getDependencyNodeDepth())) { deepestNonProjectiveNode = pdg.getDependencyNode(index); } } return deepestNonProjectiveNode; }