Skip to content

Commit

Permalink
Add improved docs
Browse files Browse the repository at this point in the history
  • Loading branch information
wooorm committed Nov 2, 2022
1 parent 1a1ac5c commit 3eb14a4
Show file tree
Hide file tree
Showing 2 changed files with 99 additions and 15 deletions.
4 changes: 3 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -170,10 +170,12 @@ const rules = {
}

/**
* Lancaster stemming algorithm
* Get the stem from a given value.
*
* @param {string} value
* Value to stem.
* @returns {string}
* Stem for `value`.
*/
export function lancasterStemmer(value) {
return applyRules(String(value).toLowerCase(), true)
Expand Down
110 changes: 96 additions & 14 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,58 @@

[Lancaster stemming algorithm][source].

## Install
## Contents

* [What is this?](#what-is-this)
* [When should I use this?](#when-should-i-use-this)
* [Install](#install)
* [Use](#use)
* [API](#api)
* [`lancasterStemmer(value)`](#lancasterstemmervalue)
* [CLI](#cli)
* [Types](#types)
* [Compatibility](#compatibility)
* [Related](#related)
* [Contribute](#contribute)
* [Security](#security)
* [License](#license)

## What is this?

This package exposes a stemming algorithm.
That means it gets a certain string (typically an English word), and turns it
into a shorter version (a stem), which can then be compared to other stems
(of other words), to check if they are both (likely) the same term.

## When should I use this?

You’re probably dealing with natural language, and know you need this, if
you’re here!

This package is ESM only: Node 12+ is needed to use it and it must be `import`ed
instead of `require`d.
## Install

[npm][]:
This package is [ESM only][esm].
In Node.js (version 14.14+, 16.0+), install with [npm][]:

```sh
npm install lancaster-stemmer
```

## API
In Deno with [`esm.sh`][esmsh]:

This package exports the following identifiers: `lancasterStemmer`.
There is no default export.
```js
import {lancasterStemmer} from 'https://esm.sh/lancaster-stemmer@2'
```

In browsers with [`esm.sh`][esmsh]:

```html
<script type="module">
import {lancasterStemmer} from 'https://esm.sh/lancaster-stemmer@2?bundle'
</script>
```

## Use

```js
import {lancasterStemmer} from 'lancaster-stemmer'
Expand All @@ -36,6 +73,23 @@ lancasterStemmer('anxious') // => 'anxy'
lancasterStemmer('analytic') === lancasterStemmer('AnAlYtIc') // => true
```

## API

This package exports the identifier `lancasterStemmer`.
There is no default export.

### `lancasterStemmer(value)`

Get the stem from a given value.

###### `value`

Value to stem (`string`, required).

##### Returns

Stem for `value` (`string`).

## CLI

```txt
Expand All @@ -59,20 +113,40 @@ $ echo "detestable vileness" | lancaster-stemmer
detest vil
```

## Types

This package is fully typed with [TypeScript][].
It exports no additional types.

## Compatibility

This package is at least compatible with all maintained versions of Node.js.
As of now, that is Node.js 14.14+ and 16.0+.
It also works in Deno and modern browsers.

## Related

* [`stemmer`](https://github.com/words/stemmer)
Porter Stemmer algorithm
porter stemmer algorithm
* [`double-metaphone`](https://github.com/words/double-metaphone)
Double Metaphone implementation
double metaphone algorithm
* [`soundex-code`](https://github.com/words/soundex-code)
Fast Soundex implementation
soundex algorithm
* [`dice-coefficient`](https://github.com/words/dice-coefficient)
Sørensen–Dice coefficient
sørensen–dice coefficient
* [`levenshtein-edit-distance`](https://github.com/words/levenshtein-edit-distance)
Levenshtein edit distance
levenshtein edit distance
* [`syllable`](https://github.com/words/syllable)
— Syllable count in an English word
— syllable count of English words

## Contribute

Yes please!
See [How to Contribute to Open Source][contribute].

## Security

This package is safe.

## License

Expand All @@ -96,10 +170,18 @@ detest vil

[size]: https://bundlephobia.com/result?p=lancaster-stemmer

[esm]: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c

[esmsh]: https://esm.sh

[typescript]: https://www.typescriptlang.org

[contribute]: https://opensource.guide/how-to-contribute/

[npm]: https://www.npmjs.com

[license]: license

[author]: https://wooorm.com

[source]: https://web.archive.org/web/20140827005744/http://www.comp.lancs.ac.uk/computing/research/stemming/index.htm
[source]: https://web.archive.org/web/20150215002618/http://www.comp.lancs.ac.uk:80/computing/research/stemming/index.htm

0 comments on commit 3eb14a4

Please sign in to comment.