String Similarity Checker
Text Tools · Added
"Close enough" is not a number until you pick a metric. This scores two strings three ways — edit distance, Jaro-Winkler and the Dice coefficient — and says what it means when the three disagree, which is the genuinely informative case.
Result
Similarity
95.3%
Nearly identical — the difference is at most a character or two.
- Levenshtein distance
- 1
- Levenshtein ratio
- 92.3%
- Jaro-Winkler
- 97.9%
- Dice
- 95.7%
1 single-character edit apart
1 − distance ÷ the longer length
Rewards a shared prefix
Overlap of character pairs
The three measures answer different questions, which is why all three are shown. Levenshtein counts edits, so it is the one to use for typos. Jaro-Winkler was designed for matching names and gives a bonus for a shared prefix — which is right for people and wrong for identifiers, where two IDs differing only in the last digit score above 98%. Dice compares character pairs and ignores order beyond adjacency. Where they agree the answer is solid; where they diverge, the divergence is telling you which kind of similarity you have.
How to use the string similarity checker
- 1Type or paste a string into each box.
- 2Choose whether case, punctuation and repeated spaces should count.
- 3Read the three scores and the plain-language verdict beneath them.
- 4Switch to the candidate list to rank one string against many at once.
Examples
The textbook pair
- Input
- kitten against sitting
- Result
- Edit distance 3 (57.1% alike), Jaro-Winkler 0.746, Dice 0.364 — 'loosely similar', flagged because the metrics disagree.
Three single-character edits: k becomes s, e becomes i, and a g is appended.
A name typed twice
- Input
- Robert Smith against Robbert Smith
- Result
- Edit distance 1, Jaro-Winkler 0.982, Dice 0.957 — 'nearly identical'.
About the string similarity checker
Three ways to be nearly the same
Similarity is not a single quantity. Levenshtein distance asks how much work it takes to get from one string to the other and answers in keystrokes. Jaro-Winkler asks how many characters roughly line up, then adds a bonus for a shared prefix — a deliberate bias, introduced because people mistype the ends of names far more often than the beginnings.
The Dice coefficient takes a third view entirely: it chops both strings into overlapping pairs of adjacent letters and asks how many pairs the two sets have in common. That makes it indifferent to where the material sits, which is exactly right for matching 'Smith, John' against 'John Smith' and exactly wrong for catching a transposed digit.
Thresholds are a property of your data
There is no universal cutoff above which two strings count as the same thing. A threshold that reliably merges duplicate customer records will happily merge two genuinely different people in a dataset full of common surnames, and one tuned for product codes will reject every legitimate spelling of a street address.
The workable method is to score a few hundred pairs you have already judged by hand, look at where the mistakes fall, and set the cutoff from that — separately for every field. A score is evidence for a decision, never the decision itself.
Frequently asked questions
Which of the three scores should I use?
Why do the metrics sometimes disagree so sharply?
What exactly does an edit distance of 3 mean?
Are emoji and accented letters handled properly?
Related tools
Text Diff Checker
Text Tools
Compare two versions of a text and see exactly which lines were added, removed or left alone.
Compare Two Lists
Text Tools
Find what two lists share, what only one side has, and how far they overlap.
Find and Replace
Text Tools
Replace text across a whole document, matching plain text or a regular expression.