Noosphere Possibilities Maximized

# npm

Need private packages and team management tools?Check out npm Teams »

## wuzzy

0.1.4 • Public • Published

# Overview

Wuzzy was created to provide a smattering of some similarity identification stuff. Several simularity identification algorithm implementations are provided, including:

• Jaccard similarity coefficient
• Tanimoto coefficient
• Pearson correlation
• N-gram edit distance
• Levenshtein distance
• Jaro-Winkler distance

Fuzzy wuzzy was a bear, fuzzy wuzzy had no hair, fuzzy wuzzy wasn't very fuzzy, was he? Well, if you aren't sure maybe this library can help! :)

# Installing

Wuzzy can be installed via npm (`npm install wuzzy`).

# Examples

Some examples of using Wuzzy can be found in the real-wuzzy repository.

# Methods

All bad jokes aside, below is a listing of the available functions. Have fun!

## jarowinkler(a, b, t)

Computes the jaro-winkler distance for two given arrays.

NOTE: this implementation is based on the one found in the Lucene Java library.

### Examples:

``````wuzzy.jarowinkler(
['D', 'W', 'A', 'Y', 'N', 'E'],
['D', 'U', 'A', 'N', 'E']
);
// -> 0.840

wuzzy.jarowinkler(
'DWAYNE',
'DUANE'
);
// -> 0.840
``````

### Params:

• String|Array a - the first string/array to compare
• String|Array b - the second string/array to compare
• Number t - the threshold for adding

### Return:

• Number returns the jaro-winkler distance for

## levenshtein(a, b, w)

Calculates the levenshtein distance for the two provided arrays and returns the normalized distance.

### Examples:

``````wuzzy.levenshtein(
['D', 'W', 'A', 'Y', 'N', 'E'],
['D', 'U', 'A', 'N', 'E']
);
// -> 0.66666667

or

wuzzy.levenshtein(
'DWAYNE',
'DUANE'
);
// -> 0.66666667
``````

### Params:

• String|Array a - the first string/array to compare
• String|Array b - the second string/array to compare
• Object w - (optional) a set of key/value pairs

### Return:

• Number returns the levenshtein distance for

## ngram(a, b, ng)

Computes the n-gram edit distance for any n (defaults to 2).

NOTE: this implementation is based on the one found in the Lucene Java library.

### Examples:

``````wuzzy.ngram(
['D', 'W', 'A', 'Y', 'N', 'E'],
['D', 'U', 'A', 'N', 'E']
);
// -> 0.583

or

wuzzy.ngram(
'DWAYNE',
'DUANE'
);
// -> 0.583
``````

### Params:

• String|Array a - the first string/array to compare
• String|Array b - the second string/array to compare
• Number ng - (optional) the n-gram size to work with (defaults to 2)

### Return:

• Number returns the ngram distance for

## pearson(a, b)

Calculates a pearson correlation score for two given objects (compares values of similar keys).

### Examples:

``````wuzzy.pearson(
{a: 2.5, b: 3.5, c: 3.0, d: 3.5, e: 2.5, f: 3.0},
{a: 3.0, b: 3.5, c: 1.5, d: 5.0, e: 3.5, f: 3.0, g: 5.0}
);
// -> 0.396

or

wuzzy.pearson(
{a: 2.5, b: 1},
{o: 3.5, e: 6.0}
);
// -> 1.0
``````

### Params:

• Object a - the first object to compare
• Object b - the second object to compare

### Return:

• Number returns the pearson correlation for

## jaccard(a, b)

Calculates the jaccard index for the two provided arrays.

### Examples:

``````wuzzy.jaccard(
['a', 'b', 'c', 'd', 'e', 'f'],
['a', 'e', 'f']
);
// -> 0.5

or

wuzzy.jaccard(
'abcdef',
'aef'
);
// -> 0.5

or

wuzzy.jaccard(
['abe', 'babe', 'cabe', 'dabe', 'eabe', 'fabe'],
['babe']
);
// -> 0.16666667
``````

### Params:

• String|Array a - the first string/array to compare
• String|Array b - the second string/array to compare

### Return:

• Number returns the jaccard index for

## tanimoto(a, b)

Calculates the tanimoto distance (weighted jaccard index).

### Examples:

``````wuzzy.tanimoto(
['a', 'b', 'c', 'd', 'd', 'e', 'f', 'f'],
['a', 'e', 'f']
);
// -> 0.375

or

wuzzy.tanimoto(
'abcddeff',
'aef'
);
// -> 0.375

or

wuzzy.tanimoto(
['abe', 'babe', 'cabe', 'dabe', 'eabe', 'fabe', 'fabe'],
['babe']
);
// -> 0.14285714
``````

### Params:

• String|Array a - the first string/array to compare
• String|Array b - the second string/array to compare

### Return:

• Number returns the tanimoto distance for

## Keywords

### Install

`npm i wuzzy`

3,977

0.1.4

GPL

24.7 kB

11