Jaro–Winkler distance

From Wikipedia, the free encyclopedia
  (Redirected from Jaro distance)
Jump to: navigation, search

In computer science and statistics, the Jaro–Winkler distance is a string metric for measuring the edit distance between two sequences. It is a variant proposed in 1999 by William E. Winkler of the Jaro distance metric (1989, Matthew A. Jaro). Informally, the Jaro distance between two words is the minimum number of single-character transpositions required to change one word into the other.

The Jaro–Winkler distance uses a prefix scale which gives more favourable ratings to strings that match from the beginning for a set prefix length .

The lower the Jaro–Winkler distance for two strings is, the more similar the strings are. The score is normalized such that 1 equates to no similarity and 0 is an exact match. The Jaro–Winkler similarity is given by 1 − Jaro–Winkler distance.

Although often referred to as a distance metric, the Jaro–Winkler distance is not a metric in the mathematical sense of that term because it does not obey the triangle inequality.

Definition[edit]

Jaro distance[edit]

The Jaro distance of two given strings and is

Where:

  • is the length of the string ;
  • is the number of matching characters (see below);
  • is half the number of transpositions (see below).

Two characters from and respectively, are considered matching only if they are the same and not farther than .

Each character of is compared with all its matching characters in . The number of matching (but different sequence order) characters divided by 2 defines the number of transpositions. For example, in comparing CRATE with TRACE, only 'R' 'A' 'E' are the matching characters, i.e. m=3. Although 'C', 'T' appear in both strings, they are farther than 1, i.e., floor(5/2)-1=1. Therefore, t=0 . In DwAyNE versus DuANE the matching letters are already in the same order D-A-N-E, so no transpositions are needed.

Jaro–Winkler distance[edit]

Jaro–Winkler distance uses a prefix scale which gives more favourable ratings to strings that match from the beginning for a set prefix length . Given two strings and , their Jaro–Winkler distance is:

where:

  • is the Jaro distance for strings and
  • is the length of common prefix at the start of the string up to a maximum of four characters
  • is a constant scaling factor for how much the score is adjusted upwards for having common prefixes. should not exceed 0.25, otherwise the distance can become larger than 1. The standard value for this constant in Winkler's work is

Although often referred to as a distance metric, the Jaro–Winkler distance is not a metric in the mathematical sense of that term because it does not obey the triangle inequality.[1] The Jaro–Winkler distance also does not satisfy that axiom that states that .

In some implementations of Jaro–Winkler, the prefix bonus is only added when the compared strings have a Jaro distance above a set "boost threshold" . The boost threshold in Winkler's implementation was 0.7.

Example[edit]

Note that Winkler's "reference" C code differs in at least two ways from published accounts of the Jaro–Winkler metric. First is his use of a typo table (adjwt) and also some optional additional tolerance for long strings.

Example #1[edit]

Given the strings MARTHA and MARHTA we find:

M A R T H A
M 1 0 0 0 0 0
A 0 1 0 0 0 0
R 0 0 1 0 0 0
H 0 0 0 0 1 0
T 0 0 0 1 0 0
A 0 0 0 0 0 1

Here, the shaded cells are the match window for each character. A 1 in a cell indicates a match.

  • There are mismatched characters T/H and H/T leading to

We find a Jaro score of:

To find the Jaro–Winkler score using the standard weight , we continue to find:

Thus:

Example #2[edit]

Given the strings DWAYNE and DUANE we find:

We find a Jaro score of:

To find the Jaro–Winkler score using the standard weight , we continue to find:

Thus:

Example #3[edit]

Given the strings DIXON and DICKSONX we find:

D I X O N
D 1 0 0 0 0
I 0 1 0 0 0
C 0 0 0 0 0
K 0 0 0 0 0
S 0 0 0 0 0
O 0 0 0 1 0
N 0 0 0 0 1
X 0 0 0 0 0

Here, the shaded cells are the match window for each character. A 1 in a cell indicates a match. Note that the two Xs are not considered matches because they are outside the match window of 3.

We find a Jaro score of:

To find the Jaro–Winkler score using the standard weight , one continues to find:

.

Thus:

Relationship with other edit distance metrics[edit]

There are other popular measures of edit distance, which are calculated using a different set of allowable edit operations. For instance,

Edit distance is usually defined as a parameterizable metric calculated with a specific set of allowed edit operations, and each operation is assigned a cost (possibly infinite). This is further generalized by DNA sequence alignment algorithms such as the Smith–Waterman algorithm, which make an operation's cost depend on where it is applied.

See also[edit]

Footnotes[edit]

  1. ^ "Jaro-Winkler «  Inviting Epiphany". RichardMinerich.com. Retrieved 12 June 2017. 

References[edit]

External links[edit]