Package org.mitre.medfacts.zoner

Examples of org.mitre.medfacts.zoner.LineAndTokenPosition


    Annotation beginTokenAnnotation = beginTokenInSentenceIterator.next();
    BaseToken beginToken = (BaseToken)beginTokenAnnotation;
    int beginTokenNumber = beginToken.getTokenNumber();
    int beginTokenWordNumber = beginTokenNumber - firstTokenInSentenceNumber;
   
    LineAndTokenPosition b = new LineAndTokenPosition();
    b.setLine(lineNumber);
    b.setTokenOffset(beginTokenWordNumber);
   
    return b;
  }
View Full Code Here


    int endTokenNumber = endToken.getTokenNumber();
    int endTokenWordNumber = endTokenNumber - firstTokenInSentenceNumber;
   

    ArrayList<LineAndTokenPosition> list = new ArrayList<LineAndTokenPosition>();
    LineAndTokenPosition b = new LineAndTokenPosition();
    b.setLine(lineNumber);
    b.setTokenOffset(beginTokenWordNumber);
    list.add(b);
    LineAndTokenPosition e = new LineAndTokenPosition();
    e.setLine(lineNumber);
    e.setTokenOffset(endTokenWordNumber);
    list.add(e);
    return list;
  }
View Full Code Here

      ApiConcept problem = problemEntrySet.getValue();

      // TODO fix this code to either replace/enhance the use of the converter
      // or use some other method
      List<LineAndTokenPosition> beginAndEndOfConcept = calculateBeginAndEndOfConcept(problem);
      LineAndTokenPosition problemBegin = beginAndEndOfConcept.get(0);
      LineAndTokenPosition problemEnd = beginAndEndOfConcept.get(1);
      //logger.info(String.format("<<PROB>> %s", problem));
     
//      LineAndTokenPosition problemBegin = converter.convertReverse(problem.getBegin());
//      LineAndTokenPosition problemEnd = converter.convertReverse(problem.getEnd());
      int lineNumber = problemBegin.getLine();

      int conceptBeginTokenOffset = problemBegin.getTokenOffset();
      int conceptEndTokenOffset = problemEnd.getTokenOffset();
     
      if (conceptBeginTokenOffset < 0) conceptBeginTokenOffset = 0;
      if (conceptEndTokenOffset < 0) conceptEndTokenOffset = 0;
     
      String currentLine[] = arrayOfArrayOfTokens[lineNumber - 1];
      int lineLength = currentLine.length;
     

      if (assertionDecoderConfiguration.getEnabledFeatureIdSet() == null)
      {
        logger.severe("enabled feature id set is null!!!  using all features");
      } else
      {
        logger.fine("enabled feature id set is set; using selected feature set");
      }

      TrainingInstance trainingInstance = new TrainingInstance();

      if (checkForEnabledFeature("conceptUnigrams")) {
          for (int k = conceptBeginTokenOffset; k <= conceptEndTokenOffset && k < lineLength; k++) {
              trainingInstance.addFeature("concept_unigram_" + StringHandling.escapeStringForFeatureName(currentLine[k]));
          }
      }

      if (checkForEnabledFeature("wordLeftFeature"))
      {
        List<String> wordLeftFeatureList = FeatureUtility.constructWordLeftFeatureList(problemBegin.getTokenOffset(), problemEnd.getTokenOffset(), currentLine);
        for (String currentFeature : wordLeftFeatureList)
        {
          trainingInstance.addFeature(currentFeature);
        }
      }

      if (checkForEnabledFeature("wordRightFeature"))
      {
        List<String> wordRightFeatureList = FeatureUtility.constructWordRightFeatureList(problemBegin.getTokenOffset(), problemEnd.getTokenOffset(), currentLine);
        for (String currentFeature : wordRightFeatureList)
        {
          trainingInstance.addFeature(currentFeature);
        }
      }

      Set<String> featureSet = trainingInstance.getFeatureSet();
      if (featureSet != null && featureSet.size() > 0)
      {
        trainingInstanceMap.put(index, trainingInstance);
      }

      String conceptText = problem.getText();
      if (checkForEnabledFeature("conceptTextFeature"))
      {
        String conceptTextFeature = MedFactsRunner.constructConceptPhraseFeature(conceptText);
        trainingInstance.addFeature(conceptTextFeature);
      }

      if (checkForEnabledFeature("conceptPseudoHeadFeature"))
      {
          int tokenOffset = problemEnd.getTokenOffset();
          //logger.info(String.format("before creating pseudo head; token offset: %d; # tokens on line: %d, tokens: %s", tokenOffset, currentLine.length, Arrays.toString(currentLine)));
          String conceptHead = currentLine[tokenOffset];
          trainingInstance.addFeature(MedFactsRunner.constructConceptHeadFeature(conceptHead));
      }
View Full Code Here

  public List<LineAndTokenPosition> calculateBeginAndEndOfConcept(
      ApiConcept problem)
  {
//    LineAndTokenPosition problemBegin = converter.convertReverse(problem.getBegin());
//    LineAndTokenPosition problemEnd = converter.convertReverse(problem.getEnd());
    LineAndTokenPosition problemBegin = converter2.convert(problem.getBegin());
    LineAndTokenPosition problemEnd = converter2.convert(problem.getEnd());
   
    ArrayList<LineAndTokenPosition> list = new ArrayList<LineAndTokenPosition>();
    list.add(problemBegin);
    list.add(problemEnd);
   
View Full Code Here

      int beginCharacter = currentApiConcept.getBegin();
      int endCharacter = currentApiConcept.getEnd();

      // TODO FIX THIS!! Converter won't work with uima code!!!
      LineAndTokenPosition beginPosition = convertCharacterOffsetToLineToken(beginCharacter);
      LineAndTokenPosition endPosition = convertCharacterOffsetToLineToken(endCharacter);

      Location beginLocation = new Location();
      beginLocation.setLine(beginPosition.getLine());
      beginLocation.setTokenOffset(beginPosition.getTokenOffset());

      Location endLocation = new Location();
      endLocation.setLine(endPosition.getLine());
      endLocation.setTokenOffset(endPosition.getTokenOffset());

      c.setAnnotationFileLineNumber(beginPosition.getLine());
      c.setBegin(beginLocation);
      c.setEnd(endLocation);
      c.setConceptText(currentApiConcept.getText());
View Full Code Here

    logger.info(String.format("    - done processing \"%s\".", currentTextFile.getName()));
  }

  private static LineAndTokenPosition convertPositionToZonerLineAndTokenPosition(Location input)
  {
    LineAndTokenPosition output = new LineAndTokenPosition();
    output.setLine(input.getLine());
    output.setTokenOffset(input.getTokenOffset());
    return output;
  }
View Full Code Here

    Annotation beginTokenAnnotation = beginTokenInSentenceIterator.next();
    BaseToken beginToken = (BaseToken)beginTokenAnnotation;
    int beginTokenNumber = beginToken.getTokenNumber();
    int beginTokenWordNumber = beginTokenNumber - firstTokenInSentenceNumber;
   
    LineAndTokenPosition b = new LineAndTokenPosition();
    b.setLine(lineNumber);
    b.setTokenOffset(beginTokenWordNumber);
   
    return b;
  }
View Full Code Here

    int endTokenNumber = endToken.getTokenNumber();
    int endTokenWordNumber = endTokenNumber - firstTokenInSentenceNumber;
   

    ArrayList<LineAndTokenPosition> list = new ArrayList<LineAndTokenPosition>();
    LineAndTokenPosition b = new LineAndTokenPosition();
    b.setLine(lineNumber);
    b.setTokenOffset(beginTokenWordNumber);
    list.add(b);
    LineAndTokenPosition e = new LineAndTokenPosition();
    e.setLine(lineNumber);
    e.setTokenOffset(endTokenWordNumber);
    list.add(e);
    return list;
  }
View Full Code Here

    }

    public void addConceptAnnotation(int startCharOffset, int endCharOffset, String typ, ConceptTypeParam conceptType) {
      CharacterOffsetToLineTokenConverter converter = new CharacterOffsetToLineTokenConverterDefaultImpl(wholeText);

      LineAndTokenPosition startLineAndTokenPosition = converter.convert(startCharOffset);
      LineAndTokenPosition endLineAndTokenPosition = converter.convert(endCharOffset);

      ConceptAnnotation conceptAnnotation = new ConceptAnnotation();

      Location beginLocation = new Location();
      beginLocation.setLine(startLineAndTokenPosition.getLine());
      beginLocation.setTokenOffset(startLineAndTokenPosition.getTokenOffset());
      conceptAnnotation.setBegin(beginLocation);

      Location endLocation = new Location();
      endLocation.setLine(endLineAndTokenPosition.getLine());
      endLocation.setTokenOffset(endLineAndTokenPosition.getTokenOffset());
      conceptAnnotation.setEnd(endLocation);

      String conceptText = wholeText.substring(startCharOffset, endCharOffset+1);
      conceptAnnotation.setConceptText(conceptText);
View Full Code Here

        new ArrayList<ZoneAnnotation>();

    for (Range currentRange : zonerRangeList)
    {
      // TODO fix zoner to either not convert+return line:token or pass in a converter object
      LineAndTokenPosition rangeBegin = currentRange.getBeginLineAndToken();
      LineAndTokenPosition rangeEnd = currentRange.getEndLineAndToken();

      int firstLine = rangeBegin.getLine();
      int lastLine = rangeEnd.getLine();

      for (int i=firstLine; i <= lastLine; i++)
      {
        boolean isFirstLine = (i == firstLine);
        boolean isLastLine  = (i == lastLine);

        int beginToken;
        if (isFirstLine)
        {
          beginToken = rangeBegin.getTokenOffset();
        } else
        {
          beginToken = 0;
        }

        int endToken;
        if (isLastLine)
        {
          endToken = rangeEnd.getTokenOffset();
        } else
        {
          // todo fix logic here
          if (i >= textLookup.length)
          {
View Full Code Here

TOP

Related Classes of org.mitre.medfacts.zoner.LineAndTokenPosition

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.