A Dzongkha tokenizer and segmenter (32k Subword & Tseg)
Project description
dzoseg 🇧🇹
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 (་).
- Byte-Fallback: Automatically handles non-Dzongkha characters (English, numbers, etc.) without crashing.
📦 Installation
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 DzongkhaTokenizer
# Initialize the segmenter
ds = DzongkhaTokenizer()
text = "འབྲུག་རྒྱལ་གཞུང་གཙུག་ལག་སློབ་སྡེའི་འོག་ལུ་ཡོད་པའི་ཚན་རིག་དང་འཕྲུལ་རིག་མཐོ་རིམ་སློབ་གྲྭའི་གློག་རིག་དང་འཕྲུལ་རིག་ལས་ཁུངས།"
# Get subword tokens
tokens = ds.segment_subwords(text)
print(f"Subwords: {tokens}")
# Expected Output:
# Subwords: [' འབྲུག་', 'རྒྱལ་གཞུང་', 'གཙུག་ལག་སློབ་སྡེ', 'འི་', 'འོག་ལུ་ཡོད་པའི་', 'ཚན་རིག་', 'དང་', 'འཕྲུལ་རིག་', 'མཐོ་རིམ་སློབ་གྲྭ', 'འི་', 'གློག་རིག་', 'དང་', 'འཕྲུལ་རིག་', 'ལས་ཁུངས།']
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:
# Syllables: ['འབྲུག','རྒྱལ','གཞུང', 'ཙུག', 'ལག', 'སློབ', 'སྡེའི', 'འོག', 'ལུ', 'ཡོད', 'པའི', 'ཚན', 'རིག', 'དང', 'འཕྲུལ', 'རིག', 'མཐོ', 'རིམ', 'སློབ', 'གྲྭའི', 'གློག', 'རིག', 'དང', 'འཕྲུལ', 'རིག', 'ལས', 'ཁུངས།']
📊 Model Details
Model Type: Unigram (SentencePiece)
Vocabulary Size: 32,000
Character Coverage: 100%
Training Data: Cleaned Dzongkha Web & Literary Corpus
📜 License
This project is licensed under the MIT License.
Maintained by: Karma Wangchuk
Contact: karma.cst@rub.edu.bt
Project details
Release history Release notifications | RSS feed
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.6.tar.gz
(742.9 kB
view details)
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
dzoseg-0.1.6-py3-none-any.whl
(768.3 kB
view details)
File details
Details for the file dzoseg-0.1.6.tar.gz.
File metadata
- Download URL: dzoseg-0.1.6.tar.gz
- Upload date:
- Size: 742.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98d8c7eb4460e60293353b347c103d378ff9859eec21577955d6bf488a8fe8e5
|
|
| MD5 |
a5e292813179a65375a29999634f17a5
|
|
| BLAKE2b-256 |
0c2d19bd9f11104bebd07df0d656cbfac058c628fec7605c89abd7cc068800b0
|
File details
Details for the file dzoseg-0.1.6-py3-none-any.whl.
File metadata
- Download URL: dzoseg-0.1.6-py3-none-any.whl
- Upload date:
- Size: 768.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be003b38ed995332c14640857da1411d92b259582435548d7916abe6a9670bcc
|
|
| MD5 |
f1dfa1c6e9028f626d6986b8cb97213d
|
|
| BLAKE2b-256 |
0a2b181e0e2b4b53d71aba3798d6c07570b9cc64d9d66ebc81d61b5b817a15a6
|