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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b77d1c65a35cb799f613472c46a21a00cef74f42487dc5ee45538238704f2ad
|
|
| MD5 |
9d47f357ad472e2541d3bfcf96b742d1
|
|
| BLAKE2b-256 |
1890dad97f6c8948cd338d9f1fe94d6659c674e3ef927870f89aa38e82bb4437
|
File details
Details for the file kannada_tokenizer-0.1.0-py3-none-any.whl.
File metadata
- Download URL: kannada_tokenizer-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5fdadde7a5a444876d5bd847664f05e3972c71370d6dab65d107f0b95b670250
|
|
| MD5 |
1bd9bb88c4cc7b43573664d1b2ba038a
|
|
| BLAKE2b-256 |
809fa165636a22d1ead340708f7d87d82f0d38d2defbbfcc3828f19aa3c6e762
|