@Override public void setClassLabel( IdentifiedAnnotation entityOrEventMention, Instance<String> instance ) throws AnalysisEngineProcessException { if ( this.isTraining() ) { int history = entityOrEventMention.getHistoryOf(); // downsampling. initialize probabilityOfKeepingADefaultExample to 1.0 for no downsampling if ( history == CONST.NE_HISTORY_OF_ABSENT && coin.nextDouble() >= this.probabilityOfKeepingADefaultExample ) { return; } instance.setOutcome( String.valueOf( history ) ); } else { String label = this.classifier.classify( instance.getFeatures() ); entityOrEventMention.setHistoryOf( Integer.parseInt( label ) ); } }
@Override public void process(JCas jcas) throws AnalysisEngineProcessException { LOGGER.info( "Processing ..." ); for(Markable markable : JCasUtil.select(jcas, Markable.class)){ boolean outcome; List<Feature> features = new ArrayList<>(); for(FeatureExtractor1<Markable> extractor : extractors){ features.addAll(extractor.extract(jcas, markable)); } Instance<Boolean> instance = new Instance<>(features); if(this.isTraining()){ outcome = markable.getConfidence() > 0.5; instance.setOutcome(outcome); this.dataWriter.write(instance); }else{ Map<Boolean,Double> outcomes = this.classifier.score(features); markable.setConfidence(outcomes.get(true).floatValue()); } } LOGGER.info( "Finished." ); } }
@Override public void setClassLabel( IdentifiedAnnotation entityOrEventMention, Instance<String> instance ) throws AnalysisEngineProcessException { if ( this.isTraining() ) { String subj = entityOrEventMention.getSubject(); // downsampling. initialize probabilityOfKeepingADefaultExample to 1.0 for no downsampling if ( "patient".equals( subj ) && coin.nextDouble() >= this.probabilityOfKeepingADefaultExample ) { return; } instance.setOutcome( subj ); logger.log( Level.DEBUG, String.format( "[%s] expected: ''; actual: ''; features: %s", this.getClass().getSimpleName(), instance.toString() ) ); } else { String label = this.classifier.classify( instance.getFeatures() ); entityOrEventMention.setSubject( label ); logger.log( Level.DEBUG, "SUBJECT is being set on an IdentifiedAnnotation: " + label + " " + entityOrEventMention.getSubject() ); } }
@Override public void setClassLabel(IdentifiedAnnotation entityOrEventMention, Instance<String> instance) throws AnalysisEngineProcessException { if (this.isTraining()) { String subj = entityOrEventMention.getSubject(); // downsampling. initialize probabilityOfKeepingADefaultExample to 1.0 for no downsampling if ("patient".equals(subj) && coin.nextDouble() >= this.probabilityOfKeepingADefaultExample) { return; } instance.setOutcome(subj); logger.log(Level.DEBUG, String.format("[%s] expected: ''; actual: ''; features: %s", this.getClass().getSimpleName(), instance.toString() )); } else { String label = this.classifier.classify(instance.getFeatures()); entityOrEventMention.setSubject(label); logger.log(Level.DEBUG, "SUBJECT is being set on an IdentifiedAnnotation: "+label+" "+entityOrEventMention.getSubject()); } } public static FeatureSelection<String> createFeatureSelection(double threshold) {
@Override public void setClassLabel(IdentifiedAnnotation entityOrEventMention, Instance<String> instance) throws AnalysisEngineProcessException { if (this.isTraining()) { int history = entityOrEventMention.getHistoryOf(); // downsampling. initialize probabilityOfKeepingADefaultExample to 1.0 for no downsampling if (history == CONST.NE_HISTORY_OF_ABSENT && coin.nextDouble() >= this.probabilityOfKeepingADefaultExample) { return; } instance.setOutcome(String.valueOf(history)); } else { String label = this.classifier.classify(instance.getFeatures()); entityOrEventMention.setHistoryOf(Integer.parseInt(label)); } } public static FeatureSelection<String> createFeatureSelection(double threshold) {
@Override public void setClassLabel( IdentifiedAnnotation entityOrEventMention, Instance<String> instance ) throws AnalysisEngineProcessException { if ( this.isTraining() ) { String uncertainty = (entityOrEventMention.getUncertainty() == CONST.NE_UNCERTAINTY_PRESENT) ? "uncertain" : "certain"; // downsampling. initialize probabilityOfKeepingADefaultExample to 1.0 for no downsampling if ( "certain".equals( uncertainty ) && coin.nextDouble() >= this.probabilityOfKeepingADefaultExample ) { return; } instance.setOutcome( uncertainty ); } else { String label = this.classifier.classify( instance.getFeatures() ); int uncertainty = 0; if ( label != null && label.equals( "uncertain" ) ) { uncertainty = CONST.NE_UNCERTAINTY_PRESENT; } else if ( label != null && label.equals( "certain" ) ) { uncertainty = CONST.NE_UNCERTAINTY_ABSENT; } entityOrEventMention.setUncertainty( uncertainty ); } }
return; instance.setOutcome(polarity);
return; instance.setOutcome(polarity);
@Override public void process(JCas jcas) throws AnalysisEngineProcessException { for(Markable markable : JCasUtil.select(jcas, Markable.class)){ boolean outcome; List<Feature> features = new ArrayList<>(); for(FeatureExtractor1<Markable> extractor : extractors){ features.addAll(extractor.extract(jcas, markable)); } Instance<Boolean> instance = new Instance<>(features); if(this.isTraining()){ outcome = markable.getConfidence() > 0.5; instance.setOutcome(outcome); this.dataWriter.write(instance); }else{ Map<Boolean,Double> outcomes = this.classifier.score(features); markable.setConfidence(outcomes.get(true).floatValue()); } } } }
@Override public void setClassLabel( IdentifiedAnnotation entityOrEventMention, Instance<String> instance ) throws AnalysisEngineProcessException { if ( this.isTraining() ) { boolean generic = entityOrEventMention.getGeneric(); // downsampling. initialize probabilityOfKeepingADefaultExample to 1.0 for no downsampling if ( !generic && coin.nextDouble() >= this.probabilityOfKeepingADefaultExample ) { return; } instance.setOutcome( "" + generic ); } else { String label = this.classifier.classify( instance.getFeatures() ); entityOrEventMention.setGeneric( Boolean.parseBoolean( label ) ); } }
@Override public void setClassLabel(IdentifiedAnnotation entityOrEventMention, Instance<String> instance) throws AnalysisEngineProcessException { if (this.isTraining()) { int history = entityOrEventMention.getHistoryOf(); // downsampling. initialize probabilityOfKeepingADefaultExample to 1.0 for no downsampling if (history == CONST.NE_HISTORY_OF_ABSENT && coin.nextDouble() >= this.probabilityOfKeepingADefaultExample) { return; } instance.setOutcome(String.valueOf(history)); } else { String label = this.classifier.classify(instance.getFeatures()); entityOrEventMention.setHistoryOf(Integer.parseInt(label)); } } public static FeatureSelection<String> createFeatureSelection(double threshold) {
@Override public void setClassLabel(IdentifiedAnnotation entityOrEventMention, Instance<String> instance) throws AnalysisEngineProcessException { if (this.isTraining()) { String uncertainty = (entityOrEventMention.getUncertainty() == CONST.NE_UNCERTAINTY_PRESENT) ? "uncertain" : "certain"; // downsampling. initialize probabilityOfKeepingADefaultExample to 1.0 for no downsampling if ("certain".equals(uncertainty) && coin.nextDouble() >= this.probabilityOfKeepingADefaultExample) { return; } instance.setOutcome(uncertainty); } else { String label = this.classifier.classify(instance.getFeatures()); int uncertainty = 0; if (label!= null && label.equals("uncertain")) { uncertainty = CONST.NE_UNCERTAINTY_PRESENT; } else if (label != null && label.equals("certain")) { uncertainty = CONST.NE_UNCERTAINTY_ABSENT; } entityOrEventMention.setUncertainty(uncertainty); } }
@Override public void setClassLabel(IdentifiedAnnotation entityOrEventMention, Instance<String> instance) throws AnalysisEngineProcessException { if (this.isTraining()) { String subj = entityOrEventMention.getSubject(); // downsampling. initialize probabilityOfKeepingADefaultExample to 1.0 for no downsampling if ("patient".equals(subj) && coin.nextDouble() >= this.probabilityOfKeepingADefaultExample) { return; } instance.setOutcome(subj); logger.log(Level.DEBUG, String.format("[%s] expected: ''; actual: ''; features: %s", this.getClass().getSimpleName(), instance.toString() )); } else { String label = this.classifier.classify(instance.getFeatures()); entityOrEventMention.setSubject(label); logger.log(Level.DEBUG, "SUBJECT is being set on an IdentifiedAnnotation: "+label+" "+entityOrEventMention.getSubject()); } } public static FeatureSelection<String> createFeatureSelection(double threshold) {
@Override public void setClassLabel(IdentifiedAnnotation entityOrEventMention, Instance<String> instance) throws AnalysisEngineProcessException { if (this.isTraining()) { String uncertainty = (entityOrEventMention.getUncertainty() == CONST.NE_UNCERTAINTY_PRESENT) ? "uncertain" : "certain"; // downsampling. initialize probabilityOfKeepingADefaultExample to 1.0 for no downsampling if ("certain".equals(uncertainty) && coin.nextDouble() >= this.probabilityOfKeepingADefaultExample) { return; } instance.setOutcome(uncertainty); } else { String label = this.classifier.classify(instance.getFeatures()); int uncertainty = 0; if (label!= null && label.equals("uncertain")) { uncertainty = CONST.NE_UNCERTAINTY_PRESENT; } else if (label != null && label.equals("certain")) { uncertainty = CONST.NE_UNCERTAINTY_ABSENT; } entityOrEventMention.setUncertainty(uncertainty); } }
@Override public void setClassLabel(IdentifiedAnnotation entityOrEventMention, Instance<String> instance) throws AnalysisEngineProcessException { if (this.isTraining()) { boolean generic = entityOrEventMention.getGeneric(); // downsampling. initialize probabilityOfKeepingADefaultExample to 1.0 for no downsampling if (!generic && coin.nextDouble() >= this.probabilityOfKeepingADefaultExample) { return; } instance.setOutcome(""+generic); } else { String label = this.classifier.classify(instance.getFeatures()); entityOrEventMention.setGeneric(Boolean.parseBoolean(label)); } } public static FeatureSelection<String> createFeatureSelection(double threshold) {
@Override public void setClassLabel( IdentifiedAnnotation entityOrEventMention, Instance<String> instance ) throws AnalysisEngineProcessException { if ( this.isTraining() ) { boolean conditional = entityOrEventMention.getConditional(); // downsampling. initialize probabilityOfKeepingADefaultExample to 1.0 for no downsampling if ( !conditional && coin.nextDouble() >= this.probabilityOfKeepingADefaultExample ) { return; } instance.setOutcome( "" + conditional ); } else { String label = this.classifier.classify( instance.getFeatures() ); boolean conditional = false; if ( label != null ) { conditional = Boolean.parseBoolean( label ); } entityOrEventMention.setConditional( conditional ); } }
@Override public void setClassLabel(IdentifiedAnnotation entityOrEventMention, Instance<String> instance) throws AnalysisEngineProcessException { if (this.isTraining()) { boolean generic = entityOrEventMention.getGeneric(); // downsampling. initialize probabilityOfKeepingADefaultExample to 1.0 for no downsampling if (!generic && coin.nextDouble() >= this.probabilityOfKeepingADefaultExample) { return; } instance.setOutcome(""+generic); } else { String label = this.classifier.classify(instance.getFeatures()); entityOrEventMention.setGeneric(Boolean.parseBoolean(label)); } } public static FeatureSelection<String> createFeatureSelection(double threshold) {
@Override public void setClassLabel(IdentifiedAnnotation entityOrEventMention, Instance<String> instance) throws AnalysisEngineProcessException { if (this.isTraining()) { boolean conditional = entityOrEventMention.getConditional(); // downsampling. initialize probabilityOfKeepingADefaultExample to 1.0 for no downsampling if (!conditional && coin.nextDouble() >= this.probabilityOfKeepingADefaultExample) { return; } instance.setOutcome(""+conditional); } else { String label = this.classifier.classify(instance.getFeatures()); boolean conditional = false; if (label!= null){ conditional = Boolean.parseBoolean(label); } entityOrEventMention.setConditional(conditional); } } public static FeatureSelection<String> createFeatureSelection(double threshold) {
@Override public void setClassLabel(IdentifiedAnnotation entityOrEventMention, Instance<String> instance) throws AnalysisEngineProcessException { if (this.isTraining()) { boolean conditional = entityOrEventMention.getConditional(); // downsampling. initialize probabilityOfKeepingADefaultExample to 1.0 for no downsampling if (!conditional && coin.nextDouble() >= this.probabilityOfKeepingADefaultExample) { return; } instance.setOutcome(""+conditional); } else { String label = this.classifier.classify(instance.getFeatures()); boolean conditional = false; if (label!= null){ conditional = Boolean.parseBoolean(label); } entityOrEventMention.setConditional(conditional); } } public static FeatureSelection<String> createFeatureSelection(double threshold) {
public void process(JCas jCas) throws AnalysisEngineProcessException { DocumentAnnotation doc = (DocumentAnnotation) jCas.getDocumentAnnotationFs(); Instance<String> instance = new Instance<String>(); instance.addAll(this.extractor.extract(jCas, doc)); if (isTraining()) { UsenetDocument document = JCasUtil.selectSingle(jCas, UsenetDocument.class); instance.setOutcome(document.getCategory()); this.dataWriter.write(instance); } else { // This is classification, so classify and create UsenetDocument annotation String result = this.classifier.classify(instance.getFeatures()); UsenetDocument document = new UsenetDocument(jCas, 0, jCas.getDocumentText().length()); document.setCategory(result); document.addToIndexes(); // System.out.println("classified " + ViewURIUtil.getURI(jCas) + " as " + result + "."); } }