pybangla is the bangla text normalizer tool, it use for text normalization like word to number and date formating purposes
Project description
PYBANGLA is a python3 package for Bangla Number, DateTime and Text Normalizer and Date Extraction. This package can be used to Normalize the text number and date (ex: number to text vice versa). This framework also can be used Django, Flask, FastAPI, and others. PYBANGLA module supported operating systems Linux/Unix, Mac OS and Windows. Available Features
Features available in PYBANGLA:
[N.B: Here listed Every Feature has implemented Text Normalization as well as Isolated Uses feature]
Installation
The easiest way to install pybangla is to use pip:
pip install pybangla
Usage
1. Text Normalization
It supports converting Bangla abbreviations, symbols, and currencies to Bangla textual format.
Example:
import pybangla
nrml = pybangla.Normalizer()
text = "রাহিম ক্লাস ওয়ান এ ১ম, এন্ড বাসার ক্লাস এ ৩৩ তম, সে জন্য ২০৩০ শতাব্দীতে ¥২০৩০.১২৩৪ দিতে হয়েছে"
text = nrml.text_normalizer(text)
print(text)
# output:
'রাহিম ক্লাস ওয়ান এ প্রথম, এন্ড বাসার ক্লাস এ তেত্রিশতম, সে জন্য দুই হাজার ত্রিশ শতাব্দীতে দুই হাজার ত্রিশ দশমিক এক দুই তিন চার ইয়েন দিতে হয়েছে'
Normalizer more information or example check the link
2. Number Conversion
Example:
import pybangla
nrml = pybangla.Normalizer()
text = "আমাকে এক লক্ষ দুই হাজার এক টাকা দেয় এন্ড তুমি বিশ হাজার টাকা নিও এন্ড এক লক্ষ চার হাজার দুইশ এক টাকা এক ডবল দুই"
text = nrml.word2number(text)
print(text)
#output:
'আমাকে 102001 টাকা দেয় এন্ড তুমি 20000 টাকা নিও এন্ড 104201 টাকা 122 '
Number conversion more information or examples check the link
3. Date Format
Example:
import pybangla
nrml = pybangla.Normalizer()
date = "০১-এপ্রিল/২০২৩"
date = nrml.date_format(date, language="bn")
print(date)
#output:
{'date': '০১', 'month': '৪', 'year': '২০২৩', 'txt_date': 'এক', 'txt_month': 'এপ্রিল', 'txt_year': 'দুই হাজার তেইশ', 'weekday': 'শনিবার', 'ls_month': 'শ্রাবণ', 'seasons': 'বর্ষা'}
Date Format for more information or example check the link
4. Emoji Removal
text = 'দয়া করে পবিত্র কুরআনুল কারিম বলেন,,,,পবিত্র কথাটা অবশ্যই বলবেন,,, প্লিজ 😢😥🙏🙏🙏'
text = nrml.remove_emoji(text)
print(f"{text}")
#output:
দয়া করে পবিত্র কুরআনুল কারিম বলেন,,,,পবিত্র কথাটা অবশ্যই বলবেন,,, প্লিজ
For Emoji Removal more information or example check the link
5. Today, Months, Weekdays, Seasons
import pybangla
nrml = pybangla.Normalizer()
today = nrml.today()
print(today)
# Output:
{'date': '৩০', 'month': 'এপ্রিল', 'year': '২০২৪', 'txt_date': 'ত্রিশ', 'txt_year': 'দুই হাজার চব্বিশ', 'weekday': 'মঙ্গলবার', 'ls_month': 'শ্রাবণ', 'seasons': 'বর্ষা'}
Today, Months, Weekdays, Seasons more information or examples check the link
New Feature
(UPDATE TEXT NORMALIZATION) It supports year conversion like
- "১৯৮৭-র" to "উনিশশো সাতাশি এর"
- "১৯৯৫ সালে" to "উনিশশো পঁচানব্বই সালে"
- "২০২৬-২৭" to "দুই হাজার ছাব্বিশ সাতাশ"
Now it also has the abbreviation for units of temperature
- "৪৪°F" to "চুয়াল্লিশ ডিগ্রী ফারেনহাইট"
- "৪৪°C" to "চুয়াল্লিশ ডিগ্রী সেলসিয়াস"
Phone Number Processing
- "01790-540211" to "জিরো ওয়ান সেভেন নাইন জিরো ফাইভ ফোর জিরো টু ডাবল ওয়ান"
import pybangla
nrml = pybangla.Normalizer()
number_string = nrml.process_phone_number("01790-540211")
Output:
জিরো ওয়ান সেভেন নাইন জিরো ফাইভ ফোর জিরো টু ডাবল ওয়ান
Compare Two String Changes
import pybangla
nrml = pybangla.Normalizer()
input1 = "১৯৯৬সালের ৬ সেপ্টেম্বররণ ভ্রমণ পরিকল্পনা করছি ২০৩০সালের ৬সেপ্টেম্বর"
input2 = "উনিশশো ছিয়ানব্বই সালের ছয় সেপ্টেম্বর রণ ভ্রমণ পরিকল্পনা করছি দুই হাজার ত্রিশ সালের ছয় সেপ্টেম্বর"
print(nrml.text_diff(input1, input2))
#Output:
(
['১৯৯৬সালের ৬', 'সেপ্টেম্বররণ', '২০৩০সালের', '৬সেপ্টেম্বর'],
['উনিশশো ছিয়ানব্বই সালের ছয়', 'সেপ্টেম্বর রণ', 'দুই হাজার ত্রিশ সালের ছয়', 'সেপ্টেম্বর']
)
Next Upcoming Features
- Bangla lemmatization and stemming algorithm
- Bangla Tokenizer
Contact
If you have any suggestions: Email: saifulbrur79@gmail.com
Contributor
@misc{pybangla,
title={PYBANGLA module used for normalize textual format like text to number and number to text},
author={Md Saiful Islam, Hassan Ali Emon, HM-badhon, Sagor Sarker, ud0y},
howpublished={},
year={2024}
}
If you face any problems feel free to open an issue.
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
Built Distribution
File details
Details for the file pybangla-2.0.8.tar.gz
.
File metadata
- Download URL: pybangla-2.0.8.tar.gz
- Upload date:
- Size: 42.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29a1e2169ad88e4ba12fc36a7d14ce2a9c9fb3091f6cf3dcb869786c4498e0aa |
|
MD5 | 3aa1de2b7a38573d458aded102d54c3f |
|
BLAKE2b-256 | 763eeb0a01938c7f396c4afb50328394c78e847cfcc790c3cf679d05ba659047 |
File details
Details for the file pybangla-2.0.8-py3-none-any.whl
.
File metadata
- Download URL: pybangla-2.0.8-py3-none-any.whl
- Upload date:
- Size: 43.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1285095c96cb9e2cac0090c63ec07a6e412294f19787e95e12f62407a809338 |
|
MD5 | 2b940019ab6dd5235d757561e9532bb4 |
|
BLAKE2b-256 | 8d23b7fdbcb56b2368a9afce9872479f8a28a4830ab1eb00b4e2e7488ab551c7 |