Package opennlp.tools.parser

Examples of opennlp.tools.parser.Parse


    }
  }
 
  public void show() {
    for (int pi=0,pn=parses.size();pi<pn;pi++) {
      Parse p = (Parse) parses.get(pi);
      show(p);
      System.out.println();
    }
  }
View Full Code Here


      //System.out.print(p.hashCode()+"-"+parseMap.containsKey(p));
      System.out.print(" ");
    }
    Parse[] children = p.getChildren();
    for (int pi=0,pn=children.length;pi<pn;pi++) {
      Parse c = children[pi];
      Span s = c.getSpan();
      if (start < s.getStart()) {
        System.out.print(p.getText().substring(start, s.getStart()));
      }
      show(c);
      start = s.getEnd();
View Full Code Here

  }
 
  private static void addNames(String tag, List names, Parse[] tokens) {
    for (int ni=0,nn=names.size();ni<nn;ni++) {
      Span nameTokenSpan = (Span) names.get(ni);
      Parse startToken = tokens[nameTokenSpan.getStart()];
      Parse endToken = tokens[nameTokenSpan.getEnd()];
      Parse commonParent = startToken.getCommonParent(endToken);
      //System.err.println("addNames: "+startToken+" .. "+endToken+" commonParent = "+commonParent);
      if (commonParent != null) {
        Span nameSpan = new Span(startToken.getSpan().getStart(),endToken.getSpan().getEnd());
        if (nameSpan.equals(commonParent.getSpan())) {
          commonParent.insert(new Parse(commonParent.getText(),nameSpan,tag,1.0));
        }
        else {
          Parse[] kids = commonParent.getChildren();
          boolean crossingKids = false;
          for (int ki=0,kn=kids.length;ki<kn;ki++) {
            if (nameSpan.crosses(kids[ki].getSpan())){
              crossingKids = true;
            }
          }
          if (!crossingKids) {
            commonParent.insert(new Parse(commonParent.getText(),nameSpan,tag,1.0));
          }
          else {
            if (commonParent.getType().equals("NP")) {
              Parse[] grandKids = kids[0].getChildren();
              if (grandKids.length > 1 && nameSpan.contains(grandKids[grandKids.length-1].getSpan())) {
                commonParent.insert(new Parse(commonParent.getText(),commonParent.getSpan(),tag,1.0));
              }
            }
          }
        }
      }
View Full Code Here

      if (line.equals("")) {
        System.out.println();
        clearPrevTokenMaps(prevTokenMaps);
        continue;
      }
      Parse p = Parse.parseParse(line);
      Parse[] tokens = p.getTagNodes();
      //System.err.println(java.util.Arrays.asList(tokens));
      for (int fi = 0, fl = finders.length; fi < fl; fi++) {
        finderTags[fi] = finders[fi].find(tokens, prevTokenMaps[fi]);
        //System.err.println("EnglishNameFinder.processParse: "+tags[fi] + " " + java.util.Arrays.asList(finderTags[fi]));
      }
      updatePrevTokenMaps(prevTokenMaps,tokens,finderTags);
      for (int fi = 0, fl = finders.length; fi < fl; fi++) {
        int start = -1;
        List names = new ArrayList(5);
        for (int ti = 0, tl = tokens.length; ti < tl; ti++) {
          if ((finderTags[fi][ti].equals(NameFinderME.START) || finderTags[fi][ti].equals(NameFinderME.OTHER))) {
            if (start != -1) {
              names.add(new Span(start,ti-1));
            }
            start = -1;
          }
          if (finderTags[fi][ti].equals(NameFinderME.START)) {
            start = ti;
          }
        }
        if (start != -1) {
          names.add(new Span(start,tokens.length-1));
        }
        addNames(tags[fi],names,tokens);
      }
      p.show();
    }
  }
View Full Code Here

   */
  public String getParsing(ParserModel model){
   
    String par = null;
    Parser parser = ParserFactory.create(model);
    Parse topParses[] = ParserTool.parseLine(sentence, parser, 1);

    StringBuffer buffer = new StringBuffer();
    topParses[0].show(buffer);
    par = buffer.toString();
    return par;
View Full Code Here

 
  @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)");
View Full Code Here

  public static List<Parse> getNodeList(Parse tree){
    ArrayList<Parse> list = new ArrayList<Parse>();
    list.add(tree);
    int ind = 0
    while(ind < list.size()){
      Parse cur = list.get(ind);
      Parse[] children = cur.getChildren();
      for(int i = 0; i < children.length; i++){
        list.add(children[i]);
      }
      ind++;
    }
View Full Code Here

   
    Parse[] subtrees = parse.getChildren();
    FSArray children = new FSArray(jcas, subtrees.length);
   
    for(int i = 0; i < subtrees.length; i++){
      Parse subtree = subtrees[i];
      if(subtree.getChildCount() == 1 && subtree.getChildren()[0].getChildCount() == 0){
        // pre-terminal case - now we can set the type (POS tag) and point the parent in the right direction
        TerminalTreebankNode term = root.getTerminals(subtree.getHeadIndex());
        term.setNodeType(subtree.getType());
        children.set(i,term);
        term.setParent(parent);
        term.addToIndexes();
      }else{
        try{
View Full Code Here

  }

  public static Parse ctakesTokensToOpennlpTokens(Sentence sent, FSArray termArray) {
    // based on the first part of parseLine in the opennlp libraries
    String text = sent.getCoveredText();
    Parse p = new Parse(sent.getCoveredText(), new Span(0, text.length()), AbstractBottomUpParser.INC_NODE, 0, 0);
   
    for(int i = 0; i < termArray.size(); i++){
      TerminalTreebankNode token = (TerminalTreebankNode) termArray.get(i);
      p.insert(new Parse(text, new Span(token.getBegin()-sent.getBegin(), token.getEnd()-sent.getBegin()), AbstractBottomUpParser.TOK_NODE, 0, i));
    }
   
    return p;
  }
View Full Code Here

  public void createAnnotations(JCas jcas) throws AnalysisEngineProcessException {
    String docId = DocumentIDAnnotationUtil.getDocumentID(jcas);
    logger.info("Started processing: " + docId);
    // iterate over sentences
    FSIterator iterator = jcas.getAnnotationIndex(Sentence.type).iterator();
    Parse parse = null;
   
    while(iterator.hasNext()){
      Sentence sentAnnot = (Sentence) iterator.next();
      if(sentAnnot.getCoveredText().length() == 0){
        continue;
      }
      FSArray termArray = TreeUtils.getTerminals(jcas, sentAnnot);
      Parse inputTokens = TreeUtils.ctakesTokensToOpennlpTokens(sentAnnot, termArray);
      String sentStr = TreeUtils.getSentence(termArray);
      if(sentStr.length() == 0){
        parse = null;
      }else{
        parse = parser.parse(inputTokens);
View Full Code Here

TOP

Related Classes of opennlp.tools.parser.Parse

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.