Basic spell-checker / spelling correcter module for Nodejs.
JavaScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
data
examples
lib
test
.gitignore
README.md
index.js
package.json

README.md

wordsworth

Spell-checker / spelling correcter module for Nodejs based off of Peter Norvig's spelling corrector publication (http://norvig.com/spell-correct.html) and John Resig's instructions on string-based binary searching (http://ejohn.org/blog/revised-javascript-dictionary-search/).

Installation

 npm install wordsworth

Use

Asynchronous Initialization

The sample /data/en_US/seed.txt and /data/en_US/training.txt files are fairly large and as such have been compressed and provided in an archive located in /data/. To run the examples, extract the contents of the archive into /en_US.

var sp = require('wordsworth').getInstance();

sp.initialize(

  '../data/en_US/seed.txt',
  '../data/en_US/training.txt', function() {

    console.log('Initialized!');

    // indicates whether or not the spell-checker knows the given word
    console.log(sp.exists('hello'));
    console.log(sp.exists('polymorphism'));

    /**
     * Accepts a single word and will return an ordered Array, most probable to
     * least probable, of suggested spelling corrections IF the given word has been
     * mis-spelled.
     */
    console.log(sp.suggest('polymrphism'));

    /**
     * Will return an Object containing keys representing any misspelled
     * words in the provided text along with an ordered Array of potential
     * spelling corrections for each key.
     */
    console.log(sp.analyze('This sentense will havv a fiw speling errorrs.'));

  }
);

Synchronous Initialization

var sp = require('wordsworth').getInstance();

var seeds = ['one', 'two', 'three']; // language dictionary, one word per array index
var training = [
    'large amounts of training text',
    'ideally one sentence per array index'
];

sp.initializeSync(seeds, training);
sp.exists('one');
sp.suggest('some mis-spelled word');

Testing

npm test

Contributors

license

MIT License