public JsonObject getRecomDataInJson()

in core/src/main/java/org/apache/sdap/mudrod/recommendation/structure/HybridRecommendation.java [96:147]


  public JsonObject getRecomDataInJson(String input, int num) {
    JsonObject resultJson = new JsonObject();

    String type = MudrodConstants.METADATA_FEATURE_SIM_TYPE;
    Map<String, Double> sortedVariableSimMap = getRelatedData(type, input, num + 10);

    type = MudrodConstants.METADATA_WORD_SIM_TYPE;
    Map<String, Double> sortedAbstractSimMap = getRelatedData(type, input, num + 10);

    type = MudrodConstants.METADATA_SESSION_SIM_TYPE;
    Map<String, Double> sortedSessionSimMap = getRelatedData(type, input, num + 10);

    JsonElement variableSimJson = mapToJson(sortedVariableSimMap, num);
    resultJson.add("variableSim", variableSimJson);
    JsonElement abstractSimJson = mapToJson(sortedAbstractSimMap, num);
    resultJson.add("abstractSim", abstractSimJson);
    JsonElement sessionSimJson = mapToJson(sortedSessionSimMap, num);
    resultJson.add("sessionSim", sessionSimJson);

    Map<String, Double> hybirdSimMap = new HashMap<String, Double>();

    for (String name : sortedAbstractSimMap.keySet()) {
      hybirdSimMap.put(name, sortedAbstractSimMap.get(name) /** 0.4 */);
    }

    for (String name : sortedVariableSimMap.keySet()) {
      if (hybirdSimMap.get(name) != null) {
        double sim = hybirdSimMap.get(name) + sortedVariableSimMap.get(name) /** 0.3 */;
        hybirdSimMap.put(name, Double.parseDouble(df.format(sim)));
      } else {
        double sim = sortedVariableSimMap.get(name);
        hybirdSimMap.put(name, Double.parseDouble(df.format(sim)));
      }
    }

    for (String name : sortedSessionSimMap.keySet()) {
      if (hybirdSimMap.get(name) != null) {
        double sim = hybirdSimMap.get(name) + sortedSessionSimMap.get(name) /** 0.1 */;
        hybirdSimMap.put(name, Double.parseDouble(df.format(sim)));
      } else {
        double sim = sortedSessionSimMap.get(name);
        hybirdSimMap.put(name, Double.parseDouble(df.format(sim)));
      }
    }

    Map<String, Double> sortedHybirdSimMap = this.sortMapByValue(hybirdSimMap);

    JsonElement linkedJson = mapToJson(sortedHybirdSimMap, num);
    resultJson.add("linked", linkedJson);

    return resultJson;
  }