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
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 sanskrit_tokenizer-0.2.1.tar.gz.
File metadata
- Download URL: sanskrit_tokenizer-0.2.1.tar.gz
- Upload date:
- Size: 61.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84fb2e4fc47e54cc2a8d047aade8b5ed75f0373f5f017e155ad7ab06fec94934
|
|
| MD5 |
ad3624d1ca0152b3b5302530216052cc
|
|
| BLAKE2b-256 |
40e7a4c4c5a049218b14bad84806d4b54bbe8ae77cf9b39be09c0c4ad330f3c1
|
File details
Details for the file sanskrit_tokenizer-0.2.1-py3-none-any.whl.
File metadata
- Download URL: sanskrit_tokenizer-0.2.1-py3-none-any.whl
- Upload date:
- Size: 59.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 |
11939bd96d7c5e93dbd0dae972fcf16d9f40fdbbeea300c75aa3566f82f5c021
|
|
| MD5 |
33982117a9994e5c40d561b9c545414e
|
|
| BLAKE2b-256 |
00e097cdf4d4b2293bfa2d186add0faf745e5dc63925c55c616a8287507762cc
|