diff --git a/src/StringDistances.jl b/src/StringDistances.jl index 305047b..8b92bcf 100644 --- a/src/StringDistances.jl +++ b/src/StringDistances.jl @@ -20,20 +20,18 @@ Jaccard, jaccard, Normalized, Winkler -# Two reasons for this method -# 1. only do the switch once (becomes more complicated when calling Normalized or Winkler Adjusted distance -# 2. precomputes length(s1), length(s2) since costly for Unicode (I think it needs to traverse the array?) + +# 1. only do the switch once +# 2. precomputes length(s1), length(s2) function evaluate(dist, s1::AbstractString, s2::AbstractString) - len1, len2 = length(s1), length(s2) - if len1 > len2 - return evaluate(dist, s2, s1, len2, len1) - else - return evaluate(dist, s1, s2, len1, len2) + len1, len2 = length(s1), length(s2) + if len1 > len2 + return evaluate(dist, s2, s1, len2, len1) + else + return evaluate(dist, s1, s2, len1, len2) end end - - include("edit.jl") include("qgram.jl") include("normalized.jl") diff --git a/src/edit.jl b/src/edit.jl index 6777f16..71ca347 100644 --- a/src/edit.jl +++ b/src/edit.jl @@ -18,8 +18,6 @@ function common_prefix(s1::AbstractString, s2::AbstractString, lim::Integer = -1 return l, start1, start2 end - - ############################################################################## ## ## Hamming @@ -27,7 +25,6 @@ end ############################################################################## function evaluate(dist::Hamming, s1::AbstractString, s2::AbstractString, len1::Integer, len2::Integer) - count = 0 state2 = start(s2) for ch1 in s1 @@ -203,7 +200,6 @@ function evaluate(dist::Jaro, s1::AbstractString, s2::AbstractString, len1::Inte end m == 0.0 && return 1.0 score = (m / len1 + m / len2 + (m - t) / m) / 3.0 - return 1 - score end