@Override public long getProject(RecommenderEvaluationResultEvent aEvent) { return aEvent.getRecommender().getProject().getId(); }
@Override public RecommenderContext getContext(User aUser, Recommender aRecommender) { RecommendationState state = getState(aUser.getUsername(), aRecommender.getProject()); synchronized (state) { return state.getContext(aRecommender); } }
private void predictToken(String aCoveredText, int aBegin, int aEnd, JCas aJcas) { List<KBHandle> handles = new ArrayList<>(); AnnotationFeature feat = recommender.getFeature(); FeatureSupport<ConceptFeatureTraits> fs = fsRegistry.getFeatureSupport(feat); ConceptFeatureTraits conceptFeatureTraits = fs.readTraits(feat); if (conceptFeatureTraits.getRepositoryId() != null) { Optional<KnowledgeBase> kb = kbService.getKnowledgeBaseById(recommender.getProject(), conceptFeatureTraits.getRepositoryId()); if (kb.isPresent() && kb.get().isSupportConceptLinking()) { handles.addAll(readCandidates(kb.get(), aCoveredText, aBegin, aJcas)); } } else { for (KnowledgeBase kb : kbService.getEnabledKnowledgeBases(recommender.getProject())) { if (kb.isSupportConceptLinking()) { handles.addAll(readCandidates(kb, aCoveredText, aBegin, aJcas)); } } } Type predictionType = getAnnotationType(aJcas.getCas(), PredictedSpan.class); Feature labelFeature = predictionType.getFeatureByBaseName("label"); for (KBHandle prediction : handles.stream().limit(recommender.getMaxRecommendations()) .collect(Collectors.toList())) { AnnotationFS annotation = aJcas.getCas().createAnnotation(predictionType, aBegin, aEnd); annotation.setStringValue(labelFeature, prediction.getIdentifier()); aJcas.getCas().addFsToIndexes(annotation); } }
private void predictToken(String aCoveredText, int aBegin, int aEnd, JCas aJcas) { List<KBHandle> handles = new ArrayList<>(); AnnotationFeature feat = recommender.getFeature(); FeatureSupport<ConceptFeatureTraits> fs = fsRegistry.getFeatureSupport(feat); ConceptFeatureTraits conceptFeatureTraits = fs.readTraits(feat); if (conceptFeatureTraits.getRepositoryId() != null) { Optional<KnowledgeBase> kb = kbService.getKnowledgeBaseById(recommender.getProject(), conceptFeatureTraits.getRepositoryId()); if (kb.isPresent() && kb.get().isSupportConceptLinking()) { handles.addAll(readCandidates(kb.get(), aCoveredText, aBegin, aJcas)); } } else { for (KnowledgeBase kb : kbService.getEnabledKnowledgeBases(recommender.getProject())) { if (kb.isSupportConceptLinking()) { handles.addAll(readCandidates(kb, aCoveredText, aBegin, aJcas)); } } } Type predictionType = getAnnotationType(aJcas.getCas(), PredictedSpan.class); Feature labelFeature = predictionType.getFeatureByBaseName("label"); for (KBHandle prediction : handles.stream().limit(recommender.getMaxRecommendations()) .collect(Collectors.toList())) { AnnotationFS annotation = aJcas.getCas().createAnnotation(predictionType, aBegin, aEnd); annotation.setStringValue(labelFeature, prediction.getIdentifier()); aJcas.getCas().addFsToIndexes(annotation); } }
+ "[{}]({}) in project [{}]({}) generated {} predictions.", aRecommender.getName(), aRecommender.getId(), aUser.getUsername(), aDocument.getName(), aDocument.getId(), aRecommender.getProject().getName(), aRecommender.getProject().getId(), predictionCount);