0.0.1 • Published 6 years ago

ngram-search v0.0.1

Weekly downloads
4
License
ISC
Repository
github
Last release
6 years ago

Description

Javascript implementation of ngram matching utilizing cosine similarity.

This relatively lightweight solution makes for fast searching while allowing for inexact matches such as typos.

Usage

const createNGramSearch = require('ngram-search');

const searchItems = [
    'Acura',
    'Audi',
    'BMW',
    'Chevrolet',
    'Dodge',
    'Ferrari',
    'Porche',
    'Subaru',
    'Tesla',
    'Toyota',
    'Volvo'
];

const nGramSearch = createNGramSearch(searchItems);

const matches = nGramSearch('Tsel');

Configuration

function createNGramSearch(textList, dimensionality = 2, thresholdFn = v => v === 1) {
    ...
}

Parameters

textList: Array of strings to match against.

dimensionality: Number of dimensions for N-gram matching (e.g. 2 for bigram, 3 for trigram, etc.)

thresholdFn: Minimum threshold for including matched results between 0 and 1. Defaults to 1 for exact matches only.