/** * Displays this parse using Penn Treebank-style formatting. */ public void show() { StringBuffer sb = new StringBuffer(text.length() * 4); show(sb); System.out.println(sb); }
c.show(sb); start = s.getEnd();
tp.show(); System.out.println();
@Test public void testShow() { Parse p1 = Parse.parseParse(PARSE_STRING); StringBuffer parseString = new StringBuffer(); p1.show(parseString); Parse p2 = Parse.parseParse(parseString.toString()); Assert.assertEquals(p1, p2); }
@Test public void evalParserModel() throws Exception { ParserModel model = new ParserModel( new File(getOpennlpDataDir(), "models-sf/en-parser-chunking.bin")); MessageDigest digest = MessageDigest.getInstance(HASH_ALGORITHM); Parser parser = ParserFactory.create(model); try (ObjectStream<LeipzigTestSample> lines = createLineWiseStream()) { LeipzigTestSample line; while ((line = lines.read()) != null) { Parse[] parse = ParserTool.parseLine(String.join(" ", line.getText()), parser, 1); if (parse.length > 0) { StringBuffer sb = new StringBuffer(); parse[0].show(sb); digest.update(sb.toString().getBytes(StandardCharsets.UTF_8)); } else { digest.update("empty".getBytes(StandardCharsets.UTF_8)); } } } Assert.assertEquals(new BigInteger("312218841713337505306598301082074515847"), new BigInteger(1, digest.digest())); } }
protected void process(CAS cas, AnnotationFS sentenceAnnotation) { FSIndex<AnnotationFS> allTokens = cas.getAnnotationIndex(mTokenType); ContainingConstraint containingConstraint = new ContainingConstraint(sentenceAnnotation); String sentence = sentenceAnnotation.getCoveredText(); Iterator<AnnotationFS> containingTokens = cas.createFilteredIterator( allTokens.iterator(), containingConstraint); List<Span> tokenSpans = new LinkedList<>(); while (containingTokens.hasNext()) { AnnotationFS token = containingTokens.next(); tokenSpans.add(new Span(token.getBegin() - sentenceAnnotation.getBegin(), token.getEnd() - sentenceAnnotation.getBegin())); } ParseConverter converter = new ParseConverter(sentence, tokenSpans.toArray(new Span[tokenSpans.size()])); Parse unparsedTree = converter.getParseForTagger(); if (unparsedTree.getChildCount() > 0) { Parse parse = mParser.parse(unparsedTree); // TODO: We need a strategy to handle the case that a full // parse could not be found. What to do in this case? parse = converter.transformParseFromTagger(parse); if (mLogger.isLoggable(Level.INFO)) { StringBuffer parseString = new StringBuffer(); parse.show(parseString); mLogger.log(Level.INFO, parseString.toString()); } createAnnotation(cas, sentenceAnnotation.getBegin(), parse); } }
@Test public void testTokenReplacement() { Parse p1 = Parse.parseParse("(TOP (S-CLF (NP-SBJ (PRP It) )(VP (VBD was) " + " (NP-PRD (NP (DT the) (NN trial) )(PP (IN of) " + " (NP (NP (NN oleomargarine) (NN heir) )(NP (NNP Minot) " + " (PRN (-LRB- -LRB-) (NNP Mickey) " + " (-RRB- -RRB-) )(NNP Jelke) )))(PP (IN for) " + " (NP (JJ compulsory) (NN prostitution) " + " ))(PP-LOC (IN in) (NP (NNP New) (NNP York) " + " )))(SBAR (WHNP-1 (WDT that) )(S (VP (VBD put) " + " (NP (DT the) (NN spotlight) )(PP (IN on) (NP (DT the) " + " (JJ international) (NN play-girl) ))))))(. .) ))"); StringBuffer parseString = new StringBuffer(); p1.show(parseString); Parse p2 = Parse.parseParse(parseString.toString()); Assert.assertEquals(p1, p2); }
parses[pi].show();
/** * Displays this parse using Penn Treebank-style formatting. */ public void show() { StringBuffer sb = new StringBuffer(text.length() * 4); show(sb); System.out.println(sb); }
/** * Displays this parse using Penn Treebank-style formatting. */ public void show() { StringBuffer sb = new StringBuffer(text.length() * 4); show(sb); System.out.println(sb); }
@Override public String toString() { StringBuffer sb = new StringBuffer(); for (Parse parse : parses) { parse.show(sb); sb.append('\n'); } sb.append('\n'); return sb.toString(); }
@Override public String toString() { StringBuffer sb = new StringBuffer(); for (Parse parse : parses) { parse.show(sb); sb.append('\n'); } sb.append('\n'); return sb.toString(); }
public static void Parse() throws InvalidFormatException, IOException { // http://sourceforge.net/apps/mediawiki/opennlp/index.php?title=Parser#Training_Tool InputStream is = new FileInputStream("en-parser-chunking.bin"); ParserModel model = new ParserModel(is); Parser parser = ParserFactory.create(model); String sentence = "Programcreek is a very huge and useful website."; Parse topParses[] = ParserTool.parseLine(sentence, parser, 1); for (Parse p : topParses) p.show(); is.close(); /* * (TOP (S (NP (NN Programcreek) ) (VP (VBZ is) (NP (DT a) (ADJP (RB * very) (JJ huge) (CC and) (JJ useful) ) ) ) (. website.) ) ) */ }
public static void Parse() throws InvalidFormatException, IOException { // http://sourceforge.net/apps/mediawiki/opennlp/index.php?title=Parser#Training_Tool InputStream is = new FileInputStream("en-parser-chunking.bin"); ParserModel model = new ParserModel(is); Parser parser = ParserFactory.create(model); String sentence = "Programcreek is a very huge and useful website."; Parse topParses[] = ParserTool.parseLine(sentence, parser, 1); for (Parse p : topParses) p.show(); is.close(); /* * (TOP (S (NP (NN Programcreek) ) (VP (VBZ is) (NP (DT a) (ADJP (RB * very) (JJ huge) (CC and) (JJ useful) ) ) ) (. website.) ) ) */ }
@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(); }
chunks[ci].show();
private static void processParse(TreebankNameFinder[] finders, String[] tags, BufferedReader input) throws IOException { Span[][] nameSpans = new Span[finders.length][]; for (String line = input.readLine(); null != line; line = input.readLine()) { if (line.equals("")) { System.out.println(); clearPrevTokenMaps(finders); continue; } Parse p = Parse.parseParse(line); Parse[] tagNodes = p.getTagNodes(); String[] tokens = new String[tagNodes.length]; for (int ti=0;ti<tagNodes.length;ti++){ tokens[ti] = tagNodes[ti].getCoveredText(); } //System.err.println(java.util.Arrays.asList(tokens)); for (int fi = 0, fl = finders.length; fi < fl; fi++) { nameSpans[fi] = finders[fi].nameFinder.find(tokens); //System.err.println("english.NameFinder.processParse: "+tags[fi] + " " + java.util.Arrays.asList(nameSpans[fi])); } for (int fi = 0, fl = finders.length; fi < fl; fi++) { Parse.addNames(tags[fi],nameSpans[fi],tagNodes); } p.show(); } }
/** * @param jcas ye olde ... * @param parse opennlp parse * @param terminalArray [token] terminals in the sentence * @param sentence - * @return a top treebank node for the sentence * @throws AnalysisEngineProcessException thrown by {@link #recursivelyCreateStructure} */ public static TopTreebankNode buildAlignedTree( final JCas jcas, final Parse parse, final FSArray terminalArray, final Sentence sentence ) throws AnalysisEngineProcessException { final StringBuffer parseBuffer = new StringBuffer(); if ( parse != null ) { parse.show( parseBuffer ); } final TopTreebankNode top = new TopTreebankNode( jcas, sentence.getBegin(), sentence.getEnd() ); top.setTreebankParse( parseBuffer.toString() ); top.setTerminals( terminalArray ); top.setParent( null ); if ( parse != null ) { recursivelyCreateStructure( jcas, top, parse, top ); } return top; }
/** * @param jcas ye olde ... * @param parse opennlp parse * @param terminalArray [token] terminals in the sentence * @param sentence - * @return a top treebank node for the sentence * @throws AnalysisEngineProcessException thrown by {@link #recursivelyCreateStructure} */ public static TopTreebankNode buildAlignedTree( final JCas jcas, final Parse parse, final FSArray terminalArray, final Sentence sentence ) throws AnalysisEngineProcessException { final StringBuffer parseBuffer = new StringBuffer(); if ( parse != null ) { parse.show( parseBuffer ); } final TopTreebankNode top = new TopTreebankNode( jcas, sentence.getBegin(), sentence.getEnd() ); top.setTreebankParse( parseBuffer.toString() ); top.setTerminals( terminalArray ); top.setParent( null ); if ( parse != null ) { recursivelyCreateStructure( jcas, top, parse, top ); } return top; }