@@ -20,6 +20,7 @@ A library implementing different string similarity, distance and sortMatch measu
20
20
- [ Cosine similarity] ( #cosine-similarity )
21
21
- [ Sorensen-Dice coefficient] ( #sorensen-dice-coefficient )
22
22
- [ API] ( #api )
23
+ - [ Methods] ( #methods )
23
24
- [ similarity] ( #similarity )
24
25
- [ params] ( #params )
25
26
- [ return] ( #return )
@@ -91,15 +92,16 @@ The Levenshtein distance between two words is the minimum number of single-chara
91
92
It is a metric string distance. This implementation uses dynamic programming (Wagner–Fischer algorithm), with only 2 rows of data. The space requirement is thus O(m) and the algorithm runs in O(m.n).
92
93
93
94
``` js
94
- import { Levenshtein } from " string-comparison"
95
+ import { levenshtein } from " string-comparison"
96
+ import type {SortMatchResultType } from " string-comparison"
95
97
96
98
const Thanos = ' healed'
97
99
const Rival = ' sealed'
98
100
const Avengers = [' edward' , ' sealed' , ' theatre' ]
99
101
100
- console .log (Levenshtein .similarity (Thanos, Rival))
101
- console .log (Levenshtein .distance (Thanos, Rival))
102
- console .log (Levenshtein .sortMatch (Thanos, Avengers))
102
+ console .log (levenshtein .similarity (Thanos, Rival))
103
+ console .log (levenshtein .distance (Thanos, Rival))
104
+ console .log (levenshtein .sortMatch (Thanos, Avengers) as SortMatchResultType )
103
105
104
106
// output
105
107
0.8333333333333334
@@ -129,15 +131,18 @@ This class implements the dynamic programming approach, which has a space requir
129
131
In "Length of Maximal Common Subsequences", K.S. Larsen proposed an algorithm that computes the length of LCS in time O(log(m).log(n)). But the algorithm has a memory requirement O(m.n²) and was thus not implemented here.
130
132
131
133
``` js
132
- import { LongestCommonSubsequence } from " string-comparison"
134
+ import { longestCommonSubsequence } from " string-comparison"
135
+ or
136
+ import { lcs } from " string-comparison"
137
+
133
138
134
139
const Thanos = ' healed'
135
140
const Rival = ' sealed'
136
141
const Avengers = [' edward' , ' sealed' , ' theatre' ]
137
142
138
- console .log (LongestCommonSubsequence .similarity (Thanos, Rival))
139
- console .log (LongestCommonSubsequence .distance (Thanos, Rival))
140
- console .log (LongestCommonSubsequence .sortMatch (Thanos, Avengers))
143
+ console .log (lcs .similarity (Thanos, Rival))
144
+ console .log (lcs .distance (Thanos, Rival))
145
+ console .log (lcs .sortMatch (Thanos, Avengers))
141
146
142
147
// output
143
148
0.8333333333333334
@@ -157,15 +162,17 @@ http://heim.ifi.uio.no/~danielry/StringMetric.pdf
157
162
The distance is computed as 1 - |LCS(s1, s2)| / max(|s1|, |s2|)
158
163
159
164
``` js
160
- import { MetricLCS } from " string-comparison"
165
+ import { metricLcs } from " string-comparison"
166
+ or
167
+ import { mlcs } from " string-comparison"
161
168
162
169
const Thanos = ' healed'
163
170
const Rival = ' sealed'
164
171
const Avengers = [' edward' , ' sealed' , ' theatre' ]
165
172
166
- console .log (MetricLCS .similarity (Thanos, Rival))
167
- console .log (MetricLCS .distance (Thanos, Rival))
168
- console .log (MetricLCS .sortMatch (Thanos, Avengers))
173
+ console .log (metricLcs .similarity (Thanos, Rival))
174
+ console .log (metricLcs .distance (Thanos, Rival))
175
+ console .log (metricLcs .sortMatch (Thanos, Avengers))
169
176
170
177
// output
171
178
0.8333333333333334
@@ -185,7 +192,7 @@ Distance is computed as 1 - similarity.
185
192
Jaccard index is a metric distance.
186
193
187
194
``` js
188
- import { Cosine } from " string-comparison"
195
+ import { cosine } from " string-comparison"
189
196
```
190
197
191
198
## Sorensen-Dice coefficient
@@ -195,10 +202,18 @@ Similar to Jaccard index, but this time the similarity is computed as 2 * |V1 in
195
202
Distance is computed as 1 - similarity.
196
203
197
204
``` js
198
- import { DiceCoefficient } from " string-comparison"
205
+ import { diceCoefficient } from " string-comparison"
199
206
```
200
207
201
208
## API
209
+ * ` cosine `
210
+ * ` diceCoefficient `
211
+ * ` jaccardIndex `
212
+ * ` levenshtein `
213
+ * ` lcs ` = ` longestCommonSubsequence `
214
+ * ` mlcs ` = ` metricLcs `
215
+
216
+ ## Methods
202
217
* ` similarity ` .
203
218
* ` distance ` .
204
219
* ` sortMatch `
@@ -222,8 +237,8 @@ Implementing algorithms define a distance between strings (0 means strings are i
222
237
223
238
#### params
224
239
225
- 1 . thanos [ String]
226
- 2 . rival [ String]
240
+ 1 . ` thanos ` [ String]
241
+ 2 . ` rival ` [ String]
227
242
228
243
#### return
229
244
@@ -238,7 +253,7 @@ Return a number
238
253
239
254
#### return
240
255
241
- Return an array of objects. ex:
256
+ Return an array of objects - ` SortMatchResultType ` ex:
242
257
``` js
243
258
[
244
259
{ member: ' edward' , rating: 0.16666666666666663 },
0 commit comments