ahmetaa/zemberek-nlp

NLP tools for Turkish.

Zemberek‑NLP – Turkish Natural‑Language Processing Toolkit

What it is – A Java library that bundles a collection of NLP components specifically for Turkish. It covers everything from low‑level text handling (tokenization, spelling correction) up to higher‑level tasks such as morphological analysis, named‑entity recognition, language identification and text classification.

Main modules

Module What it does
Core Utility collections, hash functions, and helper classes used by the other modules.
Morphology Turkish morphological parsing, disambiguation and word‑form generation.
Tokenization Sentence boundary detection and tokenisation tuned for Turkish orthography.
Normalization Spell‑checking, word‑suggestion and noisy‑text cleaning.
NER Named‑entity recogniser (model not yet shipped).
Classification Text classification built on a Java port of Facebook’s fastText.
Language Identification Quick detection of the language of a given text.
Language Modeling Compression‑friendly language‑model format and utilities.
Applications Ready‑to‑run console tools (e.g., interactive morphology analyser).
gRPC Server Exposes the library over gRPC so it can be called from other languages.
Examples Small programs showing typical usage patterns.

How to use it

  • Maven – Add the Zemberek Maven repository (https://raw.github.com/ahmetaa/maven-repo/master) and declare the desired module(s) as dependencies, e.g. zemberek-morphology version 0.17.1.
  • Standalone JAR – Download zemberek-full.jar from the linked Google‑Drive folder. Running java -jar zemberek-full.jar lists the bundled console applications.
  • Source – The repository contains a examples module and a separate turkish-nlp-examples project that demonstrates the API.

Current status – The project is in slow maintenance mode; the latest release is 0.17.1 (July 2019). Some components (e.g., NER) lack pretrained models, and the library has limited multi‑threading testing.

License – Apache License 2.0 (permissive, commercial‑friendly).

Who might need it – Researchers, developers, or hobbyists building Turkish‑language applications (chatbots, search, text analytics, etc.) who prefer a pure‑Java solution that can be embedded directly or accessed via gRPC.

Related

  • Project
  • Project
  • Project
  • Project