# talisman

> Straightforward fuzzy matching, information retrieval and NLP building blocks for JavaScript.

Latest version **1.1.4** (published 2021-01-21) · MIT license · 0 weekly downloads

## Install

```sh
npm install talisman
pnpm add talisman
yarn add talisman
bun add talisman
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.4 |
| Published | 2021-01-21 |
| First published | 2016-03-29 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 6 |
| Unpacked size | 536.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 732 |
| Author | Guillaume Plique |
| Maintainers | yomguithereal |
| Keywords | bloom filter, canberra, caverphone, chebyshev, cologne, cosine, clustering, daitch-mokotoff, dice, fingerprint, fuzzy, hamming, k-means, jaccard, jaro, lancaster, levenshtein, lig, metaphone, mra, natural language processing, ngrams, nlp, nysiis, phonetic, porter, punkt, record linkage, schinke, sorensen, soundex, tokenizer, tversky, winkler |

## Links

- npm: https://www.npmjs.com/package/talisman
- Repository: https://github.com/yomguithereal/talisman
- Homepage: https://github.com/yomguithereal/talisman#readme
- Issues: https://github.com/yomguithereal/talisman/issues
- npm.io page: https://npm.io/package/talisman

## Dependencies (6)

- [long](https://npm.io/package/long.md) ^4.0.0
- [lodash](https://npm.io/package/lodash.md) ^4.17.20
- [mnemonist](https://npm.io/package/mnemonist.md) ^0.38.1
- [obliterator](https://npm.io/package/obliterator.md) ^1.6.1
- [pandemonium](https://npm.io/package/pandemonium.md) ^2.0.0
- [html-entities](https://npm.io/package/html-entities.md) ^1.4.0

## Alternatives

- [@oh-my-pi/pi-natives](https://npm.io/package/@oh-my-pi/pi-natives.md) — 51.8K weekly downloads
- [@capgo/capacitor-light-sensor](https://npm.io/package/@capgo/capacitor-light-sensor.md) — 3.0K weekly downloads
- [@heyhuynhgiabuu/pi-diff](https://npm.io/package/@heyhuynhgiabuu/pi-diff.md) — 492 weekly downloads
- [@lotsa/verdant-lang-asm](https://npm.io/package/@lotsa/verdant-lang-asm.md) — 38 weekly downloads
- [new-era-syntax](https://npm.io/package/new-era-syntax.md) — 20 weekly downloads

## Recent versions

- 1.1.4 (latest) — 2021-01-21
- 1.1.3 — 2020-11-05
- 1.1.2 — 2020-05-01
- 1.1.1 — 2020-03-20
- 1.1.0 — 2020-03-20
- 1.0.0 — 2020-03-19
- 0.21.0 — 2018-09-03
- 0.20.0 — 2017-09-19
- 0.19.1 — 2017-06-09
- 0.19.0 — 2017-03-17
- 0.18.0 — 2017-02-14
- 0.17.0 — 2017-01-31
- 0.16.0 — 2017-01-19
- 0.15.0 — 2017-01-10
- 0.14.0 — 2016-11-24
- … 15 more at https://npm.io/package/talisman/versions

## README

[![Build Status](https://travis-ci.org/Yomguithereal/talisman.svg)](https://travis-ci.org/Yomguithereal/talisman) [![DOI](https://joss.theoj.org/papers/10.21105/joss.02405/status.svg)](https://doi.org/10.21105/joss.02405)

# Talisman

[Full documentation](https://yomguithereal.github.io/talisman/)

Talisman is a JavaScript library collecting algorithms, functions and various building blocks for [fuzzy matching](https://en.wikipedia.org/wiki/Approximate_string_matching), [information retrieval](https://en.wikipedia.org/wiki/Information_retrieval) and [natural language processing](https://en.wikipedia.org/wiki/Natural_language_processing).

## Installation

You can install **Talisman** through npm:

```bash
npm install talisman
```

## Documentation

The library's full documentation can be found [here](https://yomguithereal.github.io/talisman/).

## Bibliography

An extensive bibliography of the methods & functions implemented by the library can be found [here](./BIBLIOGRAPHY.md).

## Goals

* :package: **Modular**: the library is completely modular. This means that if you only need to compute a `levenshtein` distance, you will only load the relevant code.
* :bulb: **Straightforward & 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 `jaccard` function and get going.
* :dango: **Consistent API**: the library's API is fully consistent and one should not struggle to understand how to apply two different distance metrics.
* :postal_horn: **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.
* :zap: **Performant**: the library should be as performant as possible for a high-level programming language library.
* :globe_with_meridians: **Cross-platform**: the library is cross-platform and can be used both with Node.js and in the browser.

## How to cite

**Talisman** has been published as a [paper](https://joss.theoj.org/papers/10.21105/joss.02405) on the [Journal Of Open Source Software (JOSS)](https://joss.theoj.org/).

## Contribution

Contributions are of course welcome :)

Be sure to lint & pass the unit tests before submitting your pull request.

```bash
# Cloning the repo
git clone git@github.com:Yomguithereal/talisman.git
cd talisman

# Installing the deps
npm install

# Running the tests
npm test

# Linting the code
npm run lint
```

## License

This project is available as open source under the terms of the [MIT License](./LICENSE.txt).

---
_Source: https://npm.io/package/talisman · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
