From 9e73346c07ba7336967fd1416da7284922ba5742 Mon Sep 17 00:00:00 2001 From: matthieugomez Date: Sat, 17 Aug 2019 16:12:41 -0400 Subject: [PATCH] add --- src/compare.jl | 3 ++- src/distances/edit.jl | 5 +++-- test/modifiers.jl | 5 ++++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/compare.jl b/src/compare.jl index f257c12..e54546a 100755 --- a/src/compare.jl +++ b/src/compare.jl @@ -135,9 +135,10 @@ function compare(s1::AbstractString, s2::AbstractString, dist::TokenSet) s0 = join(v0, " ") s1 = join(v1, " ") s2 = join(v2, " ") + isempty(s0) && return compare(s1, s2, dist.dist) max(compare(s0, s1, dist.dist), compare(s0, s2, dist.dist), - compare(s1, s2, dist.dist)) + compare(s1, s2, dist.dist)) end diff --git a/src/distances/edit.jl b/src/distances/edit.jl index d25f356..46eab5e 100755 --- a/src/distances/edit.jl +++ b/src/distances/edit.jl @@ -193,8 +193,9 @@ end struct RatcliffObershelp <: PreMetric end function evaluate(dist::RatcliffObershelp, s1::AbstractString, s2::AbstractString) - n_matched = sum(last.(matching_blocks(s1, s2))) - 1.0 - 2 * n_matched / (length(s1) + length(s2)) + n_matched = sum(last.(matching_blocks(s1, s2))) + len1, len2 = length(s1), length(s2) + len1 + len2 == 0 ? 0 : 1.0 - 2 * n_matched / (len1 + len2) end function matching_blocks(s1::AbstractString, s2::AbstractString) diff --git a/test/modifiers.jl b/test/modifiers.jl index 6802270..40f2c1c 100644 --- a/test/modifiers.jl +++ b/test/modifiers.jl @@ -68,10 +68,13 @@ s = "HSINCHUANG" @test compare("mariners vs angels", "los angeles angels of anaheim at seattle mariners", TokenSet(RatcliffObershelp())) ≈ 1.0 - 0.09090909090909094 +@test compare("New York Mets vs Atlanta Braves", "", RatcliffObershelp()) ≈ 0.0 + + @test compare("New York Mets vs Atlanta Braves", "", TokenSort(RatcliffObershelp())) ≈ 0.0 # ADD AGAIN -#@test compare("mariners vs angels", "", TokenSet(RatcliffObershelp())) ≈ 0.0 +@test compare("mariners vs angels", "", TokenSet(RatcliffObershelp())) ≈ 0.0