@Override public void process(JCas jcas) throws AnalysisEngineProcessException { String sent = jcas.getDocumentText(); StringBuffer buff = new StringBuffer(); Parse parse = null; try{ parse = ParserTool.parseLine(sent, parser, 1)[0]; parse.show(buff); }catch(NullPointerException e){ System.err.println("Parser error... no parse found... check POS tags of missed sentence (immediately above)"); } if(parse == null){ buff.append("(S null)"); } TopTreebankNode ttn = new TopTreebankNode(jcas); ttn.setTreebankParse(buff.toString()); ttn.addToIndexes(); }
@Override public void process(JCas jcas) throws AnalysisEngineProcessException { String sent = jcas.getDocumentText(); StringBuffer buff = new StringBuffer(); Parse parse = null; try{ parse = ParserTool.parseLine(sent, parser, 1)[0]; parse.show(buff); }catch(NullPointerException e){ System.err.println("Parser error... no parse found... check POS tags of missed sentence (immediately above)"); } if(parse == null){ buff.append("(S null)"); } TopTreebankNode ttn = new TopTreebankNode(jcas); ttn.setTreebankParse(buff.toString()); ttn.addToIndexes(); }
@Override public void createAnnotations( final JCas jcas ) throws AnalysisEngineProcessException { final String docId = DocumentIDAnnotationUtil.getDocumentID( jcas ); logger.info( "Started processing: " + docId ); // iterate over sentences Parse parse = null; // final Collection<Sentence> allSentences = org.apache.uima.fit.util.JCasUtil.select( jcas, Sentence.class ); // for ( Sentence sentence : allSentences ) { final Map<Sentence, Collection<BaseToken>> sentenceTokenMap = JCasUtil.indexCovered( jcas, Sentence.class, BaseToken.class ); for ( Map.Entry<Sentence, Collection<BaseToken>> sentenceTokens : sentenceTokenMap.entrySet() ) { final Sentence sentence = sentenceTokens.getKey(); final String text = sentence.getCoveredText(); if ( text.isEmpty() || isBorderOnly( text ) ) { continue; } // final FSArray terminalArray = TreeUtils.getTerminals( jcas, sentence ); final FSArray terminalArray = TreeUtils.getTerminals( jcas, new ArrayList<>( sentenceTokens.getValue() ) ); final String tokenString = TreeUtils.getSplitSentence( terminalArray ); if ( tokenString.isEmpty() ) { parse = null; } else { final Parse inputTokens = TreeUtils.ctakesTokensToOpennlpTokens( sentence.getBegin(), text, terminalArray ); parse = parser.parse( inputTokens ); } final TopTreebankNode top = TreeUtils.buildAlignedTree( jcas, parse, terminalArray, sentence ); top.addToIndexes(); } logger.info( "Done parsing: " + docId ); }
@Override public void createAnnotations( final JCas jcas ) throws AnalysisEngineProcessException { final String docId = DocumentIDAnnotationUtil.getDocumentID( jcas ); logger.info( "Started processing: " + docId ); // iterate over sentences Parse parse = null; final Collection<Sentence> allSentences = org.apache.uima.fit.util.JCasUtil.select( jcas, Sentence.class ); for ( Sentence sentence : allSentences ) { final String text = sentence.getCoveredText(); if ( text.isEmpty() || isBorderOnly( text ) ) { continue; } final FSArray terminalArray = TreeUtils.getTerminals( jcas, sentence ); final String tokenString = TreeUtils.getSplitSentence( terminalArray ); if ( tokenString.isEmpty() ) { parse = null; } else { final Parse inputTokens = TreeUtils.ctakesTokensToOpennlpTokens( sentence.getBegin(), text, terminalArray ); parse = parser.parse( inputTokens ); } final TopTreebankNode top = TreeUtils.buildAlignedTree( jcas, parse, terminalArray, sentence ); top.addToIndexes(); } logger.info( "Done parsing: " + docId ); }