Provided by: simhash_0.0.20110213-1_amd64 bug

NAME

       simhash - file similarity hash tool

SYNOPSIS

       simhash [ -s nshingles ] [ -f nfeatures ] [ file ]
       simhash [ -s nshingles ] [ -f nfeatures ] -w file ...
       simhash [ -s nshingles ] [ -f nfeatures ] -m file ...
       simhash -c hashfile hashfile

DESCRIPTION

       This program is used to compute and compare similarity hashes of files.  A similarity hash
       is a chunk of data that has the property  that  some  distance  metric  between  files  is
       proportional  to  some  distance metric between the hashes.  Typically the similarity hash
       will be much smaller than the file itself.

       The algorithm used by simhash is Manassas' "shingleprinting" algorithm  (see  BIBLIOGRAPHY
       below):  take  a  hash  of every m-byte subsequence of the file, and retain the n of these
       hashes that are numerically smallest.  The size of the intersection of the  hash  sets  of
       two files gives a statistically good estimate of the similarity of the files as a whole.

       In  its  default  mode,  simhash will compute the similarity hash of its file argument (or
       stdin) and write this hash to its standard output.  When invoked with the -w argument (see
       below),  simhash  will  compute  similarity  hashes of all of its file arguments in "batch
       mode".  When invoked with the -m argument (see below), simhash will compare all the  given
       files using similarity hashes in "match mode".  Finally, when invoked with the -c argument
       (see below), simhash will report the degree of similarity between two hashes.

OPTIONS

       -f feature-count
              When computing a similarity hash, retain at most feature-count  significant  hashes
              from  the  target  file.   The default is 128 features.  Larger feature counts will
              give higher resolution in differences between files, will increase the size of  the
              similarity  hash  proportionally to the feature count, and will increase similarity
              hash computation time slightly.

       -s shingle-size
              When computing a similarity hash, use hashes of samples consisting of  shingle-size
              consecutive  bytes drawn from the target file.  The default is 8 bytes, the minimum
              is 4 bytes.  Larger shingle sizes will emphasize the differences between files more
              and will slow the similarity hash computation proportionally to the shingle size.

       -c hashfile1 hashfile2
              Display  the  distance  (normalized  to the range 0..1) between the similarity hash
              stored in hashfile1 and the similarity hash stored in hashfile2.

       -w file ...
              Write the similarity hash of each of the file arguments to file.sim.

       -m file ...
              Compute the similarity hash of each of the file arguments, and output a  similarity
              matrix for those files.

AUTHOR

       Bart Massey <bart@cs.pdx.edu>

BUGS

       This  currently  uses  CRC32  for the hashing.  A Rabin Fingerprint should be offered as a
       slightly slower but more reliable alternative.

       The shingleprinting algorithm works for text files and fairly well  for  other  sequential
       filetypes,  but  does  not  work  well for image files.   The latter both are 2D and often
       undergo odd transformations.

BIBLIOGRAPHY

       Mark Manasse, Microsoft Research Silicon Valley.  Finding similar things quickly in  large
       collections.  http://research.microsoft.com/research/sv/PageTurner/similarity.htm

       Andrei  Z.  Broder.   On the resemblance and containment of documents.  In Compression and
       Complexity  of  Sequences  (SEQUENCES'97),  pages  21-29.  IEEE  Computer  Society,  1998.
       ftp://ftp.digital.com/pub/DEC/SRC/publications/broder/positano-final-wpnums.pdf

       Andrei  Z.  Broder.   Some applications of Rabin's fingerprinting method.  Published in R.
       Capocelli, A. De Santis,  U.  Vaccaro  eds.,  Sequences  II:  Methods  in  Communications,
       Security,         and        Computer        Science,        Springer-Verlag,        1993.
       http://athos.rutgers.edu/~muthu/broder.ps

                                          3 January 2007                               SIMHASH(1)