public NeighborRelatednessResponse(NeighborRelatednessRequest request, Map<String, Map<String, Double>> terms) { super(request); this.scoreFunction = request.getScoreFunction(); this.topk = request.getTopk(); this.terms = Objects.requireNonNull(terms); }
public final Map<String, Map<String, Double>> getNeighborRelatedness(NeighborRelatednessRequest request) { logger.trace("getting neighbors relatedness for {} terms (request={})", request.getTerms().size(), request); RelatednessClient relatednessClient = relatednessClientFactory.create(request); Threshold threshold = sf.create(request.getThreshold(), Threshold.class); Filter filter = sf.create(request.getFilter(), Filter.class); RelatednessFunction func = sf.create(request.getScoreFunction(), RelatednessFunction.class); VectorComposer termComposer = sf.create(request.getTermComposition(), VectorComposer.class); VectorComposer TranslationComposer = sf.create(request.getTranslationComposition(), VectorComposer.class); Map<String, Map<String, Double>> relatedness = relatednessClient.getNeighborRelatedness(request.getTerms(), request.getTopk(), threshold, filter, func, termComposer, TranslationComposer); logger.trace("done"); return relatedness; }
@Override protected String isValid() { String errors = super.isValid(); StringBuilder errorMessages = new StringBuilder(errors); checkAndAppendErrorMessagesLists(terms, "terms", errorMessages); if(topk <= 0) { errorMessages.append(" - 'topk' must be greater than 0;\\n"); } if(isMt()) { errorMessages.append(" - machine translation not supported in this function. 'mt' can't be true;\\n"); } return errorMessages.toString(); }
@Override public NeighborRelatednessResponse getNeighborRelatedness(NeighborRelatednessRequest request) { Map<String, Map<String, Double>> terms = new HashMap<>(); for (String term : request.getTerms()) { Map<String, Double> ns = new HashMap<>(); for (String neighbor : getRandomWords()) { ns.put(neighbor, ThreadLocalRandom.current().nextDouble(0, 1)); } terms.put(term, ns); } return new NeighborRelatednessResponse(request, terms); }