示例#1
0
  public IDEPTreeDatum getDEPTreeDatum(
      IDEPTreeDatumFactory treeFactory, IDEPNodeDatumFactory nodeFactory) {
    IDEPTreeDatum datum = treeFactory.createDEPTreeDatum();
    List<IDEPNodeDatum> nodeData = Lists.newArrayList();
    int i, size = size();
    DEPNode node;

    for (i = 1; i < size; i++) {
      node = get(i);
      nodeData.add(node.getDEPNodeDatum(nodeFactory));
    }

    datum.setDEPNodeData(nodeData);
    return datum;
  }
示例#2
0
  public static DEPTree buildFrom(IDEPTreeDatum treeDatum) {
    List<IDEPNodeDatum> nodeData = treeDatum.getDEPNodeData();
    DEPTree tree = new DEPTree();
    int i, size = nodeData.size();
    IDEPNodeDatum nd;
    DEPNode node;

    for (i = 0; i < size; i++) {
      nd = nodeData.get(i);
      tree.add(
          new DEPNode(
              nd.getID(),
              nd.getForm(),
              nd.getLemma(),
              nd.getPOS(),
              nd.getNamedEntity(),
              new DEPFeat(nd.getFeats())));
    }

    for (i = 0; i < size; i++) {
      nd = nodeData.get(i);
      node = tree.get(i + 1);

      node.initSHeads();
      node.setHead(new DEPArc(tree, nd.getSyntacticHead()));
      node.addSHeads(DEPLib.getSRLArcs(tree, nd.getSemanticHeads()));
    }

    tree.resetDependents();
    return tree;
  }