TurkicNLP: An NLP Toolkit for Turkic Languages
Organizations: Computational Linguistics, University of Potsdam
Abstract
Turkic languages are spoken by about 200 million people and are written in Latin, Cyrillic, and Perso-Arabic scripts, yet the NLP tools that exist for them are scattered across languages, scripts, and incompatible software. We present TurkicNLP, an open-source Python library that offers a single pipeline for 24 Turkic languages, covering tokenization, morphological analysis, POS tagging, dependency parsing, named entity recognition, language identification, sentence embeddings, and machine translation. The library is designed for cross-lingual use: it detects and converts between scripts, maps 23 languages into the shared Common Turkic Alphabet, and includes multilingual models that share parameters across the family and transfer to languages without annotated data. Our evaluation shows the benefits of this design. The multilingual parser outperforms per-language parsers, the multilingual morphological analyzer complements finite-state analyzers where their lexicons are small, and both produce usable analyses for languages unseen in training. Transliteration is almost fully reversible, and converting text to the Common Turkic Alphabet removes most of the additional tokenization cost that large language models incur on Cyrillic- and Arabic-script Turkic languages. Code, models, and documentation are available at: https://github.com/turkic-nlp/turkicnlp.
Figures & tables
| Language (ISO) | Sentence | Language (ISO) | Sentence |
| Latin script | |||
| Turkish (tur) | Ali kitabı gördü. | Azerbaijani (aze) | Ali kitabı gördü. |
| Turkmen (tuk) | Ali kitaby gördi. | Gagauz (gag) | Ali kitabı gördü. |
| Crimean Tatar (crh) | Ali kitanı kördi. | Karakalpak (kaa) | Ali kitaptı kórdi. |
| Uzbek (uzb) | Ali kitobni koʻrdi. | ||
| Cyrillic script | |||
| Language | ISO | Direction | Standard |
|---|---|---|---|
| Kazakh | kaz | Cyrl Latn | Official 2021 |
| Uzbek | uzb | Cyrl Latn | Official 1995 |
| Azerbaijani | aze | Cyrl Latn | Official 1991 |
| Tatar | tat | Cyrl Latn | Zamanälif |
| Turkmen | tuk | Cyrl Latn | 1993 (revised) |
| Karakalpak | kaa | Cyrl Latn | Official 2016 |
| Language | Script(s) | Tokenize | MWT | Morph (FST) | Morph (Neu) | POS Tag | Lemmatize | Dep. Parse | NER | Translit. | CTS | Morph. Seg. | Embed./MT |
| Oghuz | |||||||||||||
| Turkish | Latn | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | – | ✓ | ✓ | |
| Azerbaijani | Latn/Cyrl | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
| South Azerb. | Arab | ✓ | – | ✓ | ✓ | ||||||||
| Turkmen | Latn/Cyrl | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
| Gagauz | Latn | ✓ | – | ✓ | |||||||||
| Language | ISO | Branch | Quality |
|---|---|---|---|
| Turkish | tur | Oghuz | Production |
| Kazakh | kaz | Kipchak | Production |
| Tatar | tat | Kipchak | Production |
| Azerbaijani | aze | Oghuz | Stable |
| Kyrgyz | kir | Kipchak | Stable |
| Uzbek | uzb | Karluk | Stable |
| Apertium FST | Neural (Glot500) | |||||||
| Language | ISO | Scr | Det% | Ana% | Feat% | Det% | Ana% | Feat% |
| Turkish | tur | Latn | 90 | 100 | 87 | 80 | 100 | 90 |
| Azerbaijani | aze | Latn | 50 | 53 | 42 | 75 | 100 | 79 |
| Turkmen | tuk | Latn | 80 | 69 | 51 | 75 | 100 | 90 |
| Gagauz | gag | Latn | 85 | 90 | 77 | 75 | 100 | 94 |
| Kazakh | kaz | Cyrl | 80 | 100 | 78 | 70 | 100 | 82 |
| Stanza (per-language) | Glot500 (multilingual) | ||||||||
| Language | ISO | UPOS | UAS | LAS | UPOS | UAS | LAS | ||
| Turkish | tur | 877 | 85.1 | 75.3 | 63.5 | 86.9 | 84.5 | 70.1 | |
| Azerbaijani | aze | 869 | 84.9 | 72.3 | 60.8 | 87.0 | 76.2 | 64.5 | |
| Turkmen ‡ | tuk | 825 | 86.1 | 76.8 | 67.8 | 85.8 | 77.9 | 68.4 | |
| Kazakh | kaz | 851 | 87.9 | 67.4 | 57.4 | 88.8 | 71.9 | 59.9 | |
| Kyrgyz | kir | 1166 | 71.1 | 50.2 | 29.4 | 79.0 | 63.9 | 41.0 | |
| Language | Datasets — Training | Datasets — Benchmarks | NLP Components | Toolkits | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| UD Tree-banks | NER Corpus | Parallel/ MT Corpus | Speech Corpus | NLU Bench. | QA | Morphology | POS + Dep. | NER System | ASR | TTS | MT | Toolkit | |
| Oghuz Branch | |||||||||||||
| Turkish (tur) | ( Sulubacak et al., 2016 ) ; ( Türk et al., 2019 ) ; ( Eryiğit et al., 2023 ) | MilliyetNER ( Tur et al., 2003 ) ; TWNERTC ( Sahin et al., 2017 ) | NLLB ( NLLB Team et al., 2022 ) ; OPUS ( Syzdykov and et al., 2021 ) ; Leipzig ( Goldhahn et al., 2012 ) | CommonVoice ( Ardila et al., 2020 ) ; TSC ( ISSAI, 2024 ) ; FLEURS ( Conneau et al., 2022 ) | Mukayese ( Safaya et al., 2022 ) ; TR-MMLU ( Bayram et al., 2025 ) ; TurkishMMLU ( Yüksel et al., 2024 ) ; Cetvel ( Er et al., 2026 ) ; TurkBench ( Toraman et al., 2026 ) ; TUMLU ( Isbarov et al., 2025 ) | — | Apertium Prod. ( Forcada et al., 2011 ) ; Zemberek ( Akın and Akın, 2007 ) | Stanza ( Qi et al., 2020 ) ; TurkishDelightNLP ( Alecakir et al., 2022 ) ; ITU pipeline ( Eryiğit et al., 2023 ) | TurkishDelightNLP ( Alecakir et al., 2022 ) ; Stanza ( Qi et al., 2020 ) | CommonVoice ( Ardila et al., 2020 ) ; Söyle ( Mussakhojayeva et al., 2023b ) ; TurkicASR ( Mussakhojayeva et al., 2023a ) | TurkicTTS ( Yeshpanov et al., 2023 ) | NLLB ( NLLB Team et al., 2022 ) ; Apertium ( Forcada et al., 2011 ) | Zemberek ( Akın and Akın, 2007 ) ; TurkishDelightNLP ( Alecakir et al., 2022 ) ; ITU NLP ( Eryiğit, 2014 ) ; TurkNLP Suite ( Altinok, 2023 ) |
| Azerbaijani (aze) | ( Akhundjanova et al., 2025 ) | azWikiNER ( Ibiyev and Novak, 2021 ) ; AzNER ( LocalDoc, 2024 ) | NLLB ( NLLB Team et al., 2022 ) ; TIL ( Syzdykov and et al., 2021 ) ; Leipzig ( Goldhahn et al., 2012 ) | Multilingual ( Mussakhojayeva et al., 2023a ) ; AzASR ( LocalDoc, 2025 ) ; FLEURS ( Conneau et al., 2022 ) | TUMLU ( Isbarov et al., 2025 ) ; Kardeş-NLU ( Senel et al., 2024 ) | — | Apertium Stb. ( Forcada et al., 2011 ) | UDPipe ( Straka et al., 2016 ) | XLM-R NER ( Samadov, 2024 ) | TurkicASR ( Mussakhojayeva et al., 2023a ) | TurkicTTS ( Yeshpanov et al., 2023 ) | NLLB ( NLLB Team et al., 2022 ) | — |
| Turkmen (tuk) | — | — | NLLB ( NLLB Team et al., 2022 ) ; TIL ( Syzdykov and et al., 2021 ) ; Leipzig ( Goldhahn et al., 2012 ) | TurkmenSpeech ( Mamedov, 2024 ) | — | — | Apertium Beta ( Forcada et al., 2011 ) | — | — | Söyle ( Mussakhojayeva et al., 2023b ) | TurkicTTS ( Yeshpanov et al., 2023 ) | NLLB ( NLLB Team et al., 2022 ) | — |
| Gagauz (gag) | — | — | NLLB ( NLLB Team et al., 2022 ) | — | — | — | Apertium Proto. ( Forcada et al., 2011 ) | — | — | — | — | NLLB ( NLLB Team et al., 2022 ) | — |
| Language | Encoder-only (MLM) | Generative / Seq2Seq | Multilingual models |
|---|---|---|---|
| BERT / RoBERTa / ELECTRA | GPT / LLaMA / T5 / BART | (coverage confirmed) | |
| Oghuz Branch | |||
| Turkish (tur) | BERTurk (base/cased/uncased/128k; DistilBERT; ELECTRA; ConvBERT) ( Schweter, 2020 ) | TURNA (1.1B enc-dec) ( Uludoğan et al., 2024 ) ; Kumru-2B ( Turker et al., 2024 ) ; Trendyol-LLM-8B ( Trendyol Tech, 2024 ) | mBERT ( Devlin et al., 2019 ) ; XLM-R ( Conneau et al., 2020 ) ; Glot500 ( Imani et al., 2023 ) ; mGPT ( Shliazhko et al., 2024 ) ; NLLB ( NLLB Team et al., 2022 ) |
| Azerbaijani (aze) | aLLMA (SMALL/BASE/LARGE) ( Isbarov et al., 2024 ) | Az-Mistral (7B) ( Isbarov et al., 2024 ) | mBERT ( Devlin et al., 2019 ) ; XLM-R ( Conneau et al., 2020 ) ; Glot500 ( Imani et al., 2023 ) ; mGPT ( Shliazhko et al., 2024 ) ; NLLB ( NLLB Team et al., 2022 ) |
| Turkmen (tuk) | — | — | Glot500 ( Imani et al., 2023 ) ; mGPT ( Shliazhko et al., 2024 ) ; NLLB ( NLLB Team et al., 2022 ) |
| Gagauz (gag) | — | — | Glot500 ( Imani et al., 2023 ) ; NLLB ( NLLB Team et al., 2022 ) |
Appendix figures & tables16 assets
Supplementary material from the paper’s appendix.
Appendix
| Genitive-Possessive gen_psor | |
|---|---|
| eng | Ali’s book is on the table. |
| alt | Алинин бичиги столдо. |
| aze | Ali’nin kitabı masadadır. |
| bak | Алиҙың китабы өҫтәлдә. |
| chv | Алин кӗнеки сӗтел ҫинче. |
| crh | Ali’niñ kitabı masada. |
| Locative locative | |
|---|---|
| eng | Ali is waiting at school. |
| alt | Али школдо сакып јат. |
| aze | Ali məktəbdə gözləyir. |
| bak | Али мәктәптә көтә. |
| chv | Али шкулта кӗтет. |
| crh | Ali mektepte bekley. |
| Dative dative | |
|---|---|
| eng | Ali entered the school. |
| alt | Али школго кирди. |
| aze | Ali məktəbə girdi. |
| bak | Али мәктәпкә инде. |
| chv | Али шкула кӗнӗ. |
| crh | Ali mektepke kirdi. |
| 1st Person Possessive psor_1sg | |
|---|---|
| eng | My house is big. |
| alt | Мениҥ айылым јаан. |
| aze | Mənim evim böyükdür. |
| bak | Минең өйөм ҙур. |
| chv | Манӑн кил пысӑк. |
| crh | Meniñ evim büyük. |
| Present Progressive present_prog | |
|---|---|
| eng | Ali is coming now. |
| alt | Али эмди келип јат. |
| aze | Ali indi gəlir. |
| bak | Али хәҙер килә. |
| chv | Али халӗ килет. |
| crh | Ali şimdi kele. |
| Negation negation | |
|---|---|
| eng | Ali did not go to school. |
| alt | Али школго барган јок. |
| aze | Ali məktəbə getmədi. |
| bak | Али мәктәпкә барманы. |
| chv | Али шкула кайман. |
| crh | Ali mektepke barmadı. |
| Imperative imperative | |
|---|---|
| eng | Ali, open the door! |
| alt | Али, эжикти ач! |
| aze | Ali, qapını aç! |
| bak | Али, ишекте ас! |
| chv | Али, алӑка уҫ! |
| crh | Ali, qapını aç! |
| Evidential evidential | |
|---|---|
| eng | Ali apparently came. |
| alt | Али келип калган. |
| aze | Deyəsən, Ali gəlib. |
| bak | Күрәһең, Али килгән. |
| chv | Али килнӗ курӑнать. |
| crh | Ali kelgen kibi. |
| Reciprocal reciprocal | |
|---|---|
| eng | They saw each other. |
| alt | Олор бой-бойын кӧрдилӧр. |
| aze | Onlar bir-birini gördülər. |
| bak | Улар бер-береһен күрҙеләр. |
| chv | Вӗсем пӗр-пӗрне курнӑ. |
| crh | Olar bir-birini kördiler. |
| Numeral numeral | |
|---|---|
| eng | Three students came. |
| alt | Ӱч студент келди. |
| aze | Üç tələbə gəldi. |
| bak | Өс студент килде. |
| chv | Виҫӗ студент килнӗ. |
| crh | Üç student keldi. |
| Lang. | Round trip | Words | Word% | CER | Purity |
|---|---|---|---|---|---|
| aze | Latn Cyrl Latn | 784 | 100.0 | 0.00 | 100.0 |
| tuk | Latn Cyrl Latn | 62 | 100.0 | 0.00 | 100.0 |
| uzb | Latn Cyrl Latn | 913 | 100.0 | 0.00 | 100.0 |
| crh | Latn Cyrl Latn | 822 | 97.6 | 0.37 | 100.0 |
| kaa | Latn Cyrl Latn | 272 | 100.0 | 0.00 | 99.7 |
| kaz | Cyrl Latn Cyrl | 65 | 100.0 | 0.00 | 100.0 |
| Challenge | TueCL | |||
| Lang. | Full | Turkic | Full | Turkic |
| tur | 100 | 100 | 100.0 | 100.0 |
| aze | 90 | 90 | 89.2 | 89.2 |
| tuk | 80 | 80 | – | – |
| gag | 10 | 10 | – | – |
| kaz | 100 | 100 | – | – |
| Qwen3.5 | LLaMA 3 | OLMo 3 | GPT-5.2 | |||||
| Lang. | Nat. | CTS | Nat. | CTS | Nat. | CTS | Nat. | CTS |
| kaz | 2.86 | 2.28 | 3.51 | 2.32 | 4.05 | 2.55 | 2.37 | 2.29 |
| kir | 2.84 | 2.16 | 3.48 | 2.31 | 3.80 | 2.59 | 2.52 | 2.12 |
| tat | 3.13 | 2.37 | 4.13 | 2.59 | 4.46 | 2.71 | 2.51 | 2.40 |
| bak | 3.35 | 2.33 | 4.68 | 2.57 | 5.00 | 2.68 | 2.54 | 2.35 |
| nog | 2.92 | 2.02 | 3.08 | 2.08 | 3.48 | 2.27 | 2.65 | 1.98 |
| Neural | Apertium | Hybrid | |||||||
|---|---|---|---|---|---|---|---|---|---|
| Lang. | C | Ex. | BF1 | Ex. | BF1 | Ex. | BF1 | Lab | |
| tur | H | 34 | 74 | 87 | 94 | 98 | 97 | 99 | 96 |
| aze | H | 30 | 67 | 76 | 23 | 21 | 70 | 80 | 65 |
| tuk | M | 30 | 67 | 80 | 87 | 95 | 93 | 97 | 88 |
| gag | L | 16 | 88 | 92 | 81 | 89 | 94 | 97 | 92 |
| kaz | H | 34 | 82 | 91 | 88 | 96 | 97 | 99 | 98 |
| Category | Neural | Apertium | Hybrid | |
|---|---|---|---|---|
| Plural | 47 | 94 | 79 | 96 |
| Case | 92 | 91 | 83 | 97 |
| Possessive | 47 | 77 | 79 | 87 |
| Pl.+poss.+case | 25 | 84 | 80 | 92 |
| Past + person | 40 | 60 | 80 | 88 |
| Present/aorist + person | 24 | 50 | 63 | 83 |
| Category | Turkish | Kazakh | Uzbek | Sakha |
|---|---|---|---|---|
| Plural | kitap·lar | кітап·тар | kitob·lar | кинигэ·лэр |
| Case | ev·de | мектеп·ке | maktab·ga | оскуола·ҕа |
| Possessive | kapı·sı | қала·сы | bola·si | оҕо·то |
| Pl.+poss.+case | kitap·lar·ımız·dan | кітап·тар·ымыз·дан | kitob·lar·imiz·dan | кинигэ·лэр·бит |
| Past + person | gel·di·m | бар·ды·м | bor·di·m | бар·ды·м |
| Present + person | gid·iyor·um | бар·а·мын | bor·a·man | бар·а·бын |