private Double calculateAssociativeComponent(int tag, Map<Integer, Double> destinationTags, boolean destCount) {
		SparseVector vec = this.coocurenceMatrix.get(tag);
		double associativeValue = 0.0;
		int numbAssociatedNodes = 0;
		for (Map.Entry<Integer, Double> destinationTag : destinationTags.entrySet()) {
			Double relatedness = vec.get(destinationTag.getKey());
			if (relatedness != null && relatedness > 0.0) {
				numbAssociatedNodes++;
				associativeValue += (relatedness * (destCount ? destinationTag.getValue() : 1.0));
			}

		}
		if (!destCount && numbAssociatedNodes > 0) {
			return associativeValue / numbAssociatedNodes;
		}
		return associativeValue;
	}