List of usage examples for edu.stanford.nlp.semgraph SemanticGraph toCompactString
public String toCompactString()
From source file:edu.illinois.cs.cogcomp.pipeline.handlers.StanfordDepHandler.java
License:Open Source License
@Override public void addView(TextAnnotation textAnnotation) throws AnnotatorException { // If the sentence is longer than STFRD_MAX_SENTENCE_LENGTH there is no point in trying to // parse// ww w . j av a2s.c om StanfordParseHandler.checkLength(textAnnotation, throwExceptionOnSentenceLengthCheck, maxParseSentenceLength); TreeView treeView = new TreeView(ViewNames.DEPENDENCY_STANFORD, "StanfordDepHandler", textAnnotation, 1d); // The (tokenized) sentence offset in case we have more than one sentences in the record List<CoreMap> sentences = StanfordParseHandler.buildStanfordSentences(textAnnotation); Annotation document = new Annotation(sentences); posAnnotator.annotate(document); parseAnnotator.annotate(document); sentences = document.get(CoreAnnotations.SentencesAnnotation.class); if (sentences.get(0).get(TreeCoreAnnotations.TreeAnnotation.class).nodeString().equals("X")) { // This is most like because we ran out of time throw new AnnotatorException("Unable to parse TextAnnotation " + textAnnotation.getId() + ". " + "This is most likely due to a timeout."); } for (int sentenceId = 0; sentenceId < sentences.size(); sentenceId++) { boolean runtimeExceptionWasThrown = false; CoreMap sentence = sentences.get(sentenceId); if (maxParseSentenceLength > 0 && sentence.size() > maxParseSentenceLength) { logger.warn(HandlerUtils.getSentenceLengthError(textAnnotation.getId(), sentence.toString(), maxParseSentenceLength)); } else { SemanticGraph depGraph = sentence .get(SemanticGraphCoreAnnotations.BasicDependenciesAnnotation.class); IndexedWord root = null; try { root = depGraph.getFirstRoot(); } catch (RuntimeException e) { String msg = "ERROR in getting root of dep graph for sentence. Sentence is:\n" + sentence.toString() + "'\nDependency graph is:\n" + depGraph.toCompactString() + "\nText is:\n" + textAnnotation.getText(); logger.error(msg); System.err.println(msg); e.printStackTrace(); if (throwExceptionOnSentenceLengthCheck) throw e; else runtimeExceptionWasThrown = true; } if (!runtimeExceptionWasThrown) { int tokenStart = getNodePosition(textAnnotation, root, sentenceId); Pair<String, Integer> nodePair = new Pair<>(root.originalText(), tokenStart); Tree<Pair<String, Integer>> tree = new Tree<>(nodePair); populateChildren(depGraph, root, tree, textAnnotation, sentenceId); treeView.setDependencyTree(sentenceId, tree); } } } textAnnotation.addView(getViewName(), treeView); }