Turkish Spell Checker Library
npm install nlptoolkit-spellcheckerTurkish Spell Checker
============
This tool is a spelling checker for Modern Turkish. It detects spelling errors and corrects them appropriately, through its list of misspellings and matching to the Turkish dictionary.
Video Lectures
============
For Developers
============
You can also see Java, Python,
Cython, Swift,
C++, or C# repository.
To check if you have a compatible version of Node.js installed, use the following command:
node -v
You can find the latest version of Node.js here.
Install the latest version of Git.
npm install nlptoolkit-spellchecker
In order to work on code, create a fork from GitHub page.
Use Git for cloning the code to your local or below line for Ubuntu:
git clone
A directory called util will be created. Or you can use below link for exploring the code:
git clone https://github.com/starlangsoftware/turkishspellchecker-js.git
Steps for opening the cloned project:
* Start IDE
* Select File | Open from main menu
* Choose SepllChecker-Js file
* Select open as project option
* Couple of seconds, dependencies will be downloaded.
Detailed Description
============
+ Creating SpellChecker
+ Spell Correction
SpellChecker finds spelling errors and corrects them in Turkish. There are two types of spell checker available:
* SimpleSpellChecker
* To instantiate this, a FsmMorphologicalAnalyzer is needed.
let fsm = FsmMorphologicalAnalyzer();
let spellChecker = SimpleSpellChecker(fsm);
* NGramSpellChecker,
* To create an instance of this, both a FsmMorphologicalAnalyzer and a NGram is required.
* FsmMorphologicalAnalyzer can be instantiated as follows:
let fsm = FsmMorphologicalAnalyzer();
* NGram can be either trained from scratch or loaded from an existing model.
* Training from scratch:
let corpus = Corpus("corpus.txt");
let ngram = NGram(corpus.getAllWords(), 1);
ngram.calculateNGramProbabilities(new LaplaceSmoothing());
There are many smoothing methods available. For other smoothing methods, check here.
* Loading from an existing model:
let ngram = NGram("ngram.txt");
For further details, please check here.
* Afterwards, NGramSpellChecker can be created as below:
let spellChecker = NGramSpellChecker(fsm, ngram);
Spell correction can be done as follows:
let sentence = new Sentence("Dıktor olaç yazdı");
let corrected = spellChecker.spellCheck(sentence);
Console.log(corrected);
Output:
Doktor ilaç yazdı