Matchcode Optimization:Jaro-Winkler: Difference between revisions
Jump to navigation
Jump to search
Created page with "{{MatchcodeOptimizationNav |AlgorithmsCollapse= }} ==Jaro-Winkler== ===Specifics=== Winkler Distance *http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance ===Summary==..." |
No edit summary |
||
Line 5: | Line 5: | ||
==Jaro-Winkler== | ==Jaro-Winkler== | ||
===Specifics=== | ===Specifics=== | ||
Winkler Distance | :Winkler Distance | ||
*http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance | :*http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance | ||
===Summary=== | ===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. | :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=== | ===Returns=== | ||
Percentage of similarity | :Percentage of similarity | ||
Jaro + WinklerFactor * WinklerScale * (1-Jaro) | :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. | :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. | :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 Matchcode Component=== | ||
Line 26: | Line 26: | ||
{{ExampleDataTableV1|STRING1|STRING2|RESULT | {{ExampleDataTableV1|STRING1|STRING2|RESULT | ||
|AdditionalRows= | |AdditionalRows= | ||
{{EDTRow| | {{EDTRow|Green|Johnson|Jhnsn|Match Found}} | ||
{{EDTRow| | {{EDTRow|Green|Stephenz|Stevens|Match Found}} | ||
{{EDTRow| | {{EDTRow|White|Beaumarchais|Bumarchay|Unique}} | ||
{{EDTRow|Green|Apco Oil Lube 170|Apco Oil Lube 342|Match Found}} | {{EDTRow|Green|Apco Oil Lube 170|Apco Oil Lube 342|Match Found}} | ||
}} | }} | ||
Line 41: | Line 41: | ||
===Recommended Usage=== | ===Recommended Usage=== | ||
Hybrid deduper, where a single incoming record can quickly be evaluated independently against each record in an existing large master database. | :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. | :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. | :Multi word field data where a trailing word does not appear in every record in the expected group. | ||
===Not Recommended For=== | ===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. | :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. | :Databases created via real-time data entry where audio likeness errors are introduced. | ||
===Do Not Use With=== | ===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. | :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. | ||
[[Category:MatchUp Hub]] | [[Category:MatchUp Hub]] | ||
[[Category:Matchcode Optimization]] | [[Category:Matchcode Optimization]] |
Latest revision as of 14:24, 27 September 2018
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.