Davat(دوات)

Davat(دوات)

When starting some NLP projects in Farsi, I noticed that the Persian NLP ecosystem lacked many basic text processing tools that are common in other languages. Unable to find a suitable text normalization library for my needs, I created Davat by developing regex patterns in Python to properly clean and normalize Persian text.

Here is an example of the output of Davat:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
>>> import davat

>>> sample_text = "بِسْمِ اللَّهِ الرَّحْمنِ الرَّحِيمِ"

>>> davat.normalize(sample_text)
'بسم الله الرحمن الرحیم'

>>> sample_text = """این یك متن تست است که حروف عربي ، کشیـــــده 
'اعداد 12345' و... دارد     که می خواهیم آن را نرمالایز کنیم ."""

>>> print(davat.normalize(sample_text))
این یک متن تست است که حروف عربی، کشیده
«اعداد ۱۲۳۴۵» و   دارد  که میخواهیم آن را نرمالایز کنیم.

>>> sample_text = """
... متنی برای برسی تابع تمیز کردن متن
... که #هشتگ_ها را خیلی عاااااللللییییی!!!! تبدیل به متن عادی می‌کند!
... منشنها @mh_salari و لینکها www.mh-salari.ir را حذف میکند.
... حروف غیر فارسی  a b c d و اموجیها :( 🐈‍ را حذف میکند
... علائم دستوری/نگارشی ?!٫ را حذف نمیکند
... و ...
... http://localhost:8888
... """

>>> text = davat.clean(sample_text)
>>> print(text)
متنی برای برسی تابع تمیز کردن متن 
 که هشتگها را خیلی عااللیی! تبدیل به متن عادی میکند! 
 منشنها و لینکها را حذف میکند. 
 حروف غیر فارسی و اموجیها را حذف میکند 
 علائم دستوری/نگارشی؟!، را حذف نمیکند 
 و 

I created a PyPI page for it, which you can find at this link: https://pypi.org/project/davat/

GitHub link: https://github.com/mh-salari/davat