Class NormalizedLevenshteinDistance

  • All Implemented Interfaces:
    Distance<java.lang.String>, PrimitiveDistance<java.lang.String>

    @Description("Levenshtein distance, normalized by average string length.")
    @Reference(authors="V. I. Levenshtein",
               title="Binary codes capable of correcting deletions, insertions and reversals",
               booktitle="Soviet physics doklady 10",
               bibkey="journals/misc/Levenshtein66")
    public class NormalizedLevenshteinDistance
    extends java.lang.Object
    implements PrimitiveDistance<java.lang.String>
    Levenshtein distance on strings, normalized by string length.

    Note: this is no longer a metric, the triangle inequality is violated. Example: d("ab","bc")=1, d("ab", "abc")+d("abc","bc")=0.4+0.4=0.8

    Reference:

    V. I. Levenshtein
    Binary codes capable of correcting deletions, insertions and reversals.
    Soviet physics doklady. Vol. 10. 1966.

    TODO: add case insensitive flag.

    Since:
    0.6.0
    Author:
    Felix Stahlberg, Erich Schubert
    • Constructor Detail

      • NormalizedLevenshteinDistance

        @Deprecated
        public NormalizedLevenshteinDistance()
        Deprecated.
        Constructor. Use static instance instead.
    • Method Detail

      • distance

        public double distance​(java.lang.String o1,
                               java.lang.String o2)
        Description copied from interface: PrimitiveDistance
        Computes the distance between two given DatabaseObjects according to this distance function.
        Specified by:
        distance in interface PrimitiveDistance<java.lang.String>
        Parameters:
        o1 - first DatabaseObject
        o2 - second DatabaseObject
        Returns:
        the distance between two given DatabaseObjects according to this distance function
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object