code: private String simHash(List<Word> words) {
          float[] hashBit = new float[hashBitCount];
          words.forEach(word -> {
              float weight = word.getWeight()==null?1:word.getWeight();
              BigInteger hash = hash(word.getText());
              for (int i = 0; i < hashBitCount; i++) {
                  BigInteger bitMask = new BigInteger("1").shiftLeft(i);
                  if (hash.and(bitMask).signum() != 0) {
                      hashBit[i] += weight;
                  } else {
                      hashBit[i] -= weight;
                  }
              }
          });
          StringBuffer fingerprint = new StringBuffer();
          for (int i = 0; i < hashBitCount; i++) {
              if (hashBit[i] >= 0) {
                  fingerprint.append("1");
              }else{
                  fingerprint.append("0");
              }
          }
          return fingerprint.toString();
      }
docs: 计算词列表的SimHash值
  @param words 词列表
  @return SimHash值