olcaytaner / spellchecker
Turkish Spell Checker library
Package info
github.com/StarlangSoftware/TurkishSpellChecker-Php
pkg:composer/olcaytaner/spellchecker
1.0.0
2026-05-08 19:56 UTC
Requires
- ext-intl: *
- ext-mbstring: *
Requires (Dev)
- olcaytaner/corpus: 1.0.2
- olcaytaner/datastructure: 1.0.1
- olcaytaner/dictionary: 1.0.3
- olcaytaner/morphologicalanalysis: 1.0.4
- olcaytaner/ngram: 1.0.0
- olcaytaner/util: 1.0.2
- olcaytaner/xmlparser: 1.0.1
- phpunit/phpunit: 11.4.0
README
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.
Simple Web Interface
Video Lectures
For Developers
You can also see Cython, Python, Java, C++, C, Swift, Js, or C# repository.
For Contibutors
composer.json file
- autoload is important when this package will be imported.
"autoload": {
"psr-4": {
"olcaytaner\\WordNet\\": "src/"
}
},
- Dependencies should be maximum (not only direct but also indirect references should also be given), everything directly in the code should be given here.
"require-dev": {
"phpunit/phpunit": "11.4.0",
"olcaytaner/dictionary": "1.0.0",
"olcaytaner/xmlparser": "1.0.1",
"olcaytaner/morphologicalanalysis": "1.0.0"
}
Data files
- Add data files to the project folder. Subprojects should include all data files of the parent projects.
Php files
- Do not forget to comment each function.
/**
* Returns true if specified semantic relation type presents in the relations list.
*
* @param SemanticRelationType $relationType element whose presence in the list is to be tested
* @return bool true if specified semantic relation type presents in the relations list
*/
public function containsRelationType(SemanticRelationType $relationType): bool{
foreach ($this->relations as $relation){
if ($relation instanceof SematicRelation && $relation->getRelationType() == $relationType){
return true;
}
}
return false;
}
- Function names should follow caml case.
public function getRelation(int $index): Relation{
- Write getter and setter methods.
public function getOrigin(): ?string
public function setName(string $name): void
- Use standard javascript test style by extending the TestCase class. Use setup when necessary.
class WordNetTest extends TestCase
{
private WordNet $turkish;
protected function setUp(): void
{
ini_set('memory_limit', '450M');
$this->turkish = new WordNet();
}
public function testSize()
{
$this->assertEquals(78327, $this->turkish->size());
}
- Enumerated types should be declared with enum.
enum CategoryType
{
case MATHEMATICS;
case SPORT;
case MUSIC;
case SLANG;
case BOTANIC;
- If there are multiple constructors for a class, define them as constructor1, constructor2, ..., then from the original constructor call these methods.
public function constructor1(string $path, string $fileName): void
public function constructor2(string $path, string $extension, int $index): void
public function __construct(string $path, string $extension, ?int $index = null)
- Use __toString method if necessary to create strings from objects.
public function __toString(): string
- Use xmlparser package for parsing xml files.
$doc = new XmlDocument("../test.xml");
$doc->parse();
$root = $doc->getFirstChild();
$firstChild = $root->getFirstChild();
