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;
}