shahinism / python-negar

Negar trying to be a spell corrector for persian language.
http://shahinism.github.com/python-negar/
GNU General Public License v3.0
38 stars 9 forks source link

Negar

PyPI repo size GitHub forks GitHub issues GitHub license Downloads Downloads

Negar is an editor(=virastar in Persian) for Persian text. The project is initially inspired by virastar. Thank you Aziz for your great job.

Installation

PyPi

python-negar is available on PyPi:

$ pip install python-negar

Git

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

Zip, Tarball

You can download the latest tarball.

*nix

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

Windows

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

Requirements

$ pip install regex

Usage

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

GUI & CLI

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.

Contributors