public Map<Integer, Double> getRankedTagList(int userID, int resID) {
		
		Map<Integer, Double> resultMap = new LinkedHashMap<Integer, Double>();
		this.tagRecencies = new ArrayList<Map<Integer, Double>>();
		// TODO: calculate your recommendations here and return the top-10 (=REC_LIMIT) tags with probability value
		// have also a look on the other calculator classes!
		
			if (this.userMaps != null && userID < this.userMaps.size()) {
				Map<Integer, Double> userMap = this.userMaps.get(userID);
				Map<Integer, Double> recMap = this.tagRecencies.get(userID);
				for (Map.Entry<Integer, Double> entry : userMap.entrySet()) {
					resultMap.put(entry.getKey(), entry.getValue().doubleValue() * recMap.get(entry.getKey()).doubleValue());
				}
			}
			if (this.resMaps != null && resID < this.resMaps.size()) {
				Map<Integer, Double> resMap = this.resMaps.get(resID);
				for (Map.Entry<Integer, Double> entry : resMap.entrySet()) {
					Double val = resultMap.get(entry.getKey());
					resultMap.put(entry.getKey(), val == null ? entry.getValue().doubleValue() : val.doubleValue() + entry.getValue().doubleValue());
				}
			}
		
			Map<Integer, Double> returnMap = new LinkedHashMap<Integer, Double>();
			Map<Integer, Double> sortedResultMap = new TreeMap<Integer, Double>(new DoubleMapComparator(resultMap));
			sortedResultMap.putAll(resultMap);
			int count = 0;
			for (Map.Entry<Integer, Double> entry : sortedResultMap.entrySet()) {
				if (count++ < 10) {
					returnMap.put(entry.getKey(), entry.getValue());
				} else {
					break;
				}
			}		
			return returnMap;

		//Ahora calculo en base a TF-IDF 
			
			//DecimalFormat df = new DecimalFormat("0.0000");
			
			// Obtener el perfil del usuario con el "Me Gusta" para cada etiqueta
			
			//SparseVector userVector = makeUserVector(userID);
	
			// Loop sobre cada elemento requerido y su puntuación
			// El dominio del vector de salida es lo que se conseguirá
			
			//for (VectorEntry e: resID.fast(VectorEntry.State.EITHER))
			//{
				// El Score del item representado por e.
				// Obtener el vector del item para este item en particular
				
			//	SparseVector iv = model.getItemVector(e.getKey());
				// Se calcula el coseno del item y el perfil del ususario
				//Se guarda en el vector de salida
	
			//	double numerator = iv.dot(userVector);
			//	double denominator = iv.norm() * userVector.norm();
			//	double cosineSimilarity = numerator / denominator;
			//	try
			//	{
			//		double rounded = df.parse(df.format(cosineSimilarity)).doubleValue();
			//		logger.info("Cos similarity for item {} and user {} is {}", e.getKey(), userID, rounded);
	
			//		resID.set(e.getKey(), rounded);
			//	}
			//	catch (ParseException e1)
			//	{
			//		logger.error("Error while parsing double", e1);
			//	}
			//}
	}