Matchcode Optimization:Jaro-Winkler

From Melissa Data Wiki
Jump to navigation Jump to search

← MatchUp Hub

Matchcode Optimization Navigation
Matchcode Optimization
First Component
Fuzzy Algorithms
Swap Matching
Blank Matching
Advanced Component Types
Algorithms
Accunear
Alphas
Consonants
Containment
Dice's Coefficient
Double Metaphone
Exact
Fast Near
Frequency
Frequency Near
Jaccard Similarity Coefficient
Jaro
Jaro-Winkler
Longest Common Substring (LCS)
MD Keyboard
Needleman-Wunsch
N-Gram
Numeric
Overlap Coefficient
Phonetex
Smith-Waterman-Gotoh
Soundex
UTF8 Near
Vowels


Jaro-Winkler

Specifics

Winkler Distance

Summary

Like Jaro, JaroWinkler gathers common characters (in order) between the two strings, but adds in a bonus for matching characters at the start of the string (up to 4 characters). then counts transpositions between the two common strings.

Returns

Percentage of similarity
Jaro + WinklerFactor * WinklerScale * (1-Jaro)
WinklerFactor is defined as the length of common prefix at the start of the string up to a maximum of four characters.
WinklerScale is a constant scaling factor for adjusting the common Winkler factor. MatchUp uses the commonly used standard of 0.1.

Example Matchcode Component

Example Data

STRING1 STRING2 RESULT
Johnson Jhnsn Match Found
Stephenz Stevens Match Found
Beaumarchais Bumarchay Unique
Apco Oil Lube 170 Apco Oil Lube 342 Match Found



Performance
Slower Faster
Matches
More Matches Greater Accuracy


Recommended Usage

Hybrid deduper, where a single incoming record can quickly be evaluated independently against each record in an existing large master database.
Databases created with abbreviations or similar word substitutions.
Multi word field data where a trailing word does not appear in every record in the expected group.

Not Recommended For

Large or Enterprise level batch runs where the matchcode component using this algorithm prevents efficient clustering. Since the algorithm must be evaluated for each record comparison, throughput will be very slow.
Databases created via real-time data entry where audio likeness errors are introduced.

Do Not Use With

UTF-8 data. This algorithm was ported to MatchUp with the assumption that a character equals one byte, and therefore results may not be accurate if the data contains multi-byte characters.