@Override public List<Feature> extract(JCas jCas, IdentifiedAnnotation arg1, IdentifiedAnnotation arg2) throws AnalysisEngineProcessException { List<Feature> features = new ArrayList<Feature>(); // entity1 ... entity2 scenario if(arg1.getEnd() < arg2.getBegin()) { for(NP np : JCasUtil.selectCovering(jCas, NP.class, arg1.getBegin(), arg2.getEnd())) { if(arg1.getBegin() == np.getBegin() && arg2.getEnd() == np.getEnd()) { features.add(new Feature("arg1arg2insideNP", true)); } } } // entity2 ... entity1 scenario if(arg2.getEnd() < arg1.getBegin()) { for(NP np : JCasUtil.selectCovering(jCas, NP.class, arg2.getBegin(), arg1.getEnd())) { if(arg2.getBegin() == np.getBegin() && arg1.getEnd() == np.getEnd()) { features.add(new Feature("arg2arg1insideNP", true)); } } } return features; } }
@Override public List<Feature> extract(JCas jCas, IdentifiedAnnotation arg1, IdentifiedAnnotation arg2) throws AnalysisEngineProcessException { List<Feature> features = new ArrayList<Feature>(); // entity1 ... entity2 scenario if(arg1.getEnd() < arg2.getBegin()) { for(NP np : JCasUtil.selectCovering(jCas, NP.class, arg1.getBegin(), arg2.getEnd())) { if(arg1.getBegin() == np.getBegin() && arg2.getEnd() == np.getEnd()) { features.add(new Feature("arg1arg2insideNP", true)); } } } // entity2 ... entity1 scenario if(arg2.getEnd() < arg1.getBegin()) { for(NP np : JCasUtil.selectCovering(jCas, NP.class, arg2.getBegin(), arg1.getEnd())) { if(arg2.getBegin() == np.getBegin() && arg1.getEnd() == np.getEnd()) { features.add(new Feature("arg2arg1insideNP", true)); } } } return features; } }