Skip to main content

Kannada tokenizer with sandhi splitting for Information Retrieval.

Project description

kannada-tokenizer

Tokenize Kannada text with sandhi splitting for Information Retrieval.

pip install kannada-tokenizer

Quick start

from kannada_tokenizer import tokenize

tokenize("ಕನ್ನಡ ಧರ್ಮ")
# ['kannaḍa', 'dharma']

tokenize("vidyālaya")
# ['vidyālaya']

tokenize("mahōtsava")
# ['maha', 'ōtsava']

tokenize() normalizes to ISO 15919, splits on whitespace and punctuation, then applies reverse sandhi rules. Accepts both Kannada script and romanized input.

Sandhi splitting

from kannada_tokenizer.sandhi import split_sandhi

split_sandhi("rāmāyana")   # lōpa sandhi: ā → a + ā
# ['rāma', 'āyana']

split_sandhi("kannaḍa")    # no junction found
# ['kannaḍa']

Rule-based engine covering lōpa sandhi (vowel elision), āgama sandhi (y/v insertion), ādeśa sandhi (guṇa-like substitution), and consonant sandhi (voicing, gemination, nasals). Uses longest-match heuristic when splits are ambiguous.

Transliteration

from kannada_tokenizer.transliterate import (
    kannada_to_iso15919,
    iso15919_to_kannada,
    is_kannada,
)

kannada_to_iso15919("ಬೆಂಗಳೂರು")
# 'beṃgaḻūru'

iso15919_to_kannada("kannaḍa")
# 'ಕನ್ನಡ'

is_kannada("ಕನ್ನಡ")
# True

Handles Kannada's short/long e/o distinction (ಎ→e vs ಏ→ē) and the retroflex lateral ಳ→ḻ unique to Dravidian.

Word-level tokenization

from kannada_tokenizer.tokenizer import tokenize_words

tokenize_words("vidyālaya namaḥ")
# ['vidyālaya', 'namaḥ']

tokenize_words() splits on whitespace and punctuation only — no sandhi splitting.

CLI

kannada-tokenize "ಕನ್ನಡ ಧರ್ಮ"
# kannaḍa
# dharma

echo "vidyālaya" | kannada-tokenize
# vidyālaya

kannada-tokenize --no-sandhi "mahōtsava"
# mahōtsava

kannada-tokenize -s " " "dharma yōga"
# dharma yōga
  • --no-sandhi — word-level only, skip sandhi splitting
  • --separator SEP — output separator (default: newline)

License

MIT © Hemanth.HM

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kannada_tokenizer-0.1.0.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kannada_tokenizer-0.1.0-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

Details for the file kannada_tokenizer-0.1.0.tar.gz.

File metadata

  • Download URL: kannada_tokenizer-0.1.0.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for kannada_tokenizer-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8b77d1c65a35cb799f613472c46a21a00cef74f42487dc5ee45538238704f2ad
MD5 9d47f357ad472e2541d3bfcf96b742d1
BLAKE2b-256 1890dad97f6c8948cd338d9f1fe94d6659c674e3ef927870f89aa38e82bb4437

See more details on using hashes here.

File details

Details for the file kannada_tokenizer-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for kannada_tokenizer-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5fdadde7a5a444876d5bd847664f05e3972c71370d6dab65d107f0b95b670250
MD5 1bd9bb88c4cc7b43573664d1b2ba038a
BLAKE2b-256 809fa165636a22d1ead340708f7d87d82f0d38d2defbbfcc3828f19aa3c6e762

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page