Skip to main content

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:

  1. Text Normalization
  2. Number Conversion
  3. Date Format
  4. Emoji Removal
  5. Months, Weekdays, Seasons

[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

  1. Bangla lemmatization and stemming algorithm
  2. 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


Download files

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

Source Distribution

pybangla-2.0.3.tar.gz (39.7 kB view details)

Uploaded Source

Built Distribution

pybangla-2.0.3-py3-none-any.whl (40.3 kB view details)

Uploaded Python 3

File details

Details for the file pybangla-2.0.3.tar.gz.

File metadata

  • Download URL: pybangla-2.0.3.tar.gz
  • Upload date:
  • Size: 39.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for pybangla-2.0.3.tar.gz
Algorithm Hash digest
SHA256 dbf0281ee7910d3a2c02e10d0d34a37bb783d9fa86b1980e8ee18e23b5b824c6
MD5 b4a050abc7b592ee5d44f5992e07459a
BLAKE2b-256 f4b0a10a02eb66d4e5c2c169e4173f58c61f144ff2a68d73510b30c03b1988b2

See more details on using hashes here.

File details

Details for the file pybangla-2.0.3-py3-none-any.whl.

File metadata

  • Download URL: pybangla-2.0.3-py3-none-any.whl
  • Upload date:
  • Size: 40.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for pybangla-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e42b8ff16289183cbb8e67d5ac63c487e2fb50e412d1b9aac1a08dde9dd67659
MD5 44a62f696a4f8e691f2d2fdad27ce32d
BLAKE2b-256 463b09f63f83520617e59daf796431331e5b000801e80ac8e039d6dc23ce6920

See more details on using hashes here.

Supported by

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