Package org.maltparserx.core.syntaxgraph.edge

Examples of org.maltparserx.core.syntaxgraph.edge.Edge


  protected void copyEdges(DependencyStructure source, DependencyStructure target) throws MaltChainedException {
    for (int index : source.getTokenIndices()) {
      DependencyNode snode = source.getTokenNode(index);
     
      if (snode.hasHead()) {
        Edge s = snode.getHeadEdge();
        Edge t = target.addDependencyEdge(s.getSource().getIndex(), s.getTarget().getIndex());
       
        for (SymbolTable table : s.getLabelTypes()) {
          t.addLabel(table, s.getLabelSymbol(table));
        }
      }
    }
  }
View Full Code Here


      for (SymbolTable table : gnode.getLabelTypes()) {
        pnode.addLabel(table, gnode.getLabelSymbol(table));
      }
     
      if (gnode.hasHead()) {
        Edge s = gnode.getHeadEdge();
        Edge t = dependencyGraph.addDependencyEdge(s.getSource().getIndex(), s.getTarget().getIndex());
       
        for (SymbolTable table : s.getLabelTypes()) {
          t.addLabel(table, s.getLabelSymbol(table));
        }
      }
    }
    for (SymbolTable table : source.getDefaultRootEdgeLabels().keySet()) {
      dependencyGraph.setDefaultRootEdgeLabel(table, source.getDefaultRootEdgeLabelSymbol(table));
View Full Code Here

 
  public void apply(GuideUserAction currentAction, ParserConfiguration configuration) throws MaltChainedException {
    final StackConfig config = (StackConfig)configuration;
    final Stack<DependencyNode> stack = config.getStack();
    currentAction.getAction(actionContainers);
    Edge e = null;
    DependencyNode head = null;
    DependencyNode dep = null;
    switch (transActionContainer.getActionCode()) {
    case LEFTARC:
      head = stack.pop();
View Full Code Here

                    } else {
                      parent = phraseStructure.addNonTerminalNode(index-START_ID_OF_NONTERMINALS+1);
                    }
                    nonterminals.put(index,parent);
                  }
                  Edge e = phraseStructure.addPhraseStructureEdge(parent, child);
                  syntaxGraph.addLabel(e, edgelabelTableName.toString(), edgelabelSymbol.toString());
                } else if (column.getCategory() == ColumnDescription.SECONDARY_EDGE_LABEL && child != null) {
                  if (secedgecounter % 2 == 0) {
                    edgelabelSymbol.setLength(0);
                    edgelabelSymbol.append((i == n - 1)?line.substring(start):line.substring(start, i));
                    secedgecounter++;
                  } else {
                    int index = Integer.parseInt((i == n - 1)?line.substring(start):line.substring(start, i));
                    if (index == 0) {
                      parent = phraseStructure.getPhraseStructureRoot();
                    } else if (index < START_ID_OF_NONTERMINALS) {
                      parent = phraseStructure.getTokenNode(index);
                    } else {
                      parent = nonterminals.get(index);
                      if (parent == null) {
                        parent = phraseStructure.addNonTerminalNode(index-START_ID_OF_NONTERMINALS+1);
                        nonterminals.put(index,parent);
                      }
                    }
                    Edge e = phraseStructure.addSecondaryEdge(parent, child);
                    e.addLabel(column.getSymbolTable(), edgelabelSymbol.toString());
                    secedgecounter++;
                  }
                }
                start = i + 1;
              }
            }
          } else { // Terminal
            Iterator<ColumnDescription> columns = dataFormatInstance.iterator();
            ColumnDescription column = null;
           
            currentTerminalSize++;
            child = syntaxGraph.addTokenNode(currentTerminalSize);
            char[] lineChars = line.toCharArray();
            int start = 0;
            int secedgecounter = 0;
            for (int i = 0, n = lineChars.length; i < n; i++) {
              if (lineChars[i] == '\t' && start == i) {
                start++;
              } else if (lineChars[i] == '\t' || i == n - 1) {
                if (columns.hasNext()) {
                  column = columns.next();
                }
                if (column.getCategory() == ColumnDescription.INPUT && child != null) {
                  syntaxGraph.addLabel(child, column.getName(), (i == n - 1)?line.substring(start):line.substring(start, i));
                } else if (column.getCategory() == ColumnDescription.PHRASE_STRUCTURE_EDGE_LABEL && child != null) { // && column.getName().equals("EDGELABEL")) {
                  edgelabelSymbol.setLength(0);
                  edgelabelSymbol.append((i == n - 1)?line.substring(start):line.substring(start, i));
                  edgelabelTableName.setLength(0);
                  edgelabelTableName.append(column.getName());
                } else if (column.getCategory() == ColumnDescription.PHRASE_STRUCTURE_NODE_LABEL && child != null) {
                  int index = Integer.parseInt((i == n - 1)?line.substring(start):line.substring(start, i));
                  parent = nonterminals.get(index);
                  if (parent == null) {
                    if (index == 0) {
                      parent = phraseStructure.getPhraseStructureRoot()
                    } else {
                      parent = phraseStructure.addNonTerminalNode(index-START_ID_OF_NONTERMINALS+1);
                    }
                    nonterminals.put(index,parent);
                  }

                  Edge e = phraseStructure.addPhraseStructureEdge(parent, child);
                  syntaxGraph.addLabel(e, edgelabelTableName.toString(), edgelabelSymbol.toString());
                } else if (column.getCategory() == ColumnDescription.SECONDARY_EDGE_LABEL && child != null) {
                  if (secedgecounter % 2 == 0) {
                    edgelabelSymbol.setLength(0);
                    edgelabelSymbol.append((i == n - 1)?line.substring(start):line.substring(start, i));
                    secedgecounter++;
                  } else {
                    int index = Integer.parseInt((i == n - 1)?line.substring(start):line.substring(start, i));
                    if (index == 0) {
                      parent = phraseStructure.getPhraseStructureRoot();
                    } else if (index < START_ID_OF_NONTERMINALS) {
                      parent = phraseStructure.getTokenNode(index);
                    } else {
                      parent = nonterminals.get(index);
                      if (parent == null) {
                        parent = phraseStructure.addNonTerminalNode(index-START_ID_OF_NONTERMINALS+1);
                        nonterminals.put(index,parent);
                      }
                    }
                    Edge e = phraseStructure.addSecondaryEdge(parent, child);
                    e.addLabel(column.getSymbolTable(), edgelabelSymbol.toString());
                    secedgecounter++;
                  }
                }
                start = i + 1;
              }
View Full Code Here

        close();
        throw new MaltChainedException("Bracket Reader error: could not create a terminal node. ");
      }

      terminalCounter++;
      Edge e = null;

      if (parent != null) {
        e = phraseStructure.addPhraseStructureEdge(parent, (PhraseStructureNode)t);
      } else {
        close();
        throw new MaltChainedException("Bracket Reader error: could not find the parent node. ");
      }

      int start = begin;

      Iterator<String> inputColumnsIterator = inputColumns.keySet().iterator();
      Iterator<String> edgeLabelsColumnsIterator = edgeLabelColumns.keySet().iterator();
      boolean noneNode = false;
      boolean edgeLabels = false;
      for (int i = begin; i < end; i++) {
        if (input.charAt(i) == EDGELABEL_SEPARATOR || (input.charAt(i) == INPUT_SEPARATOR
            // Start BracketProgLangReader
            && (i == begin || input.charAt(i - 1) != '\\')
            // end BracketProgLangReader 
          ) || i == end - 1) {
          if (i == begin && input.charAt(i) == EDGELABEL_SEPARATOR) {
            noneNode = true;
          } else if (start == begin) {
            if ((noneNode && input.charAt(i) != EDGELABEL_SEPARATOR) || !noneNode) {
              if (inputColumnsIterator.hasNext()) {
                t.addLabel(inputColumns.get(inputColumnsIterator.next()).getSymbolTable(),
                   
                    // Start BracketProgLangReader
                    decodeString(
                    // end BracketProgLangReader
                    (i == end - 1)?input.substring(start,end):input.substring(start, i)
                    // Start BracketProgLangReader
                    )
                    // end BracketProgLangReader   
                    );
              }
              start = i + 1;
              if (input.charAt(i) == EDGELABEL_SEPARATOR) {
                edgeLabels = true;
              }
            }
          } else if (edgeLabels && e != null) {
            if (edgeLabelsColumnsIterator.hasNext()) {
              e.addLabel(edgeLabelColumns.get(edgeLabelsColumnsIterator.next()).getSymbolTable(), (i == end - 1)?input.substring(start,end):input.substring(start, i));
            }
            start = i + 1;
            if (input.charAt(i) == INPUT_SEPARATOR
                // Start BracketProgLangReader
                && (i == begin || input.charAt(i - 1) != '\\')
                // end BracketProgLangReader   
            ) {
              edgeLabels = false;
            }
          } else if (input.charAt(i) == EDGELABEL_SEPARATOR && i != end - 1 && (input.charAt(i+1) != INPUT_SEPARATOR
              // Start BracketProgLangReader
              && (i == begin || input.charAt(i - 1) != '\\')
              // end BracketProgLangReader
              )
          ) { 
          } else {
            if (inputColumnsIterator.hasNext()) {
              t.addLabel(inputColumns.get(inputColumnsIterator.next()).getSymbolTable(), (i == end - 1)?input.substring(start,end):input.substring(start, i));
            }
            start = i + 1;
          }
        }
      }
    } else {
      PhraseStructureNode nt;
      Edge e = null;
      if (parent == null) {
        nt = phraseStructure.getPhraseStructureRoot();
      } else {
        nt = phraseStructure.addNonTerminalNode(nonTerminalCounter);
        if (nt == null) {
          close();
          throw new MaltChainedException("Bracket Reader error: could not create a nonterminal node. ");
        }
        nonTerminalCounter++;

        e = phraseStructure.addPhraseStructureEdge(parent, nt);
      }
      Iterator<String> phraseLabelColumnsIterator = phraseLabelColumns.keySet().iterator();
      Iterator<String> edgeLabelsColumnsIterator = edgeLabelColumns.keySet().iterator();
      int newbegin = begin;
      int start = begin;
     
      for (int i = begin; i < index; i++) {
        if (input.charAt(i) == EDGELABEL_SEPARATOR || i == index - 1) {
          if (start == newbegin) {
            if (phraseLabelColumnsIterator.hasNext()) {
              nt.addLabel(phraseLabelColumns.get(phraseLabelColumnsIterator.next()).getSymbolTable(), (i == index - 1)?input.substring(start,index):input.substring(start, i));
            }
            start = i + 1;
          } else if (e != null) {
            if (edgeLabelsColumnsIterator.hasNext()) {
              e.addLabel(edgeLabelColumns.get(edgeLabelsColumnsIterator.next()).getSymbolTable(), (i == index - 1)?input.substring(start,index):input.substring(start, i));
            }
            start = i + 1;
          }
        } else if (input.charAt(i) == BLANK) {
          start++;
View Full Code Here

              } else {

                child = phraseStructure.getNonTerminalNode(childid-START_ID_OF_NONTERMINALS+1);
              }

              Edge e = phraseStructure.addPhraseStructureEdge(parent, child);
              SortedMap<String, SymbolTable> inputTables = dataFormatInstance.getPhraseStructureEdgeLabelSymbolTables();
              for (String name : inputTables.keySet()) {
                e.addLabel(inputTables.get(name), reader.getAttributeValue(null, name.toLowerCase()));
              }
            } else if (reader.getLocalName().equals("edgelabel")) { // edgelabel
//              domain = Domain.EL;
            }
          } else if (reader.getLocalName().charAt(0) == 'n') {
            // n -> nt, nonterminals, name
            if (reader.getLocalName().length() == 2) { // nt
              final String id = reader.getAttributeValue(null, "id");
              if (graphRootID.length() == id.length() && graphRootID.toString().equals(id)) {
                parent = phraseStructure.getPhraseStructureRoot();
              } else {
                int index = id.indexOf('_');
                if (index != -1) {
                  parent = phraseStructure.addNonTerminalNode(Integer.parseInt(id.substring(index+1))-START_ID_OF_NONTERMINALS+1);
                }
              }
              SortedMap<String, SymbolTable> inputTables = dataFormatInstance.getPhraseStructureNodeLabelSymbolTables();
              for (String name : inputTables.keySet()) {
                parent.addLabel(inputTables.get(name), reader.getAttributeValue(null, name.toLowerCase()));
              }
            } else if (reader.getLocalName().equals("name")) { // name
//              elementContent.setLength(0);
//              collectChar = true;
            }
          } else if (reader.getLocalName().charAt(0) == 't') {
            // t -> t, terminals
            if (reader.getLocalName().length() == 1) { // t
              SortedMap<String, SymbolTable> inputTables = dataFormatInstance.getInputSymbolTables();
              child = syntaxGraph.addTokenNode();
              for (String name : inputTables.keySet()) {
                child.addLabel(inputTables.get(name), reader.getAttributeValue(null, name.toLowerCase()));
              }
            }
          } else if (reader.getLocalName().charAt(0) == 's') {
            // s -> subcorpus, secedge, s, secedgelabel
            if (reader.getLocalName().length() == 1) { // s
              String id = reader.getAttributeValue(null, "id");
              boolean indexable = false;
              int index = -1;
              if (id != null && id.length() > 0) {
                for (int i = 0, n = id.length(); i < n; i++) {
                  if (Character.isDigit(id.charAt(i))) {
                    if (index == -1) {
                      index = i;
                    }
                    indexable = true;
                  }
                }
              }
              if (indexable) {
                phraseStructure.setSentenceID(Integer.parseInt(id.substring(index)));
              } else {
                phraseStructure.setSentenceID(sentenceCount+1);
              }
            }
          } else if (reader.getLocalName().charAt(0) == 'v') {
            // v -> variable, value
//            if (reader.getLocalName().equals("value")) {
//              valueName.setLength(0);
//              valueName.append(reader.getAttributeValue(null, "name"));
//              elementContent.setLength(0);
//              collectChar = true;
//            }
          } else {
//             a -> annotation, author
//             b -> body
//             c -> corpus
//             d -> date, description,
//             f -> feature, format
//             g -> graph
//             h -> head, history
//             m -> matches, match
            if (reader.getLocalName().equals("graph")) {
              graphRootID.setLength(0);
              graphRootID.append(reader.getAttributeValue(null, "root"));
            } else  if (reader.getLocalName().equals("corpus")) {
//              header.setCorpusID(reader.getAttributeValue(null, "id"));
//              header.setCorpusID(reader.getAttributeValue(null, "version"));
            } else if (reader.getLocalName().equals("feature")) {
//              if (header != null) {
//                currentFeatureName.setLength(0);
//                currentFeatureName.append(reader.getAttributeValue(null, "name"));
//                header.addFeature(reader.getAttributeValue(null, "name"), reader.getAttributeValue(null, "domain"));
//              }
//              domain = Domain.valueOf(reader.getAttributeValue(null, "domain"));
            } else if (reader.getLocalName().equals("secedgelabel")) {
//              domain = Domain.SEL;
            } else if (reader.getLocalName().equals("author")) {
//              elementContent.setLength(0);
//              collectChar = true;
            } else if (reader.getLocalName().equals("date")) {
//              elementContent.setLength(0);
//              collectChar = true;
            } else if (reader.getLocalName().equals("description")) {
//              elementContent.setLength(0);
//              collectChar = true;
            } else if (reader.getLocalName().equals("format")) {
//              elementContent.setLength(0);
//              collectChar = true;
            } else if (reader.getLocalName().equals("history")) {
//              elementContent.setLength(0);
//              collectChar = true;
            }
          }
        } else if (event == XMLStreamConstants.END_ELEMENT) {
          if (reader.getLocalName().length() == 0) {
            continue;
          }
          if (reader.getLocalName().charAt(0) == 'e') {
            // e -> edge, edgelabel
          } else if (reader.getLocalName().charAt(0) == 'n') {
            // n -> nt, nonterminals, name
            if (reader.getLocalName().equals("nt")) {
              ntid.setLength(0);
            }
            else if (reader.getLocalName().equals("nonterminals")) {
              if (phraseStructure.nTokenNode() == 1 && phraseStructure.nNonTerminals() == 0 &&((NonTerminalNode)phraseStructure.getPhraseStructureRoot()).nChildren() == 0) {
                Edge e = phraseStructure.addPhraseStructureEdge(phraseStructure.getPhraseStructureRoot(), phraseStructure.getTokenNode(1));
                SortedMap<String, SymbolTable> inputTables = dataFormatInstance.getPhraseStructureEdgeLabelSymbolTables();
                for (String name : inputTables.keySet()) {
                  e.addLabel(inputTables.get(name), "--");
                }
              }
            }
//            else if (reader.getLocalName().equals("name")) {
//              if (header != null) {
View Full Code Here

  public void apply(GuideUserAction currentAction, ParserConfiguration config) throws MaltChainedException {
    final NivreConfig nivreConfig = (NivreConfig)config;
    final Stack<DependencyNode> stack = nivreConfig.getStack();
    final Stack<DependencyNode> input = nivreConfig.getInput();
    currentAction.getAction(actionContainers);
    Edge e = null;
    switch (transActionContainer.getActionCode()) {
    case LEFTARC:
      e = nivreConfig.getDependencyStructure().addDependencyEdge(input.peek().getIndex(), stack.peek().getIndex());
      addEdgeLabels(e);
      stack.pop();
View Full Code Here

      for (SymbolTable table : gnode.getLabelTypes()) {
        pnode.addLabel(table, gnode.getLabelSymbol(table));
      }
     
      if (gnode.hasHead()) {
        Edge s = gnode.getHeadEdge();
        Edge t = dependencyGraph.addDependencyEdge(s.getSource().getIndex(), s.getTarget().getIndex());
       
        for (SymbolTable table : s.getLabelTypes()) {
          t.addLabel(table, s.getLabelSymbol(table));
        }
      }
    }
    for (SymbolTable table : source.getDefaultRootEdgeLabels().keySet()) {
      dependencyGraph.setDefaultRootEdgeLabel(table, source.getDefaultRootEdgeLabelSymbol(table));
View Full Code Here

 
  public void apply(GuideUserAction currentAction, ParserConfiguration config) throws MaltChainedException {
    CovingtonConfig covingtonConfig = (CovingtonConfig)config;
    currentAction.getAction(actionContainers);
   
    Edge e = null;
    switch (transActionContainer.getActionCode()) {
    case LEFTARC:
      e = covingtonConfig.getDependencyGraph().addDependencyEdge(covingtonConfig.getRightTarget().getIndex(), covingtonConfig.getLeftTarget().getIndex());
      addEdgeLabels(e);
//      config.setArcParent(covingtonConfig.getRightTarget());
View Full Code Here

  public void apply(GuideUserAction currentAction, ParserConfiguration config) throws MaltChainedException {
    final NivreConfig nivreConfig = (NivreConfig)config;
    final Stack<DependencyNode> stack = nivreConfig.getStack();
    final Stack<DependencyNode> input = nivreConfig.getInput();
    currentAction.getAction(actionContainers);
    Edge e = null;
    switch (transActionContainer.getActionCode()) {
    case LEFTARC:
      e = nivreConfig.getDependencyStructure().addDependencyEdge(input.peek().getIndex(), stack.peek().getIndex());
      addEdgeLabels(e);
      stack.pop();
View Full Code Here

TOP

Related Classes of org.maltparserx.core.syntaxgraph.edge.Edge

Copyright © 2018 www.massapicom. 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.