Skip to main content

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)

Source distribution for sanskrit-tokenizer 0.2.2
File Size Uploaded
sanskrit_tokenizer-0.2.2.tar.gz 61.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sanskrit-tokenizer 0.2.2
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page