You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@uima.apache.org by vijay vijay <vi...@gmail.com> on 2007/09/13 13:42:30 UTC
can any one look in to my code
*
package* com.iton.uima.src;
*
import* java.util.regex.Matcher;
*
import* java.util.regex.Pattern;
*
import* com.ibm.uima.UimaContext;
*
import* com.ibm.uima.analysis_component.AnalysisComponent;
*
import* com.ibm.uima.analysis_component.JCasAnnotator_ImplBase;
*
import* com.ibm.uima.analysis_engine.AnalysisEngineProcessException;
*
import* com.ibm.uima.jcas.impl.JCas;
*
import* com.ibm.uima.resource.ResourceInitializationException;
*
import* com.ibm.uima.util.XMLInputSource;
*
import* com.iton.uima.DynamicAnnotation;
*
import* com.ibm.uima.analysis_engine.AnalysisEngine;
*
import* com.ibm.uima.resource.*;
*
import* com.ibm.uima.*;
*
public* *class* DyanamicAnnotations *extends* JCasAnnotator_ImplBase {
*private* Pattern[] firstString;
*private* String [] secondString;
*public* *void* initialize(UimaContext aContext)
*throws* ResourceInitializationException
{
*super*.initialize(aContext);
//Get config. parameter values
*try*{
XMLInputSource in = *new* XMLInputSource("DyanamicAnalyze.xml");
ResourceSpecifier specifier =
UIMAFramework.*getXMLParser*().parseResourceSpecifier(in);
AnalysisEngine analysisEngine=UIMAFramework.*produceAnalysisEngine*
(specifier);
analysisEngine.setConfigParameterValue("StringsToAnnotate",
*new* String[] {"Michael","UIMA","Vijay"});
}*catch*(Exception e){
e.printStackTrace();
}
String[] patternStrings = (String[])aContext.getConfigParameterValue(
"Patterns");
secondString = (String[])aContext.getConfigParameterValue("Location");
System.*out*.println("mLocations----->"+secondString);
*for* (*int* i = 0; i < secondString.length; i++){
System.*out*.println("mLocations value--->"+secondString[i]);
}
//compile regular expressions
firstString = *new* Pattern[patternStrings.length];
*for* (*int* i = 0; i < patternStrings.length; i++)
{
System.*out*.println("is this working or not");
firstString[i] = Pattern.*compile*(patternStrings[i]);
}
}
/**
* *@see* JCasAnnotator_ImplBase#process(JCas)
*/
*public* *void* process(JCas aJCas)
*throws* AnalysisEngineProcessException
{
//get document text
String docText = aJCas.getDocumentText();
System.*out*.println("docText---------->"+docText);
//loop over patterns
System.*out*.println("mPattern length---------->"+firstString.length);
*for* (*int* i = 0; i < firstString.length; i++)
{
System.*out*.println("is For loop");
Matcher matcher = firstString[i].matcher(docText);
*int* pos = 0;
*while* (matcher.find(pos))
{
//found one - creation annotation
DynamicAnnotation annotation = *new* DynamicAnnotation(aJCas);
annotation.setBegin(matcher.start());
annotation.setEnd(matcher.end());
annotation.addToIndexes();
annotation.setStringsToAnnotate(secondString[i]);
pos = matcher.end();
System.*out*.println("Is Text at Last-------->");
//getContext().getLogger().log(Level.FINEST,"Found: " + annotation);
}
}
}
}
this is wriiten for getting dynamic annotations but it is not working,
analysisEngine.xml it asking for parameter values to be enterd ,so then what
is use of uisng tha above code
vijay