Negar is an editor(=virastar in Persian) for Persian text. The project is initially inspired by virastar. Thank you Aziz for your great job.
python-negar is available on PyPi:
$ pip install python-negar
You can get latest stable changes from github server:
$ git clone https://github.com/shahinism/python-negar.git
$ cd python-negar
$ python setup.py install
You can download the latest tarball.
Get the latest tarball & install:
$ wget -O python-negar-master.tar.gz https://github.com/shahinism/python-negar/archive/master.tar.gz
$ tar xvzf python-negar-master.tar.gz && cd python-negar-master
$ python setup.py install
Download latest zip archive.
https://github.com/shahinism/python-negar/archive/master.zip
Decompress it, and run the following command in root directory of python-negar
$ python setup.py install
$ pip install regex
Calling by default options:
from negar.virastar import PersianEditor
test = r"""قابلیت های ویراستار ' نگار ':
* جایگزینی
+ خط تیره های پیاپی نظیر (--) و (---) با معادل های استاندارد شان
+ سه نقطه ی پیاپی (...) با کاراکتر استانداردش در زبان فارسی
+ علایمی نظیر کتیشن فارسی با گیومه ؛ 'نگار'
+ اعداد عربی '١٢٣٤٥٦٧٨٩٠' و انگلیسی '1234567890' با معادل فارسی
+ کاراکتر های غیر فارسی نظیر ',;%يةك' با معادل های فارسی
* تنظیم فاصله
+ کلماتی که با 'ی' پسوند همراه هستند مانند 'همه ی ' -- و البته امکان جایگزینی آن با حمزه 'ء' ( در صورت انتخاب کاربر )
+ پرانتز ها یا دیگر علایم ؛ ( نگار )
+ علائم نقطهگذاری ؛ بدون فاصله از قبل و با یک فاصله از بعد به استثنای اعداد اعشاری مانند 12.4
+ در پیشوند کلمات با نیمفاصله نظیر ' می شود '، ' میشود '، ' بی شک '، ' بیشک ' , ' خانه اش '، ' وظیفه شناس ' ، ' کمک تان ' و یا ' نمیرود '
+ در پسوند کلمات با نیمفاصله نظیر کتابها، خوشترین -- و البته امکان عدم تنظیم (در صورت انتخاب کاربر)
* جلوگیری از
+ استفاده ی بیش از یک علامت ؟؟؟؟ یا !!!
+ کشیـــــــــدگـــــــــــــــــی در کــــــــــــلمــــات
+ فضا های خالی بیش از حد"""
print(PersianEditor(text))
result:
قابلیتهای ویراستار «نگار»:
* جایگزینی
+ خط تیرههای پیاپی نظیر (–) و (—) با معادلهای استانداردشان
+ سه نقطهی پیاپی (…) با کاراکتر استانداردش در زبان فارسی
+ علایمی نظیر کتیشن فارسی با گیومه؛ «نگار»
+ اعداد عربی «۱۲۳۴۵۶۷۸۹۰» و انگلیسی «۱۲۳۴۵۶۷۸۹۰» با معادل فارسی
+ کاراکترهای غیر فارسی نظیر «، ؛ ٪یهک» با معادلهای فارسی
* تنظیم فاصله
+ کلماتی که با «ی» پسوند همراه هستند مانند «همهی» – و البته امکان جایگزینی آن با حمزه «ء» (در صورت انتخاب کاربر)
+ پرانتزها یا دیگر علایم؛ (نگار)
+ علائم نقطهگذاری؛ بدون فاصله از قبل و با یک فاصله از بعد به استثنای اعداد اعشاری مانند ۱۲.۴
+ در پیشوند کلمات با نیمفاصله نظیر «میشود»، «میشود»، «بیشک»، «بیشک»، «خانهاش»، «وظیفهشناس»، «کمکتان» و یا «نمیرود»
+ در پسوند کلمات با نیمفاصله نظیر کتابها، خوشترین – و البته امکان عدم تنظیم (در صورت انتخاب کاربر)
* جلوگیری از
+ استفادهی بیش از یک علامت؟ یا!
+ کشیدگی در کلمات
+ فضاهای خالی بیش از حد
Enabling extra features/args:
##
args = []
args.append('fix-english-quotes')
args.append('cleanup-spacing')
print(PersianEditor(text, *args))
Full list of args with description:
--fix-dashes Disable fix dashes feature
--fix-three-dots Disable fix three dots feature
--fix-english-quotes Disable fix english quotes feature
--fix-hamzeh Disable fix hamzeh feature
--hamzeh-with-yeh Use 'Hamzeh' instead of 'yeh' for fix hamzeh feature
--fix-spacing-bq Disable fix spacing braces and qoutes feature
--fix-arabic-num Disable fix arabic num feature
--fix-english-num Disable fix english num feature
--fix-non-persian-chars Disable fix misc non persian chars feature
--fix-p-spacing Disable fix prefix spacing feature
--fix-p-separate Disable fix prefix separating feature
--fix-s-spacing Disable fix suffix spacing feature
--fix-s-separate Disable fix suffix separating feature
--aggresive Disable aggresive feature
--cleanup-kashidas Disable cleanup kashidas feature
--cleanup-ex-marks Disable cleanup extra marks feature
--cleanup-spacing Disable cleanup spacing feature
--trim-lt-whitespaces Disable Trim leading trailing whitespaces
--exaggerating_zwnj Disable suffix separation as much as possible
There are two companions with this repository to support GUI and CLI, named negar-gui
and negar-cli
, respectively.
Both of them are available on PyPI.