private void fillChengWeights() {
		for (Bookmark data : trainList) {
			int user = data.getUserID();
			int resource = data.getWikiID();
			List<Integer> tags = data.getTags();
			
			Map<Integer, Double> tagUserWeights = null;

			if (user >= userTagWeights.size()) {
				tagUserWeights = new LinkedHashMap<Integer, Double>();
				userTagWeights.add(tagUserWeights);
			} else {
				tagUserWeights = userTagWeights.get(user);
			}
			
			Map<Integer, Double> tagResourceWeights = resourceTagWeights.get(resource);
			if (tagResourceWeights == null) {
				tagResourceWeights = new HashMap<Integer, Double>();
			}
			
			for (Integer tag : tags) {
				if (!tagUserWeights.containsKey(tag)) {
					tagUserWeights.put(tag, huangApproach.getUserTagWeight(user, tag));
				}
				if (!tagResourceWeights.containsKey(tag)) {
					tagResourceWeights.put(tag, huangApproach.getItemTagWeight(resource, tag));
				}
			}
			
			resourceTagWeights.put(resource, tagResourceWeights);
		}
	}