code: public static IBitFingerprint makeBitFingerprint(final Map<String,Integer> features, int len, int bits) {
          final BitSetFingerprint fingerprint = new BitSetFingerprint(len);
          final Random rand = new Random();
          for (String feature : features.keySet()) {
              int hash = feature.hashCode();
              fingerprint.set(Math.abs(hash % len));
              for (int i = 1; i < bits; i++) {
                  rand.setSeed(hash);
                  fingerprint.set(hash = rand.nextInt(len));
              }
          }
          return fingerprint;
      }
docs: Convert a mapping of features and their counts to a binary fingerprint. Each feature
  can set 1-n hashes, the amount is modified by the {@code bits} operand.
  
  @param features features to include
  @param len fingerprint length
  @param bits number of bits to set for each pattern
  @return the continuous fingerprint