A comprehensive Bangla NLP library for Bangla Word conversion
Project description
🇧🇩 BanglaWordKit (v0.1.0)
A Comprehensive NLP Toolkit for Bangla Text Normalization, Standardization, and Conversion.
BanglaWordKit is a robust Python library designed to simplify Bangla Natural Language Processing (NLP) tasks. It provides ready-to-use tools for text normalization, slang removal, dialect conversion, and seamless integration between English and Bangla characters.
🚀 Key Features
- 🚫 Slang & Abuse Standardizer: Detects and replaces offensive or rude Bangla words with polite alternatives while maintaining semantic meaning.
- 🔄 English/Banglish to Bangla: Converts English or Banglish words within a Bangla sentence into proper Bangla script (e.g., "office" ➔ "অফিস").
- 📖 Bagdhara Converter: Translates complex Bangla idioms (Bagdhara) into simple, understandable Bangla.
- 🏛️ Sadhu to Cholito: Converts archaic Sadhu Bhasha into modern standard Cholito Bhasha.
- 🌍 Foreign Word Handler: Standardizes foreign words into their common Bangla phonetic representations.
- 🧹 Advanced Normalization: Cleans redundant spaces, punctuation, and handles multi-modal text structures.
📂 Project Structure
Based on the library Structure:
BNAGLA_NLP_LIBRARY/
├── BanglaWordKit/ # Core Package
│ ├── data/ # JSON Datasets (Dictionaries)
│ │ ├── bagdhara_dataset.json
│ │ ├── banglish_to_bangla_word_dataset.json
│ │ ├── foreign_word_to_bangla_word_dataset.json
│ │ ├── sadhu_to_cholito_dataset.json
│ │ └── slang_words_dataset.json
│ ├── __init__.py # Package Entry Point
│ ├── bagdhara_converter.py # Module 1
│ ├── bangla_slang_standardizer.py # Module 2
│ ├── english_banglish_to_bangla_word.py # Module 3
│ ├── foreign_word_to_bangla_word_converter.py # Module 4
│ └── sadhu_to_cholito_converter.py # Module 5
├── bangdhara_data_making/ # Data Scraping & Preprocessing Tools
├── bangla_slang_to_bangla_word_data_making/
├── ... # Other Data Making Modules
├── tests/ # Unit Testing Suite
│ ├── test_bagdhara_converter.py
│ ├── test_bangla_slang_standardizer.py
│ └── ...
├── setup.py # Package Configuration
└── README.md # Documentation
🛠 Installation
You can install the library directly from PyPI (once published):
pip install BanglaWordKit
💻 Quick Start
1. Slang Standardization
Clean up rude text while keeping the sentiment intact:
from BanglaWordKit import banglaSlangStandardizer
std = banglaSlangStandardizer()
text = "তুই একটা গাধা, একদম বাজে বকিস না।"
result = std.slang_standardize(text)
print(result)
Output: তুমি একটা বোকা, একদম অপ্রয়োজনীয় কথা বলছ না।
2. Engliah/Banglish to Bangla Conversion
Automatically fix English words used in Bangla sentences:
from BanglaWordKit import English_banglish_ToBangla
converter = English_banglish_ToBangla()
sample_text = "তোমার রেজাল্ট কেমন হয়েছে?"
print(f"মূল বাক্য: {sample_text}\n")
print(f"Level 1 (Casual): {converter.convert(sample_text, level=1)}")
print(f"Level 2 (Formal): {converter.convert(sample_text, level=2)}")
print(f"Level 3 (Archaic): {converter.convert(sample_text, level=3)}")
Output:
Level 1 (Casual): তোমার রেজাল্ট কেমন হয়েছে?
Level 2 (Formal): তোমার ফলাফল কেমন হয়েছে?
Level 3 (Archaic): তোমার ফলাফল কেমন হয়েছে?
3. Sadhu to Cholito Conversion
from BanglaWordKit import ShadhuToCholito
ShadhuToCholito_converter = ShadhuToCholito()
test_sentences = [
# ১. সর্বনাম ও সাধারণ ক্রিয়াপদ টেস্ট
"তাহারা অদ্য মাঠে খেলিতেছিল এবং আমি তাহা দেখিতেছিলাম।",
# ২. বিশেষ্য, অব্যয় এবং স্বরবর্ণান্ত ধাতু (করিয়া -> করে) টেস্ট
"বালিকাটি নিজ হস্তে গৃহ পরিষ্কার করিয়া বিশ্রাম নিতেছিল।",
# ৩. অব্যয় (অদ্যাবধি, সহিত) এবং সর্বনাম টেস্ট
"অদ্যাবধি আমি তাহাদের সহিত কোনো বিবাদে জড়াই নাই।",
# ৪. ডাবল ি-কার (দিলাম) এবং ভাওয়েল শিফট (খাইল -> খেল) টেস্ট
"আমি উহাকে একটি মৎস্য দিলাম এবং সে তাহা আনন্দে খাইল।",
# ৫. একাধিক ক্রিয়াপদ এবং বিশেষ্য (ব্যাঘ্র -> বাঘ) টেস্ট
"ব্যাঘ্র দেখিয়া সে ভয়ে কাঁপিতে কাঁপিতে দৌড়াইয়া পলাইল।"
]
for i, sentence in enumerate(test_sentences, 1):
cholito_sentence = ShadhuToCholito_converter.convert(sentence)
print(f"সাধু : {sentence}")
print(f"চলিত : {cholito_sentence}")
Output:
সাধু : তাহারা অদ্য মাঠে খেলিতেছিল এবং আমি তাহা দেখিতেছিলাম।
চলিত : তারা আজ মাঠে খেলছিল এবং আমি তা দেখছিলাম।
সাধু : বালিকাটি নিজ হস্তে গৃহ পরিষ্কার করিয়া বিশ্রাম নিতেছিল।
চলিত : মেয়েটি নিজ হাতে বাড়ি পরিষ্কার করে বিশ্রাম নিছিল।
সাধু : অদ্যাবধি আমি তাহাদের সহিত কোনো বিবাদে জড়াই নাই।
চলিত : আজ পর্যন্ত আমি তাদের সাথে কোনো বিবাদে জড়াই নাই।
সাধু : আমি উহাকে একটি মৎস্য দিলাম এবং সে তাহা আনন্দে খাইল।
চলিত : আমি ওকে একটি মাছ দিলাম এবং সে তা আনন্দে খাল।
সাধু : ব্যাঘ্র দেখিয়া সে ভয়ে কাঁপিতে কাঁপিতে দৌড়াইয়া পলাইল।
চলিত : বাঘ দেখে সে ভয়ে কাঁপতে কাঁপতে দৌড়াইয়া পলাইল।
4. Foreign (not english) word to Bangla standard word
from BanglaWordKit import ForeignToBangla
converter = ForeignToBangla()
test_text = "আমি জলদি সাবান মেখে প্রস্তুত হলাম, কারণ আদালতে আমার একটি জরুরি মকদ্দমা আছে।"
print("মূল বাক্য:", test_text)
print("Level 1 (Normal):", converter.convert(test_text, level=1))
print("Level 2 (Formal):", converter.convert(test_text, level=2))
print("Level 3 (Archaic):", converter.convert(test_text, level=3))
Output:
মূল বাক্য: আমি জলদি সাবান মেখে প্রস্তুত হলাম, কারণ আদালতে আমার একটি জরুরি মকদ্দমা আছে।
Level 1 (Normal): আমি দ্রুত সাবান মেখে প্রস্তুত হলাম, কারণ আদালতে আমার একটি আবশ্যক মকদ্দমা আছে।
Level 2 (Formal): আমি দ্রুত সাবান মেখে প্রস্তুত হলাম, কারণ বিচারালয়ে আমার একটি আবশ্যক মামলা আছে।
Level 3 (Archaic): আমি দ্রুত মলিনানাশক মেখে প্রস্তুত হলাম, কারণ বিচারালয়ে আমার একটি আবশ্যক মামলা আছে।
5. Conversion of Baghara (idioms) word to standard Bangla word:
from BanglaWordKit import BanglaBagdharaConverter
bagdhara_transformar = BanglaBagdharaConverter()
text = "এইটুকু ছেলের কথা শুনে আমার তো আক্কেল গুড়ুম।"
result = bagdhara_transformar.transform(text)
print("ফলাফল:", result)
Output:
ফলাফল: এইটুকু ছেলের কথা শুনে আমার তো স্তম্ভিত।
🧪 Running Tests
To ensure everything is working correctly, run the test suite:
python -m unittest discover tests
🤝 Contributing
Contributions are welcome! If you want to add new words to the dataset or improve the logic:
1. Fork the Project.
2. Create your Feature Branch (git checkout -b feature/NewModule).
3. Commit your changes (git commit -m 'Add some NewModule').
4. Push to the Branch (git push origin feature/NewModule).
5. Open a Pull Request.
📄 License
Distributed under the MIT License. See LICENSE for more information.
✉️ Contact
Your Name - GitHub :reja273
Author(Just creator)
~Rejaul Karim
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
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 banglawordkit-0.1.0.tar.gz.
File metadata
- Download URL: banglawordkit-0.1.0.tar.gz
- Upload date:
- Size: 6.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f51b43ced1e51069e4fa97e98ba55b842e20bf56ba2a9fa08ea3d893126028b5
|
|
| MD5 |
656b8d54b3498c16388b4426a34f3ae2
|
|
| BLAKE2b-256 |
9450080c2c85c0f9bd20232820f515ead4ced9ac2b959935650ec0b17a3618e3
|
File details
Details for the file banglawordkit-0.1.0-py3-none-any.whl.
File metadata
- Download URL: banglawordkit-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
797b616bdd94c1a4dee0d5fa7abd1ac15e72f18ab79a9d3a595eac17fab2fadc
|
|
| MD5 |
309023637e5f00f3ff275d9079a07676
|
|
| BLAKE2b-256 |
3fd6f23ae68f1e07a4ada7120d4e6f148b325bc02a7aeeb539004ed8b9ba53d6
|