sanskrit-tokenizer
Tokenize Sanskrit text with sandhi splitting for Information Retrieval.
pip install sanskrit-tokenizer
Quick start
from sanskrit_tokenizer import tokenize
tokenize("dharmakṣetre kurukṣetre")
# ['dharmakṣetre', 'kurukṣetre']
tokenize("धर्म योग")
# ['धर्म', 'योग']
tokenize("devālaya namaḥ")
# ['deva', 'ālaya', 'namaḥ']
tokenize() accepts both Devanagari and IAST input — output script matches input. Splits on whitespace and punctuation, applies reverse sandhi rules, and preserves the original script.
Sandhi splitting
from sanskrit_tokenizer.sandhi import split_sandhi
split_sandhi("devālaya") # deva(832) + ālaya(76) — both in dict ✓
# ['deva', 'ālaya']
split_sandhi("narottama") # nara(187) + uttama(160) — guṇa: a + u → o
# ['nara', 'uttama']
split_sandhi("dharmakṣetre") # kṣa(0) + itre(0) — not real words ✗
# ['dharmakṣetre']
Dictionary-aware scoring: splits are validated against an embedded 8,750-word Sanskrit frequency dict (from Wiktionary, CC BY-SA). Candidates producing real words score dramatically higher than spurious fragments. Rule engine covers vowel sandhi (savarṇa-dīrgha, guṇa, vṛddhi, yān, ayādi), consonant sandhi, and visarga sandhi.
Transliteration
from sanskrit_tokenizer.transliterate import (
devanagari_to_iast,
iast_to_devanagari,
is_devanagari,
)
devanagari_to_iast("संस्कृत")
# 'saṃskṛta'
iast_to_devanagari("dharma")
# 'धर्म'
is_devanagari("संस्कृत")
# True
Word-level tokenization
from sanskrit_tokenizer import tokenize_words
tokenize_words("dharma yoga namaḥ")
# ['dharma', 'yoga', 'namaḥ']
tokenize_words("धर्म योग")
# ['धर्म', 'योग']
tokenize_words() splits on whitespace and punctuation only — no sandhi splitting.
CLI
sanskrit-tokenize "dharma yoga"
# dharma
# yoga
sanskrit-tokenize "धर्म योग"
# धर्म
# योग
sanskrit-tokenize --no-sandhi "devālaya"
# devālaya
sanskrit-tokenize -s " " "dharma yoga"
# dharma yoga
sanskrit-tokenize --version
# sanskrit-tokenize 0.2.0
--no-sandhi— word-level only, skip sandhi splitting--separator SEP— output separator (default: newline)--version— show version
License
MIT © Hemanth.HM
Metadata
Release files for sanskrit-tokenizer 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sanskrit_tokenizer-0.2.2.tar.gz | 61.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sanskrit_tokenizer-0.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 120.3 kB
Release files / sanskrit_tokenizer-0.2.2.tar.gz
| Download URL | sanskrit_tokenizer-0.2.2.tar.gz |
|---|---|
| Size | 61.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f40ec77d2eb845e1dbdb1a32e84c68d8bb291e58e145cf271ab5b5a5d30c4de0
|
|
BLAKE2b-256 checksum How to use checksums |
e8ce3f3923b5353bea8a4a89cab477b748e2d93330e6e92efe6409fb74f7d4d8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.5
|
Release files / sanskrit_tokenizer-0.2.2-py3-none-any.whl
| Download URL | sanskrit_tokenizer-0.2.2-py3-none-any.whl |
|---|---|
| Size | 59.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
65d5c99e35381944288617b6b99f66d82cc497aa7b38a5be86bcbc53f70c02e7
|
|
BLAKE2b-256 checksum How to use checksums |
3a9cee0664f458116effd9bc4979d8238a40aae034e887656edc9547bf019f02
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.5
|