Examples of DependencyNode


Examples of org.maltparserx.core.syntaxgraph.node.DependencyNode

      }
    }
  }
 
  private boolean nodeComplete(DependencyStructure gold, DependencyStructure parseDependencyGraph, int nodeIndex) {
    final DependencyNode goldNode = gold.getTokenNode(nodeIndex);
    final DependencyNode parseNode =  parseDependencyGraph.getTokenNode(nodeIndex);
    if (goldNode.hasLeftDependent()) {
      if (!parseNode.hasLeftDependent()) {
        return false;
      } else if (goldNode.getLeftmostDependent().getIndex() != parseNode.getLeftmostDependent().getIndex()) {
        return false;
      }
    }
    if (goldNode.hasRightDependent()) {
      if (!parseNode.hasRightDependent()) {
        return false;
      } else if (goldNode.getRightmostDependent().getIndex() != parseNode.getRightmostDependent().getIndex()) {
        return false;
      }
    }
    return true;
  }
View Full Code Here

Examples of org.maltparserx.core.syntaxgraph.node.DependencyNode

    }
    return true;
  }
 
  private boolean necessarySwap(DependencyStructure gold, DependencyStructure parse, DependencyNode node, Stack<DependencyNode> input) throws MaltChainedException {
    DependencyNode left = node;
    int index = input.size() - 1;
    if (index < 0) {
      return true;
    }
    DependencyNode right = input.peek();
   
    int rc = -1;
    while (projectiveInterval(parse, left, right)) {
      if (rc == right.getIndex()) {
        return false;
      }
      if (gold.getDependencyNode(node.getIndex()).getHead().getIndex() == right.getIndex()) {
        return !leftComplete(gold, node);
      }
      if (gold.getDependencyNode(right.getIndex()).getHead().getIndex() == node.getIndex()) {
        if (gold.getDependencyNode(right.getIndex()).hasRightDependent()) {
            rc = gold.getDependencyNode(right.getIndex()).getRightmostProperDescendantIndex();
        }
        else {
          return false;
        }
      }
View Full Code Here

Examples of org.maltparserx.core.syntaxgraph.node.DependencyNode

  }
 
  private boolean projectiveInterval(DependencyStructure parse, DependencyNode left, DependencyNode right) throws MaltChainedException {
    final int l = swapArray.get(left.getIndex());
    final int r = swapArray.get(right.getIndex());
    DependencyNode node = null;
    if (l > r) {
      return false;
    } else {
      for (int i = l + 1; i < r; i++) {
        for (int j = 0; j < swapArray.size(); j++) {
          if (swapArray.get(j) == i) {
            node = parse.getDependencyNode(j);
            break;
          }
        }
        while (node.hasHead()) {
          node = node.getHead();
        }
        if (!(node == left || node == right)) {
          return false;
        }
      }
View Full Code Here

Examples of org.maltparserx.core.syntaxgraph.node.DependencyNode

      return true;
    }
  }
 
  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;
  }
View Full Code Here

Examples of org.maltparserx.core.syntaxgraph.node.DependencyNode

        featureValue.setSymbol("#null");
      }
//      featureValue.setKnown(true);
      featureValue.setNullValue(true);     
    } else {
      final DependencyNode node = (DependencyNode)a.getAddress();
      if (!node.isRoot()) {
        if (getSymbolTable() != null && node.hasLabel(getSymbolTable())) {
          featureValue.setIndexCode(node.getLabelCode(getSymbolTable()));
          featureValue.setSymbol(getSymbolTable().getSymbolCodeToString(node.getLabelCode(getSymbolTable())));
//          featureValue.setKnown(getSymbolTable().getKnown(node.getLabelCode(getSymbolTable())));
          featureValue.setNullValue(false);
        } else {
//            featureValue.setCode(0);
//            featureValue.setSymbol("#null");
View Full Code Here

Examples of org.maltparserx.core.syntaxgraph.node.DependencyNode

      featureValue.setNullValue(true);     
    } else {
//      try {
//        a.getAddressClass().asSubclass(org.maltparser.core.syntaxgraph.node.DependencyNode.class);

        final DependencyNode node = (DependencyNode)a.getAddress();
        if (!node.isRoot()) {
          if (node.hasHead()) {
            featureValue.setIndexCode(node.getHeadEdge().getLabelCode(getSymbolTable()));
            featureValue.setSymbol(getSymbolTable().getSymbolCodeToString(node.getHeadEdge().getLabelCode(getSymbolTable())));
//            featureValue.setKnown(getSymbolTable().getKnown(node.getHeadEdge().getLabelCode(getSymbolTable())));
            featureValue.setNullValue(false);
          } else {
            featureValue.setIndexCode(getSymbolTable().getNullValueCode(NullValueId.NO_VALUE));
            featureValue.setSymbol(getSymbolTable().getNullValueSymbol(NullValueId.NO_VALUE));
View Full Code Here

Examples of org.maltparserx.core.syntaxgraph.node.DependencyNode

    // Retrieve the address value
    final AddressValue arg1 = addressFunction1.getAddressValue();
    final AddressValue arg2 = addressFunction2.getAddressValue();
    if (arg1.getAddress() != null && arg1.getAddressClass() == org.maltparserx.core.syntaxgraph.node.DependencyNode.class &&
        arg2.getAddress() != null && arg2.getAddressClass() == org.maltparserx.core.syntaxgraph.node.DependencyNode.class) {
        DependencyNode node1 = (DependencyNode)arg1.getAddress();
        DependencyNode node2 = (DependencyNode)arg2.getAddress();
        try {
      int head1 = Integer.parseInt(node1.getLabelSymbol(column.getSymbolTable()));
      int head2 = Integer.parseInt(node2.getLabelSymbol(column.getSymbolTable()));
      if (!node1.isRoot() && head1 == node2.getIndex()) {
          featureValue.setIndexCode(table.getSymbolStringToCode("LEFT"));
          featureValue.setSymbol("LEFT");
          featureValue.setNullValue(false);
      } else if (!node2.isRoot() && head2 == node1.getIndex()) {
          featureValue.setIndexCode(table.getSymbolStringToCode("RIGHT"));
          featureValue.setSymbol("RIGHT");
          featureValue.setNullValue(false);     
      } else {
          featureValue.setIndexCode(table.getNullValueCode(NullValueId.NO_NODE));
View Full Code Here

Examples of org.maltparserx.core.syntaxgraph.node.DependencyNode

   
    if (a.getAddress() == null) {
      featureValue.update(column.getSymbolTable().getNullValueCode(NullValueId.NO_NODE),
          column.getSymbolTable().getNullValueSymbol(NullValueId.NO_NODE), true, 1);
    } else {
        final DependencyNode node = (DependencyNode)a.getAddress();
       
        if (!node.isRoot()) {
          int indexCode = node.getLabelCode(column.getSymbolTable());
          String symbol = column.getSymbolTable().getSymbolCodeToString(indexCode);
          if (column.getType() == ColumnDescription.STRING) {
            featureValue.update(indexCode, symbol, false, 1);
          } else {
            castFeatureValue(symbol);
View Full Code Here

Examples of org.maltparserx.core.syntaxgraph.node.DependencyNode

    setGuideName("ArcStandard");
  }
 
  public GuideUserAction predict(DependencyStructure gold, ParserConfiguration config) throws MaltChainedException {
    NivreConfig nivreConfig = (NivreConfig)config;
    DependencyNode stackPeek = nivreConfig.getStack().peek();
    int stackPeekIndex = stackPeek.getIndex();
    int inputPeekIndex = nivreConfig.getInput().peek().getIndex();
   
    if (!nivreConfig.isAllowRoot() && stackPeek.isRoot()) {
      return updateActionContainers(ArcStandard.SHIFT, null);
    }
    if (!stackPeek.isRoot() && gold.getTokenNode(stackPeekIndex).getHead().getIndex() == inputPeekIndex) {
      return updateActionContainers(ArcStandard.LEFTARC, gold.getTokenNode(stackPeekIndex).getHeadEdge().getLabelSet());
    } else if (gold.getTokenNode(inputPeekIndex).getHead().getIndex() == stackPeekIndex && checkRightDependent(gold, nivreConfig.getDependencyGraph(), inputPeekIndex)) {
      return updateActionContainers(ArcStandard.RIGHTARC, gold.getTokenNode(inputPeekIndex).getHeadEdge().getLabelSet());
    } else {
      return updateActionContainers(ArcStandard.SHIFT, null);
View Full Code Here

Examples of org.maltparserx.core.syntaxgraph.node.DependencyNode

      address.setAddress(null);
    } else {
//      try {
//        a.getAddressClass().asSubclass(org.maltparser.core.syntaxgraph.node.DependencyNode.class);
   
        final DependencyNode node = (DependencyNode)a.getAddress();
        if (subFunction == DGraphSubFunction.HEAD && !node.isRoot()) {
          address.setAddress(node.getHead());
        } else if (subFunction == DGraphSubFunction.LDEP) {
          address.setAddress(node.getLeftmostDependent());
        } else if (subFunction == DGraphSubFunction.RDEP) {
          address.setAddress(node.getRightmostDependent());
        } else if (subFunction == DGraphSubFunction.RDEP2) {
          // To emulate the behavior of MaltParser 0.4 (bug)
          if (!node.isRoot()) {
            address.setAddress(node.getRightmostDependent());
          } else {
            address.setAddress(null);
          }
        } else if (subFunction == DGraphSubFunction.LSIB) {
          address.setAddress(node.getSameSideLeftSibling());
        } else if (subFunction == DGraphSubFunction.RSIB) {
          address.setAddress(node.getSameSideRightSibling());
        } else if ((subFunction == DGraphSubFunction.PRED || subFunction == DGraphSubFunction.SUCC) && node instanceof TokenNode) {
          final TokenNode tokenNode = (TokenNode)node;
          if (subFunction == DGraphSubFunction.PRED) {
            address.setAddress(tokenNode.getPredecessor());
          } else if (subFunction == DGraphSubFunction.SUCC) {
            address.setAddress(tokenNode.getSuccessor());
          }
        } else if (subFunction == DGraphSubFunction.ANC) {
          address.setAddress(node.getAncestor());
        } else if (subFunction == DGraphSubFunction.PANC) {
          address.setAddress(node.getProperAncestor());
        } else if (subFunction == DGraphSubFunction.LDESC) {
          address.setAddress(node.getLeftmostDescendant());
        } else if (subFunction == DGraphSubFunction.PLDESC) {
          address.setAddress(node.getLeftmostProperDescendant());
        } else if (subFunction == DGraphSubFunction.RDESC) {
          address.setAddress(node.getRightmostDescendant());
        } else if (subFunction == DGraphSubFunction.PRDESC) {
          address.setAddress(node.getRightmostProperDescendant());
        } else {
          address.setAddress(null);
        }
//      } catch (ClassCastException e) {
//        address.setAddress(null);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.