LSH · near-duplicate detection · set similarity
Locality-Sensitive Hashing — similar inputs produce similar hashes (unlike cryptographic hashes). SimHash for near-duplicate text detection (Google's original dedup). MinHash for estimating Jaccard set similarity. Pure JavaScript.
Text A — its 64-bit SimHash fingerprint renders instantly in the output panel.Text B (compare similarity) to compare the two.Hamming distance value — 3 or fewer flipped bits out of 64 is flagged as a likely near-duplicate.MinHash (Jaccard similarity) figure for the fraction of unique words the two texts share.Clear to reset both boxes and start a fresh comparison.SimHash is the fingerprint Google used to find near-duplicate pages during crawling — compare any two texts the same way.
Reworded or lightly rewritten text hashes close to the original, so a low Hamming distance flags copies that aren't byte-identical.
MinHash approximates Jaccard similarity without storing full word sets — the same trick that powers large-scale dedup and search.
Use the fingerprint as a key to bucket mirrors, spam, or duplicate rows before running expensive exact matching.
See firsthand how similar inputs produce similar hashes — the opposite of cryptographic hashes like SHA-256.
All hashing and comparison runs in your browser. Nothing is uploaded, logged, or sent to a server.
SimHash maps a whole document to a fixed 64-bit fingerprint, where similar documents yield close fingerprints (low Hamming distance). MinHash estimates Jaccard similarity between the two texts' sets of unique words.
A common rule of thumb is ≤ 3 flipped bits out of 64. This tool flags that threshold as "Likely near-duplicate".
The text is split into words, each word is hashed, and for every one of the 64 bit positions the tool adds or subtracts a weight. The sign of each total determines that bit of the fingerprint.
SimHash weights individual word occurrences, so a small edit changes only a few tokens and flips only a few of the 64 bits.
It's |A∩B| / |A∪B|: shared unique words over total unique words. 1.0 means identical word sets and 0.0 means no shared words.
No. A cryptographic hash is designed so similar inputs hash far apart, while locality-sensitive hashing maps similar inputs close together.
Never. All computation runs locally in JavaScript. Your input is not sent to, stored on, or logged by any server.