Network Printer Manager

    wuzzy
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/wuzzy package

    0.1.8 • 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

    Install

    npm i wuzzy

    DownloadsWeekly Downloads

    75,965

    Version

    0.1.8

    License

    MIT

    Unpacked Size

    25.8 kB

    Total Files

    12

    Last publish

    Collaborators

    • xupit3r