Package edu.stanford.nlp.ling

Examples of edu.stanford.nlp.ling.IndexedWord


   *
   * @return collection of sibling nodes (does not include vertex)
   *         the collection is empty if your parent is null
   */
  public Collection<IndexedWord> getSiblings(IndexedWord vertex) {
    IndexedWord parent = this.getParent(vertex);
    if (parent != null) {
      Set<IndexedWord> result = wordMapFactory.newSet();
      result.addAll(this.getChildren(parent));
      result.remove(vertex);//remove this vertex - you're not your own sibling
      return result;


   * Returns the <em>first</em> {@link edu.stanford.nlp.ling.IndexedWord
   * IndexedWord} in this {@code SemanticGraph} having the given integer index,
   * or throws {@code IllegalArgumentException} if no such node is found.
   */
  public IndexedWord getNodeByIndex(int index) throws IllegalArgumentException {
    IndexedWord node = getNodeByIndexSafe(index);
    if (node == null)
      throw new IllegalArgumentException("No SemanticGraph vertex with index " + index);
    else
      return node;
  }

      for (IndexedWord inner : vertexSet()) {
        dominatedEdgeCount.incrementCount(outer, nodeDists.getCount(outer, inner));
      }
    }

    IndexedWord winner = Counters.argmax(dominatedEdgeCount);
    // TODO: account for multiply rooted graphs later
    setRoot(winner);

  }

  }

  private void topologicalSortHelper(IndexedWord vertex, Set<IndexedWord> temporary, Set<IndexedWord> permanent, List<IndexedWord> result) {
    temporary.add(vertex);
    for (SemanticGraphEdge edge : outgoingEdgeIterable(vertex)) {
      IndexedWord target = edge.getTarget();
      if (permanent.contains(target)) {
        continue;
      }
      if (temporary.contains(target)) {
        throw new IllegalStateException("This graph has cycles. Topological sort not possible: " + this.toString());

   */
  public boolean isDag() {
    Set<IndexedWord> unused = wordMapFactory.newSet();
    unused.addAll(vertexSet());
    while (!unused.isEmpty()) {
      IndexedWord arbitrary = unused.iterator().next();
      boolean result = isDagHelper(arbitrary, unused, wordMapFactory.newSet());
      if (result) {
        return false;
      }
    }

    }
    Set<IndexedWord> nodes = wordMapFactory.newSet();
    nodes.addAll(vertexSet());
    nodes.removeAll(used);
    while (!nodes.isEmpty()) {
      IndexedWord node = nodes.iterator().next();
      sb.append(node.toString(wordFormat)).append("\n");
      recToString(node, wordFormat, sb, 1, used);
      nodes.removeAll(used);
    }
    return sb.toString();
  }

  private void recToString(IndexedWord curr, CoreLabel.OutputFormat wordFormat, StringBuilder sb, int offset, Set<IndexedWord> used) {
    used.add(curr);
    List<SemanticGraphEdge> edges = outgoingEdgeList(curr);
    Collections.sort(edges);
    for (SemanticGraphEdge edge : edges) {
      IndexedWord target = edge.getTarget();
      sb.append(space(2 * offset)).append("-> ").append(target.toString(wordFormat)).append(" (").append(edge.getRelation()).append(")\n");
      if (!used.contains(target)) { // recurse
        recToString(target, wordFormat, sb, offset + 1, used);
      }
    }
  }

   *          Target List of words
   */
  private void insertSpecificIntoList(String specific, IndexedWord relnTgtNode, List<IndexedWord> tgtList) {
    int currIndex = tgtList.indexOf(relnTgtNode);
    Set<IndexedWord> descendants = descendants(relnTgtNode);
    IndexedWord specificNode = new IndexedWord();
    specificNode.set(CoreAnnotations.LemmaAnnotation.class, specific);
    specificNode.set(CoreAnnotations.TextAnnotation.class, specific);
    specificNode.set(CoreAnnotations.OriginalTextAnnotation.class, specific);
    while ((currIndex >= 1) && descendants.contains(tgtList.get(currIndex - 1))) {
      currIndex--;
    }
    tgtList.add(currIndex, specificNode);
  }

      if (showTags) {
        sb.append("/");
        sb.append(node.tag());
      }
      for (SemanticGraphEdge edge : getOutEdgesSorted(node)) {
        IndexedWord target = edge.getTarget();
        sb.append(" ").append(edge.getRelation()).append(":");
        if (!used.contains(target)) { // avoid infinite loop
          toCompactStringHelper(target, sb, used, showTags);
        } else {
          sb.append(target.word());
          if (showTags) {
            sb.append("/");
            sb.append(target.tag());
          }
        }
      }
      if (isntLeaf) {
        sb.append("]");

    if (prevToNewMap == null) {
      prevToNewMap = wordMapFactory.newMap();
    }
    Set<IndexedWord> vertexes = g.vertexSet();
    for (IndexedWord vertex : vertexes) {
      IndexedWord newVertex = new IndexedWord(vertex);
      addVertex(newVertex);
      prevToNewMap.put(vertex, newVertex);
    }

    roots = wordMapFactory.newSet();
    for (IndexedWord oldRoot : g.getRoots()) {
      roots.add(prevToNewMap.get(oldRoot));
    }
    for (SemanticGraphEdge edge : g.edgeIterable()) {
      IndexedWord newGov = prevToNewMap.get(edge.getGovernor());
      IndexedWord newDep = prevToNewMap.get(edge.getDependent());
      addEdge(newGov, newDep, edge.getRelation(), edge.getWeight(), edge.isExtra());
    }
  }

TOP

Related Classes of edu.stanford.nlp.ling.IndexedWord

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.