diff options
author | Rocky Madden <git@rockymadden.com> | 2012-11-19 20:18:57 -0700 |
---|---|---|
committer | Rocky Madden <git@rockymadden.com> | 2012-11-19 20:18:57 -0700 |
commit | 5cfd7ccbcb22e1ec8433c7911b43ea8f2883c3f6 (patch) | |
tree | 8de9aef141c703a01be08221da977246c2d03bba | |
parent | 8b8ce923a152c9395f4af52ad27104fc5c1c6512 (diff) | |
download | stringmetric-5cfd7ccbcb22e1ec8433c7911b43ea8f2883c3f6.tar.gz stringmetric-5cfd7ccbcb22e1ec8433c7911b43ea8f2883c3f6.tar.bz2 stringmetric-5cfd7ccbcb22e1ec8433c7911b43ea8f2883c3f6.zip |
Condense code.
4 files changed, 15 insertions, 22 deletions
diff --git a/core/source/core/scala/org/hashtree/stringmetric/similarity/HammingMetric.scala b/core/source/core/scala/org/hashtree/stringmetric/similarity/HammingMetric.scala index e10cfad..223ca54 100755 --- a/core/source/core/scala/org/hashtree/stringmetric/similarity/HammingMetric.scala +++ b/core/source/core/scala/org/hashtree/stringmetric/similarity/HammingMetric.scala @@ -30,7 +30,6 @@ object HammingMetric extends StringMetric with FilterableStringMetric { require(ct._1.length == ct._2.length) if (ct._1.length == 0) 0 - else - ct._1.zip(ct._2).count(t => t._1 != t._2) + else ct._1.zip(ct._2).count(t => t._1 != t._2) } }
\ No newline at end of file diff --git a/core/source/core/scala/org/hashtree/stringmetric/similarity/LevenshteinMetric.scala b/core/source/core/scala/org/hashtree/stringmetric/similarity/LevenshteinMetric.scala index d91fb37..71ab895 100755 --- a/core/source/core/scala/org/hashtree/stringmetric/similarity/LevenshteinMetric.scala +++ b/core/source/core/scala/org/hashtree/stringmetric/similarity/LevenshteinMetric.scala @@ -37,16 +37,14 @@ object LevenshteinMetric extends StringMetric with FilterableStringMetric { case (r, c) if m(r)(c) != -1 => m(r)(c) case (r, c) => { val min = { - if (ct._1(r - 1) == ct._2(c - 1)) - distance(r - 1, c - 1) - else + if (ct._1(r - 1) == ct._2(c - 1)) distance(r - 1, c - 1) + else math.min( math.min( - math.min( - distance(r - 1, c) + 1, // Delete (left). - distance(r, c - 1) + 1 // Insert (up). - ), - distance(r - 1, c - 1) + 1 // Substitute (left-up). - ) + distance(r - 1, c) + 1, // Delete (left). + distance(r, c - 1) + 1 // Insert (up). + ), + distance(r - 1, c - 1) + 1 // Substitute (left-up). + ) } m(r)(c) = min diff --git a/core/source/core/scala/org/hashtree/stringmetric/similarity/NGramAlgorithm.scala b/core/source/core/scala/org/hashtree/stringmetric/similarity/NGramAlgorithm.scala index 977f857..c97cb8d 100755 --- a/core/source/core/scala/org/hashtree/stringmetric/similarity/NGramAlgorithm.scala +++ b/core/source/core/scala/org/hashtree/stringmetric/similarity/NGramAlgorithm.scala @@ -16,8 +16,7 @@ object NGramAlgorithm extends StringAlgorithm with FilterableConfigurableStringA val ca = stringFilter.filter(charArray) if (ca.length < n) None - else - Some(sequence(ca, Array.empty[Array[Char]], n)) + else Some(sequence(ca, Array.empty[Array[Char]], n)) } override def compute(string: String)(n: Int) @@ -33,7 +32,6 @@ object NGramAlgorithm extends StringAlgorithm with FilterableConfigurableStringA require(n > 0) if (i.length <= n) o :+ i - else - sequence(i.tail, o :+ i.take(n), n) + else sequence(i.tail, o :+ i.take(n), n) } }
\ No newline at end of file diff --git a/core/source/core/scala/org/hashtree/stringmetric/similarity/WeightedLevenshteinMetric.scala b/core/source/core/scala/org/hashtree/stringmetric/similarity/WeightedLevenshteinMetric.scala index 15fc6c9..ba57b10 100755 --- a/core/source/core/scala/org/hashtree/stringmetric/similarity/WeightedLevenshteinMetric.scala +++ b/core/source/core/scala/org/hashtree/stringmetric/similarity/WeightedLevenshteinMetric.scala @@ -45,14 +45,12 @@ object WeightedLevenshteinMetric for (r <- 1 to ct._1.length; c <- 1 to ct._2.length) { m(r)(c) = { - if (ct._1(r - 1) == ct._2(c - 1)) - m(r - 1)(c - 1) - else - (m(r - 1)(c) + w._1).min( // Delete (left). - (m(r)(c - 1) + w._2).min( // Insert (up). - m(r - 1)(c - 1) + w._3 // Substitute (left-up). - ) + if (ct._1(r - 1) == ct._2(c - 1)) m(r - 1)(c - 1) + else (m(r - 1)(c) + w._1).min( // Delete (left). + (m(r)(c - 1) + w._2).min( // Insert (up). + m(r - 1)(c - 1) + w._3 // Substitute (left-up). ) + ) } } |