StringDistances.jl/src/StringDistances.jl

42 lines
899 B
Julia

__precompile__(true)
module StringDistances
##############################################################################
##
## Export
##
##############################################################################
import Distances: evaluate, Hamming, hamming, PreMetric, SemiMetric
export evaluate,
Hamming, hamming,
Levenshtein, levenshtein,
DamerauLevenshtein, damerau_levenshtein,
Jaro, jaro,
QGramIterator,
QGram, qgram,
Cosine, cosine,
Jaccard, jaccard,
Normalized,
Winkler
# 1. only do the switch once
# 2. precomputes length(s1), length(s2)
function evaluate(dist::PreMetric, s1::AbstractString, s2::AbstractString, x...)
len1, len2 = length(s1), length(s2)
if len1 > len2
return evaluate(dist, s2, s1, len2, len1, x...)
else
return evaluate(dist, s1, s2, len1, len2, x...)
end
end
include("edit.jl")
include("qgram.jl")
include("normalized.jl")
include("winkler.jl")
end