A simple spell checker implementation in Dart. For now it only finds the single words from a given dictionary. Algorithm is different than Peter Norvig's implementation (http://norvig.com/spell-correct.html). This implementation is more complicated but probably much faster (finds several thousands matches in a second). It uses dynamic decoding over a simple trie generated from the dictionary. System finds words with a distance to the input. Deletions, insertions, substitutions and transpositions are supported.
import 'package:dart_spell/dart_spell.dart'; ... // optional distance parameter. Default is 1.0 var checker = new SingleWordSpellChecker(distance:1.0); var dictionary = ["apple", "apples", "pear", "ear"]; checker.addWords(dictionary); List<Result> matches = checker.find("apple"); print(matches); Output: [apple:0.0, apples:1.0]
- Add less substitution penalty for near keys in keyboard layout.
- Add language model support so that it gives more logical suggestions.
- Add multi word spell suggestion with space and out of vocabulary word handling.