closewords
Version:
A library for finding the most similar word from a list of words, supporting Japanese (including kanji). / 最も似た単語を単語群から検索する日本語(漢字含む)対応のライブラリ
60 lines (39 loc) • 1.79 kB
Markdown
A library for finding the most similar word from a list of words, supporting Japanese (including kanji).
> [!Note]
> It may be a little slow because it uses morphological analysis. By adopting `worker_threads`, the processing speed is slightly improved compared to the standard.
日本語のドキュメントは [README-ja.md](README-ja.md) を参照してください。
## Installation
```sh
npm install closewords
```
## Usage
### `closeWords(word, candidates, raw?)`
| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| `word` | `string \| { word: string; pronounce?: string }` | — | The reference word or object. |
| `candidates` | `Array<string \| { word: string; pronounce?: string }>` | — | List of candidate words or objects. |
| `raw` | `boolean` | `false` | Whether to include similarity scores. |
**Returns:** `Promise<string[]>` when `raw` is `false`, `Promise<Array<{ word: string; score: number }>>` when `raw` is `true`.
The highest score is `1` (perfect match), the lowest is `0`.
The optional `pronounce` field accepts **alphabetic strings only** and is used as a pronunciation hint for morphological analysis.
```ts
import { closeWords } from 'closewords';
const word = '東京';
const candidates = ['東京', 'とっこう', '東きょう', 'とう京', 'とうきょう', 'とーきょー'];
const result = await closeWords(word, candidates);
console.log(result);
// => [ '東京' ]
const resultWithScores = await closeWords(word, candidates, true);
console.log(resultWithScores);
// => [
// { word: '東京', score: 1 },
// { word: 'とう京', score: 0.693... },
// ...
// ]
```
See [CHANGELOG.md](CHANGELOG.md) for the full version history.
[](LICENSE)