summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRocky Madden <git@rockymadden.com>2012-11-19 20:18:57 -0700
committerRocky Madden <git@rockymadden.com>2012-11-19 20:18:57 -0700
commit5cfd7ccbcb22e1ec8433c7911b43ea8f2883c3f6 (patch)
tree8de9aef141c703a01be08221da977246c2d03bba
parent8b8ce923a152c9395f4af52ad27104fc5c1c6512 (diff)
downloadstringmetric-5cfd7ccbcb22e1ec8433c7911b43ea8f2883c3f6.tar.gz
stringmetric-5cfd7ccbcb22e1ec8433c7911b43ea8f2883c3f6.tar.bz2
stringmetric-5cfd7ccbcb22e1ec8433c7911b43ea8f2883c3f6.zip
Condense code.
-rwxr-xr-xcore/source/core/scala/org/hashtree/stringmetric/similarity/HammingMetric.scala3
-rwxr-xr-xcore/source/core/scala/org/hashtree/stringmetric/similarity/LevenshteinMetric.scala16
-rwxr-xr-xcore/source/core/scala/org/hashtree/stringmetric/similarity/NGramAlgorithm.scala6
-rwxr-xr-xcore/source/core/scala/org/hashtree/stringmetric/similarity/WeightedLevenshteinMetric.scala12
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).
)
+ )
}
}