Exemplo n.º 1
0
        public double GetJaccardIndex(MinHash other)
        {
            if (MinHashes.Length != other.MinHashes.Length)
            {
                throw new ArgumentException($"Hash length should be {MinHashes.Length}.", nameof(other));
            }

            var count    = MinHashes.Where((t, i) => t == other.MinHashes[i]).Count();
            var estimate = (double)count / MinHashes.Length;

            return(estimate);
        }
Exemplo n.º 2
0
        public MinHash Merge(MinHash other)
        {
            var minHashes = new ulong[HashLength];

            for (var i = 0; i < minHashes.Length; i++)
            {
                minHashes[i] = MinHashes[i] < other.MinHashes[i] ? MinHashes[i] : other.MinHashes[i];
            }

            var hash = new MinHash(minHashes);

            return(hash);
        }