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

Download files

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

Source Distribution

sanskrit_tokenizer-0.2.2.tar.gz (61.0 kB view details)

Uploaded Source

Built Distribution

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

sanskrit_tokenizer-0.2.2-py3-none-any.whl (59.3 kB view details)

Uploaded Python 3

File details

Details for the file sanskrit_tokenizer-0.2.2.tar.gz.

File metadata

  • Download URL: sanskrit_tokenizer-0.2.2.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

Hashes for sanskrit_tokenizer-0.2.2.tar.gz
Algorithm Hash digest
SHA256 f40ec77d2eb845e1dbdb1a32e84c68d8bb291e58e145cf271ab5b5a5d30c4de0
MD5 40a2878e789fa5be07224254fc062576
BLAKE2b-256 e8ce3f3923b5353bea8a4a89cab477b748e2d93330e6e92efe6409fb74f7d4d8

See more details on using hashes here.

File details

Details for the file sanskrit_tokenizer-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for sanskrit_tokenizer-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 65d5c99e35381944288617b6b99f66d82cc497aa7b38a5be86bcbc53f70c02e7
MD5 486b660cad4d1d7f172018a999fe36a0
BLAKE2b-256 3a9cee0664f458116effd9bc4979d8238a40aae034e887656edc9547bf019f02

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 files

0.2.1

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

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