diff options
Diffstat (limited to 'core/source')
-rwxr-xr-x | core/source/core/scala/org/hashtree/stringmetric/similarity/JaroWinklerMetric.scala | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/core/source/core/scala/org/hashtree/stringmetric/similarity/JaroWinklerMetric.scala b/core/source/core/scala/org/hashtree/stringmetric/similarity/JaroWinklerMetric.scala index 77b20c0..8a08f1e 100755 --- a/core/source/core/scala/org/hashtree/stringmetric/similarity/JaroWinklerMetric.scala +++ b/core/source/core/scala/org/hashtree/stringmetric/similarity/JaroWinklerMetric.scala @@ -16,16 +16,17 @@ object JaroWinklerMetric extends StringMetric with FilterableStringMetric { val fca1 = stringFilter.filter(charArray1) val fca2 = stringFilter.filter(charArray2) - JaroMetric.compare(fca1, fca2) match { - case Some(0d) => Some(0d) - case Some(1d) => Some(1d) - case Some(jaro) => { - val prefix = fca1.zip(fca2).takeWhile(t => t._1 == t._2) - - Some(jaro + ((if (prefix.length <= 4) prefix.length else 4) * 0.1d * (1 - jaro))) + JaroMetric.compare(fca1, fca2).map( + _ match { + case 0d => 0d + case 1d => 1d + case jaro => { + val prefix = fca1.zip(fca2).takeWhile(t => t._1 == t._2) + + jaro + ((if (prefix.length <= 4) prefix.length else 4) * 0.1d * (1 - jaro)) + } } - case None => None - } + ) } override def compare(string1: String, string2: String) |