Edit distance measures how many changes (insertions, deletions, or substitutions) are needed to turn one word into another. It helps us know how similar two words or strings are. A smaller edit distance means the words are more alike. This is important in spell checkers, search engines, and language tools to find close matches or fix typos.
Edit distance (Levenshtein) in NLP - Model Metrics & Evaluation
Example: Comparing "cat" and "cut"
Operations needed:
c a t
| | |
c u t
Changes:
- Substitute 'a' with 'u' (1 change)
Edit distance = 1
Visualization (matrix of costs):
'' c u t
'' 0 1 2 3
c 1 0 1 2
a 2 1 1 2
t 3 2 2 1
The bottom-right cell shows the edit distance = 1
In tasks using edit distance, like spell correction, we balance between:
- Precision: How often the suggested correction is actually right. High precision means fewer wrong fixes.
- Recall: How many of the misspelled words we manage to fix. High recall means catching most errors.
For example, if we only fix words with very small edit distance (like 1), precision is high but recall is low (we miss some errors). If we allow bigger edit distances, recall improves but precision drops (more wrong suggestions).
A good edit distance result is a low number when comparing similar words (like 0 or 1 for typos). For example, "book" vs "books" has edit distance 1 (good match). A bad result is a high edit distance for words that should be close, or a low edit distance for very different words (which means the metric is not capturing similarity well).
In applications, a good threshold might be edit distance ≤ 2 for short words to suggest corrections. Higher distances usually mean unrelated words.
- Ignoring word length: Edit distance is absolute, so longer words naturally have higher distances. Normalizing by word length helps.
- Overfitting to small changes: Some errors need more complex fixes than simple edits.
- Not considering context: Edit distance looks only at characters, not meaning or word usage.
- Computational cost: Calculating edit distance for many pairs can be slow without optimization.
Your spell checker suggests corrections only when edit distance ≤ 1. It misses many typos with distance 2 or 3. Is this good? Why or why not?
Answer: This means high precision (few wrong corrections) but low recall (many typos missed). Depending on your goal, you might want to allow higher edit distances to catch more errors, accepting some wrong suggestions.