Class JaroWinklerDistance

  • All Implemented Interfaces:
    EditDistance<java.lang.Double>, SimilarityScore<java.lang.Double>

    public class JaroWinklerDistance
    extends java.lang.Object
    implements EditDistance<java.lang.Double>
    Measures the Jaro-Winkler distance of two character sequences. It is the complementary of Jaro-Winkler similarity.
    Since:
    1.0
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int INDEX_NOT_FOUND
      Deprecated.
      Deprecated as of 1.7.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Double apply​(java.lang.CharSequence left, java.lang.CharSequence right)
      Computes the Jaro Winkler Distance between two character sequences.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • INDEX_NOT_FOUND

        @Deprecated
        public static final int INDEX_NOT_FOUND
        Deprecated.
        Deprecated as of 1.7. This constant will be removed in 2.0.
        See Also:
        Constant Field Values
    • Constructor Detail

      • JaroWinklerDistance

        public JaroWinklerDistance()
    • Method Detail

      • apply

        public java.lang.Double apply​(java.lang.CharSequence left,
                                      java.lang.CharSequence right)
        Computes the Jaro Winkler Distance between two character sequences.
         distance.apply(null, null)          = IllegalArgumentException
         distance.apply("foo", null)         = IllegalArgumentException
         distance.apply(null, "foo")         = IllegalArgumentException
         distance.apply("", "")              = 0.0
         distance.apply("foo", "foo")        = 0.0
         distance.apply("foo", "foo ")       = 0.06
         distance.apply("foo", "foo  ")      = 0.09
         distance.apply("foo", " foo ")      = 0.13
         distance.apply("foo", "  foo")      = 0.49
         distance.apply("", "a")             = 1.0
         distance.apply("aaapppp", "")       = 1.0
         distance.apply("frog", "fog")       = 0.07
         distance.apply("fly", "ant")        = 1.0
         distance.apply("elephant", "hippo") = 0.56
         distance.apply("hippo", "elephant") = 0.56
         distance.apply("hippo", "zzzzzzzz") = 1.0
         distance.apply("hello", "hallo")    = 0.12
         distance.apply("ABC Corporation", "ABC Corp") = 0.09
         distance.apply("D N H Enterprises Inc", "D & H Enterprises, Inc.") = 0.05
         distance.apply("My Gym Children's Fitness Center", "My Gym. Childrens Fitness") = 0.08
         distance.apply("PENNSYLVANIA", "PENNCISYLVNIA") = 0.12
         
        Specified by:
        apply in interface EditDistance<java.lang.Double>
        Specified by:
        apply in interface SimilarityScore<java.lang.Double>
        Parameters:
        left - the first CharSequence, must not be null
        right - the second CharSequence, must not be null
        Returns:
        result distance
        Throws:
        java.lang.IllegalArgumentException - if either CharSequence input is null