You can install Talisman through npm:
npm install talisman
The library’s source code can be found on its Github repository.
- Modular: the library is completely modular. This means that if you only need to compute a
levenshteindistance, you will only load the relevant code.
- Straightfoward & simple: just want to compute a jaccard index? No need to instantiate a class and use two methods to pass options and then finally succeed in getting the index. Just apply the
jaccardfunction and get going.
- Consistent API: the library’s API is fully consistent and one should not struggle to understand how to apply two different distance metrics.
- Functional: except for cases where classes might be useful (clustering notably), Talisman only uses functions, consumes raw data and order functions’ arguments to make partial application & currying etc. as easy as possible.
- Performant: the library should be as performant as possible for a high-level programming language library.
- Cross-platform: the library is cross-platform and can be used both with node.js and in the browser.
An extensive bibliography of the methods & functions implemented by the library can be found here.
How to cite
Talisman has been published as a paper on the Journal Of Open Source Software (JOSS).
Since Talisman is a large library, and to ensure to you will only load code that is relevant to your use case in order not to needlessly bloat your browser bundles, this documentation’s examples encourage you to import modules one at a time thusly:
import levenshtein from 'talisman/metrics/levenshtein';
Note also that even if all of this documentation’s examples use ES imports, the library remains completely consumable using CommonJS as used by Node.js with the
// This is the same as above const levenshtein = require('talisman/metrics/levenshtein');
List of available modules
- · spanish
- · bag
- · canberra
- · chebyshev
- · cosine
- · damerau-levenshtein
- · dice
- · euclidean
- · eudex
- · hamming
- · guth
- · identity
- · jaccard
- · jaro
- · jaro-winkler
- · lcs
- · length
- · levenshtein
- · lig
- · manhattan
- · minkowski
- · mlipns
- · monge-elkan
- · mra
- · overlap
- · prefix
- · ratcliff-obershelp
- · sift4
- · sorensen
- · suffix
- · tversky
A full list of the changes made by each version of the library is available here.
Contributions are of course welcome :)
Be sure to lint & pass the unit tests before submitting your pull request.
# Cloning the repo git clone firstname.lastname@example.org:Yomguithereal/talisman.git cd talisman # Installing the deps npm install # Running the tests npm test # Linting the code npm run lint