Skip to main content

A Dzongkha tokenizer and segmenter (32k Subword & Tseg)

Project description

PyPI version License

dzoseg 🇧🇹

PyPI version dzoseg is a lightweight Python library for Dzongkha text segmentation. It offers a hybrid approach, allowing users to choose between high-performance AI subword tokenization (using SentencePiece) and traditional Tseg-based segmentation.

🚀 Features

  • Subword Segmentation: Uses a pre-trained Unigram model with a 32,000 vocabulary size for deep learning applications.
  • Tseg Segmentation: A rule-based approach to split text into syllables based on the traditional Dzongkha Tseg (་).
  • Zero-Dependency Logic: Simple to integrate into any NLP pipeline.
  • Byte-Fallback: Automatically handles non-Dzongkha characters (English, numbers, etc.) without crashing.

📦 Installation

Install the package via pip:

pip install dzoseg


🛠 Usage
1. Subword (AI-Based) Segmentation
This method is recommended for Machine Learning tasks like machine translation or sentiment analysis.
from dzoseg import DzongkhaSegmenter

# Initialize the segmenter
ds = DzongkhaSegmenter()

text = "འབྲུག་རྒྱལ་གཞུང་གཙུག་ལག་སློབ་སྡེའི་འོག་ལུ་ཡོད་པའི་ཚན་རིག་དང་འཕྲུལ་རིག་མཐོ་རིམ་སློབ་གྲྭའི་གློག་རིག་དང་འཕྲུལ་རིག་ལས་ཁུངས།"

# Get subword tokens
tokens = ds.segment_subwords(text)
print(f"Subwords: {tokens}")

# Expected Output: 
# [' འབྲུག་', 'རྒྱལ་གཞུང་', 'གཙུག་ལག་སློབ་སྡེ', 'འི་', 'འོག་ལུ་ཡོད་པའི་', 'ཚན་རིག་', 'དང་', 'འཕྲུལ་རིག་', 'མཐོ་རིམ་སློབ་གྲྭ', 'འི་', 'གློག་རིག་', 'དང་', 'འཕྲུལ་རིག་', 'ལས་ཁུངས།']


2. Tseg-based Segmentation
This method splits the text strictly based on the Dzongkha syllable delimiter (Tseg).

# Get syllable-level tokens
syllables = ds.segment_tseg(text)
print(f"Syllables: {syllables}")

# Expected Output: 
# ['འབྲུག','རྒྱལ','གཞུང', 'ཙུག', 'ལག', 'སློབ', 'སྡེའི', 'འོག', 'ལུ', 'ཡོད', 'པའི', 'ཚན', 'རིག', 'དང', 'འཕྲུལ', 'རིག', 'མཐོ', 'རིམ', 'སློབ', 'གྲྭའི', 'གློག', 'རིག', 'དང', 'འཕྲུལ', 'རིག', 'ལས', 'ཁུངས།']

📊 Model Details
Model Type: Unigram (SentencePiece)
Vocabulary Size: "32,000"
Character Coverage: 100% (1.0)
Input Data: Cleaned Dzongkha Web & Literary Corpus
Byte Fallback: Enabled (True)

📂 Project Structure
dzoseg/
├── src/
│   └── dzoseg/
│       ├── models/
│          ├── dzo_unigram_32000.model
│          └── dzo_unigram_32000.vocab
│       ├── __init__.py
│       └── segmenter.py
├── examples/
│   ├── basic_usage.py
│   └── bulk_segmentation.py
├── pyproject.toml
└── README.md

📜 License
This project is licensed under the MIT License - see the LICENSE file for details.

Maintained by: Karma Wangchuk/https://github.com/KarmaCST/
Contact: karma.cst@rub.edu.bt

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

dzoseg-0.1.3.tar.gz (743.5 kB view details)

Uploaded Source

Built Distribution

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

dzoseg-0.1.3-py3-none-any.whl (768.8 kB view details)

Uploaded Python 3

File details

Details for the file dzoseg-0.1.3.tar.gz.

File metadata

  • Download URL: dzoseg-0.1.3.tar.gz
  • Upload date:
  • Size: 743.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for dzoseg-0.1.3.tar.gz
Algorithm Hash digest
SHA256 17a3b4bfdc97c0316609fa02e563b161f128126845637a3b964f4c581dae16b8
MD5 b3fc1ea9d602e116ab88cadaf680c3be
BLAKE2b-256 432503aee5f8b5d34985404e1efc6defd83ad8ebc03bccae0f96b3efa35095d0

See more details on using hashes here.

File details

Details for the file dzoseg-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: dzoseg-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 768.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for dzoseg-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 44186f99bb0c92d8cd7f8f53b07af101b7078f08f3ca5ff5da4e2c09b4709a9a
MD5 0eaa678d35d98b0dc42a43785c7d858b
BLAKE2b-256 96ae1c7f35a666b5f9d1591638309088eb3c7f980db93151b2dd33def557a2ac

See more details on using hashes here.

Supported by

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