Swiftpack.co - StarlangSoftware/Dictionary-Swift as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by StarlangSoftware.
StarlangSoftware/Dictionary-Swift 1.0.13
Dictionary processing library
⭐️ 0
🕓 2 weeks ago
.package(url: "https://github.com/StarlangSoftware/Dictionary-Swift.git", from: "1.0.13")

Turkish Dictionary

This resource is a dictionary of Modern Turkish, comprised of the definitions of over 50.000 individual entries. Each entry is matched with its corresponding synset (set of synonymous words and expressions) in the Turkish WordNet, KeNet.

The bare-forms in the lexicon consists of nouns, adjectives, verbs, adverbs, shortcuts, etc. Each bare-form appears the same in the lexicon except verbs. Since the bare-forms of the verbs in Turkish do not have the infinitive affix ‘mAk’, our lexicon includes all verbs without the infinitive affix. The bare-forms with diacritics are included in two forms, with and without diacritics. For example, noun ‘rüzgar’ appear both as ‘rüzgar’ and ‘rüzgâr’.

Special markers are included as bare-forms such as doc, s, etc.

Some compound words are included in their affixed form. For instance, ‘acemlalesi’ appears as it is, but not as ‘acemlale’.

Foreign words, especially proper noun foreign words, are included, so that the system can easily recognize them as proper nouns. For instance, the words ‘abbott’, ‘abbigail’ are example foreign proper nouns. Including foreign proper nouns, there are 19,000 proper nouns in our lexicon.

From derivational suffixes, we only include words which has taken -lI, -sIz, -CI, -lIk, and -CIlIk derivational affixes. For example, the bare-forms ‘abacı’, ‘abdallık’, ‘abdestli’ and ‘abdestlilik’, are included, since they have taken one or more derivational affixes listed above.

Each bare-form has a set of attributes. For instance, ‘abacı’ is a noun, therefore, it includes CL_ISIM attribute. Similarly, ‘abdestli’ is an adjective, which includes IS_ADJ attribute. If the bare-form has homonyms with different part of speech tags, all corresponding attributes are included.

Name Purpose
CL ISIM, CL FIIL, IS_OA Part of speech tag(s)
IS_DUP Part of a duplicate form
IS_KIS Abbreviation, which does not obey vowel harmony while taking suffixes.
IS_UU, IS_UUU Does not obey vowel harmony while taking suffixes.
IS_BILES A portmanteau word in affixed form, such as ‘adamotu’
IS_B_SI A portmanteau word ending with ‘sı’, such as ‘acemlalesi’
IS_CA Already in a plural form, therefore can not take plural suffixes such as ‘ler’ or ‘lar’.
IS_ST The second consonant undergoes a resyllabification.
IS_UD, IS_UDD, F_UD Includes vowel epenthesis.
IS_KG Ends with a ‘k’, and when it is followed by a vowel-initial suffix, the final ‘k’ is replaced with a ‘g’.
IS_SD, IS_SDD, F_SD Final consonant gets devoiced during vowel-initial suffixation.
F GUD, F_GUDO The verb bare-form includes vowel reduction.
F1P1, F1P1-NO-REF A verb, and depending on this attribute, the verb can (or can not) take causative suffix, factitive suffix, passive suffix etc.

Video Lectures

For Developers

You can also see Java, Python, Cython, C#, Js, or C++ repository.


  • Xcode Editor
  • Git


Install the latest version of Git.

Download Code

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 <your-fork-git-link>

A directory called Dictionary-Swift will be created. Or you can use below link for exploring the code:

git clone https://github.com/starlangsoftware/Dictionary-Swift.git

Open project with XCode

To import projects from Git with version control:

  • XCode IDE, select Clone an Existing Project.

  • In the Import window, paste github URL.

  • Click Clone.

Result: The imported project is listed in the Project Explorer view and files are loaded.


From IDE

After being done with the downloading and opening project, select Build option from Product menu. After compilation process, user can run Dictionary-Swift.

Detailed Description


Dictionary is used in order to load Turkish dictionary or a domain specific dictionary. In addition, misspelled words and the true forms of the misspelled words can also be loaded.

To load the Turkish dictionary and the misspelled words dictionary,

a = TxtDictionary()

To load the domain specific dictionary and the misspelled words dictionary,

init(fileName: String, misspelledFileName: String, comparator: @escaping (Word, Word) throws -> Bool)

And to see if the dictionary involves a specific word, Word getWord is used.

func getWord(name: String) -> Word?


The word features: To see whether the TxtWord class of the dictionary is a noun or not,

func isNominal() -> Bool

To see whether it is an adjective,

func isAdjective() -> Bool

To see whether it is a portmanteau word,

func isPortmanteau() -> Bool

To see whether it obeys vowel harmony,

func notObeysVowelHarmonyDuringAgglutination() -> Bool

And, to see whether it softens when it get affixes, the following is used.

func rootSoftenDuringSuffixation() -> Bool


To syllabify the word, SyllableList class is used.

init(word: String)


	title = "An Open, Extendible, and Fast {T}urkish Morphological Analyzer",
	author = {Y{\i}ld{\i}z, Olcay Taner  and
  	Avar, Beg{\"u}m  and
  	Ercan, G{\"o}khan},
	booktitle = "Proceedings of the International Conference on Recent Advances in Natural Language Processing (RANLP 2019)",
	month = sep,
	year = "2019",
	address = "Varna, Bulgaria",
	publisher = "INCOMA Ltd.",
	url = "https://www.aclweb.org/anthology/R19-1156",
	doi = "10.26615/978-954-452-056-4_156",
	pages = "1364--1372",


Stars: 0
Last commit: 2 weeks ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Release Notes

Added isCode and isMetric
2 weeks ago

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics