public ArrayList<String> outRecipeEntropy(ArrayList<String> countryLst) {
		LogLogger.debug("------");
		ArrayList<String> context = new ArrayList<String>();
		ArrayList<String> columns = fooddescaccess.getfooddescAll();
		HashMap<String, Double> sumGroup = new HashMap<String, Double>();
		
		String outString = "recipeName,country,";
		
		// delete sum zero columns
		for (int i = 0; i < columns.size(); i++) {
			if (detailaccess.getIngredientAmoutSumByCountry(columns.get(i),new ArrayList<String>()) == 0) {
				columns.remove(i);
				i--;
			} else {
				outString = outString + StringProcess.EraseInterpunction(columns.get(i), "") + ",";
			}
		}
		context.add(outString.substring(0,outString.length() - 1));
		
		// create sum map
		for (int i = 0; i < columns.size(); i++) {
			double sumValue = detailaccess.getIngredientAmoutSumByCountry(columns.get(i),countryLst);
			sumGroup.put(columns.get(i).trim(), sumValue);
			LogLogger.debug(columns.get(i).trim() + ":" + sumValue);
		}
		
		// get master data
		ArrayList<recipeMasterBean> masterLst = masteraccess.getRecipeMasterByCountry(countryLst);
		for (int i = 0; i < masterLst.size(); i++) {
			recipeMasterBean masterbean = masterLst.get(i);
			
			outString = masterbean.getRecipeName() + ","
					  + masterbean.getCountry() + ",";
			
			// get detail data;
			ArrayList<recipeDetailBean> detailLst = detailaccess.getRecipeDetail(masterbean.getRecipeName());
			for (int j = 0; j < columns.size(); j++) {
				String columnValue = "0,";
				
				for(int m = 0; m < detailLst.size(); m++) {
					recipeDetailBean detailbean = detailLst.get(m);
					if (detailbean.getIngredientName().equals(columns.get(j).trim())) {
						double sumXij = sumGroup.get(columns.get(j));
						double Xij = Double.parseDouble(detailbean.getIngredientAmount());
						String sIngredientAmount = "0";
						if (sumXij > 0 && Xij > 0) {
							double Pij = Xij/sumXij;
							double lnPij = Math.log(Pij);
							sIngredientAmount = String.valueOf(Pij * lnPij);
							LogLogger.debug("sum:" + sumXij + " Xij:" + Xij + " Pij:" + Pij + " lnPij:" + lnPij);
						}
						columnValue = sIngredientAmount + ",";
						break;
					}
				}
				
				outString = outString + columnValue;
			}
			
			context.add(outString.substring(0,outString.length() - 1));
		}
		return context;
	}