code: public static Map<Object, Map<Object, Double>>
  			countCategoryCoincidence(final ICodingAnnotationItem item) {
  		Map<Object, Map<Object, Double>> result =
  				new HashMap<Object, Map<Object, Double>>();
  		for (IAnnotationUnit unit1 : item.getUnits()) {
              for (IAnnotationUnit unit2 : item.getUnits()) {
  				if (unit1 == unit2) {
                      continue;
                  }
  
  				Object category1 = unit1.getCategory();
  				Object category2 = unit2.getCategory();
  				if (category1 == null || category2 == null) {
                      continue;
                  }
  
  				Map<Object, Double> cat1 = result.get(category1);
  				if (cat1 == null) {
  					cat1 = new HashMap<Object, Double>();
  					result.put(category1, cat1);
  				}
  
  				Double value = cat1.get(category2);
  				if (value == null) {
                      cat1.put(category2, 1.0);
                  }
                  else {
                      cat1.put(category2, value + 1.0);
                  }
  			}
          }
  
  		int raterCount = item.getRaterCount();
  		for (Map<Object, Double> cat2 : result.values()) {
              for (Entry<Object, Double> entry : cat2.entrySet()) {
                  cat2.put(entry.getKey(), entry.getValue() / (raterCount - 1));
              }
          }
  
  		return result;
  	}
docs: Category x Category -> #