Forked from Isaac Sukin's SymSpell, the code can run on nodejs now, to support chinese words, you need to write a custom tokenizer, see demo:
#! /usr/local/bin/node
var assert = require('assert');
var SpellChecker = require('symspell');
function tokenizer(words){
return words.toLowerCase().split(' ');
}
var maxEditDistance = 4;
var corrector = new SpellChecker(maxEditDistance);
corrector.addWords('adapt adept adopt appraise apprise 暴露 毕恭毕敬', null, tokenizer);
console.log(corrector.lookup('adept'));
console.log(corrector.lookup('apprese'));
assert.equal(corrector.lookup('adept').length, 3);
console.log(corrector.lookup('曝露'));
console.log(corrector.lookup('必恭必敬'));
assert.equal(corrector.lookup('曝露')[0].term, '暴露')
assert.equal(corrector.lookup('必恭必敬')[0].distance, 2)
An implementation of the Symmetric Delete spelling correction algorithm. It is fast and language-independent, but there is some setup cost to construct the dictionary.
Currently the results are not as accurate as expected; there are probably some bugs in the port.
Based on C# code and algorithm version 1.6, originally written by Wolf Garbe.
License: LGPL 3.0