summaryrefslogtreecommitdiff
path: root/core/source/core/scala/com/rockymadden/stringmetric/StringMetric.scala
blob: 212f76d69cb6010a367006f80dbf48ec49f93286 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
package com.rockymadden.stringmetric

trait StringMetric[A, B] extends Metric[String, A, B] {
	def compare(charArray1: Array[Char], charArray2: Array[Char])(implicit a: A): Option[B]
}

object StringMetric {
	type DiceSorensen = com.rockymadden.stringmetric.similarity.DiceSorensenMetric
	val DiceSorensen = com.rockymadden.stringmetric.similarity.DiceSorensenMetric

	type Hamming = com.rockymadden.stringmetric.similarity.HammingMetric
	val Hamming = com.rockymadden.stringmetric.similarity.HammingMetric

	type Jaccard = com.rockymadden.stringmetric.similarity.JaccardMetric
	val Jaccard = com.rockymadden.stringmetric.similarity.JaccardMetric

	type Jaro = com.rockymadden.stringmetric.similarity.JaroMetric
	val Jaro = com.rockymadden.stringmetric.similarity.JaroMetric

	type JaroWinkler = com.rockymadden.stringmetric.similarity.JaroWinklerMetric
	val JaroWinkler = com.rockymadden.stringmetric.similarity.JaroWinklerMetric

	type Levenshtein = com.rockymadden.stringmetric.similarity.LevenshteinMetric
	val Levenshtein = com.rockymadden.stringmetric.similarity.LevenshteinMetric

	type Metaphone = com.rockymadden.stringmetric.phonetic.MetaphoneMetric
	val Metaphone = com.rockymadden.stringmetric.phonetic.MetaphoneMetric

	type NGram = com.rockymadden.stringmetric.similarity.NGramMetric
	val NGram = com.rockymadden.stringmetric.similarity.NGramMetric

	type Nysiis = com.rockymadden.stringmetric.phonetic.NysiisMetric
	val Nysiis = com.rockymadden.stringmetric.phonetic.NysiisMetric

	type Overlap = com.rockymadden.stringmetric.similarity.OverlapMetric
	val Overlap = com.rockymadden.stringmetric.similarity.OverlapMetric

	type RefinedNysiis = com.rockymadden.stringmetric.phonetic.RefinedNysiisMetric
	val RefinedNysiis = com.rockymadden.stringmetric.phonetic.RefinedNysiisMetric

	type RefinedSoundex = com.rockymadden.stringmetric.phonetic.RefinedSoundexMetric
	val RefinedSoundex = com.rockymadden.stringmetric.phonetic.RefinedSoundexMetric

	type Soundex = com.rockymadden.stringmetric.phonetic.SoundexMetric
	val Soundex = com.rockymadden.stringmetric.phonetic.SoundexMetric

	type WeightedLevenshtein = com.rockymadden.stringmetric.similarity.WeightedLevenshteinMetric
	val WeightedLevenshtein = com.rockymadden.stringmetric.similarity.WeightedLevenshteinMetric

	def compareWithDiceSorensen(charArray1: Array[Char], charArray2: Array[Char])(n: Int) =
		DiceSorensen.compare(charArray1, charArray2)(n)

	def compareWithDiceSorensen(string1: String, string2: String)(n: Int) = DiceSorensen.compare(string1, string2)(n)

	def compareWithHamming(charArray1: Array[Char], charArray2: Array[Char]) = Hamming.compare(charArray1, charArray2)

	def compareWithHamming(string1: String, string2: String)= Hamming.compare(string1, string2)

	def compareWithJaccard(charArray1: Array[Char], charArray2: Array[Char])(n: Int) =
		Jaccard.compare(charArray1, charArray2)(n)

	def compareWithJaccard(string1: String, string2: String)(n: Int) = Jaccard.compare(string1, string2)(n)

	def compareWithJaro(charArray1: Array[Char], charArray2: Array[Char]) = Jaro.compare(charArray1, charArray2)

	def compareWithJaro(string1: String, string2: String) = Jaro.compare(string1, string2)

	def compareWithJaroWinkler(charArray1: Array[Char], charArray2: Array[Char]) =
		JaroWinkler.compare(charArray1, charArray2)

	def compareWithJaroWinkler(string1: String, string2: String) = JaroWinkler.compare(string1, string2)

	def compareWithLevenshtein(charArray1: Array[Char], charArray2: Array[Char]) =
		Levenshtein.compare(charArray1, charArray2)

	def compareWithLevenshtein(string1: String, string2: String) = Levenshtein.compare(string1, string2)

	def compareWithMetaphone(charArray1: Array[Char], charArray2: Array[Char]) =
		Metaphone.compare(charArray1, charArray2)

	def compareWithMetaphone(string1: String, string2: String) = Metaphone.compare(string1, string2)

	def compareWithNGram(charArray1: Array[Char], charArray2: Array[Char])(n: Int) =
		NGram.compare(charArray1, charArray2)(n)

	def compareWithNGram(string1: String, string2: String)(n: Int) = NGram.compare(string1, string2)(n)

	def compareWithNysiis(charArray1: Array[Char], charArray2: Array[Char]) = Nysiis.compare(charArray1, charArray2)

	def compareWithNysiis(string1: String, string2: String) = Nysiis.compare(string1, string2)

	def compareWithOverlap(charArray1: Array[Char], charArray2: Array[Char])(n: Int) =
		Overlap.compare(charArray1, charArray2)(n)

	def compareWithOverlap(string1: String, string2: String)(n: Int) = Overlap.compare(string1, string2)(n)

	def compareWithRefinedNysiis(charArray1: Array[Char], charArray2: Array[Char]) =
		RefinedNysiis.compare(charArray1, charArray2)

	def compareWithRefinedNysiis(string1: String, string2: String) = RefinedNysiis.compare(string1, string2)

	def compareWithRefinedSoundex(charArray1: Array[Char], charArray2: Array[Char]) =
		RefinedSoundex.compare(charArray1, charArray2)

	def compareWithRefinedSoundex(string1: String, string2: String) = RefinedSoundex.compare(string1, string2)

	def compareWithSoundex(charArray1: Array[Char], charArray2: Array[Char]) = Soundex.compare(charArray1, charArray2)

	def compareWithSoundex(string1: String, string2: String) = Soundex.compare(string1, string2)

	def compareWithWeightedLevenshtein(charArray1: Array[Char], charArray2: Array[Char])
		(options: (BigDecimal, BigDecimal, BigDecimal)) =

		WeightedLevenshtein.compare(charArray1, charArray2)(options)

	def compareWithWeightedLevenshtein(string1: String, string2: String)
		(options: (BigDecimal, BigDecimal, BigDecimal)) =

		WeightedLevenshtein.compare(string1, string2)(options)
}