mirror of
https://github.com/explosion/spaCy.git
synced 2024-12-27 10:26:35 +03:00
eddeb36c96
<!--- Provide a general summary of your changes in the title. --> ## Description - [x] Use [`black`](https://github.com/ambv/black) to auto-format all `.py` files. - [x] Update flake8 config to exclude very large files (lemmatization tables etc.) - [x] Update code to be compatible with flake8 rules - [x] Fix various small bugs, inconsistencies and messy stuff in the language data - [x] Update docs to explain new code style (`black`, `flake8`, when to use `# fmt: off` and `# fmt: on` and what `# noqa` means) Once #2932 is merged, which auto-formats and tidies up the CLI, we'll be able to run `flake8 spacy` actually get meaningful results. At the moment, the code style and linting isn't applied automatically, but I'm hoping that the new [GitHub Actions](https://github.com/features/actions) will let us auto-format pull requests and post comments with relevant linting information. ### Types of change enhancement, code style ## Checklist <!--- Before you submit the PR, go over this checklist and make sure you can tick off all the boxes. [] -> [x] --> - [x] I have submitted the spaCy Contributor Agreement. - [x] I ran the tests, and all new and existing tests passed. - [x] My changes don't require a change to the documentation, or if they do, I've added all required information.
654 lines
14 KiB
Python
654 lines
14 KiB
Python
# coding: utf8
|
||
from __future__ import unicode_literals
|
||
|
||
|
||
verb_roots = """
|
||
#هست
|
||
آخت#آهنج
|
||
آراست#آرا
|
||
آراماند#آرامان
|
||
آرامید#آرام
|
||
آرمید#آرام
|
||
آزرد#آزار
|
||
آزمود#آزما
|
||
آسود#آسا
|
||
آشامید#آشام
|
||
آشفت#آشوب
|
||
آشوبید#آشوب
|
||
آغازید#آغاز
|
||
آغشت#آمیز
|
||
آفرید#آفرین
|
||
آلود#آلا
|
||
آمد#آ
|
||
آمرزید#آمرز
|
||
آموخت#آموز
|
||
آموزاند#آموزان
|
||
آمیخت#آمیز
|
||
آورد#آر
|
||
آورد#آور
|
||
آویخت#آویز
|
||
آکند#آکن
|
||
آگاهانید#آگاهان
|
||
ارزید#ارز
|
||
افتاد#افت
|
||
افراخت#افراز
|
||
افراشت#افراز
|
||
افروخت#افروز
|
||
افروزید#افروز
|
||
افزود#افزا
|
||
افسرد#افسر
|
||
افشاند#افشان
|
||
افکند#افکن
|
||
افگند#افگن
|
||
انباشت#انبار
|
||
انجامید#انجام
|
||
انداخت#انداز
|
||
اندوخت#اندوز
|
||
اندود#اندا
|
||
اندیشید#اندیش
|
||
انگاشت#انگار
|
||
انگیخت#انگیز
|
||
انگیزاند#انگیزان
|
||
ایستاد#ایست
|
||
ایستاند#ایستان
|
||
باخت#باز
|
||
باراند#باران
|
||
بارگذاشت#بارگذار
|
||
بارید#بار
|
||
باز#بازخواه
|
||
بازآفرید#بازآفرین
|
||
بازآمد#بازآ
|
||
بازآموخت#بازآموز
|
||
بازآورد#بازآور
|
||
بازایستاد#بازایست
|
||
بازتابید#بازتاب
|
||
بازجست#بازجو
|
||
بازخواند#بازخوان
|
||
بازخوراند#بازخوران
|
||
بازداد#بازده
|
||
بازداشت#بازدار
|
||
بازرساند#بازرسان
|
||
بازرسانید#بازرسان
|
||
باززد#باززن
|
||
بازستاند#بازستان
|
||
بازشمارد#بازشمار
|
||
بازشمرد#بازشمار
|
||
بازشمرد#بازشمر
|
||
بازشناخت#بازشناس
|
||
بازشناساند#بازشناسان
|
||
بازفرستاد#بازفرست
|
||
بازماند#بازمان
|
||
بازنشست#بازنشین
|
||
بازنمایاند#بازنمایان
|
||
بازنهاد#بازنه
|
||
بازنگریست#بازنگر
|
||
بازپرسید#بازپرس
|
||
بازگذارد#بازگذار
|
||
بازگذاشت#بازگذار
|
||
بازگرداند#بازگردان
|
||
بازگردانید#بازگردان
|
||
بازگردید#بازگرد
|
||
بازگرفت#بازگیر
|
||
بازگشت#بازگرد
|
||
بازگشود#بازگشا
|
||
بازگفت#بازگو
|
||
بازیافت#بازیاب
|
||
بافت#باف
|
||
بالید#بال
|
||
باوراند#باوران
|
||
بایست#باید
|
||
بخشود#بخش
|
||
بخشود#بخشا
|
||
بخشید#بخش
|
||
بر#برخواه
|
||
برآشفت#برآشوب
|
||
برآمد#برآ
|
||
برآورد#برآور
|
||
برازید#براز
|
||
برافتاد#برافت
|
||
برافراخت#برافراز
|
||
برافراشت#برافراز
|
||
برافروخت#برافروز
|
||
برافشاند#برافشان
|
||
برافکند#برافکن
|
||
براند#بران
|
||
برانداخت#برانداز
|
||
برانگیخت#برانگیز
|
||
بربست#بربند
|
||
برتاباند#برتابان
|
||
برتابید#برتاب
|
||
برتافت#برتاب
|
||
برتنید#برتن
|
||
برجهید#برجه
|
||
برخاست#برخیز
|
||
برخورد#برخور
|
||
برد#بر
|
||
برداشت#بردار
|
||
بردمید#بردم
|
||
برزد#برزن
|
||
برشد#برشو
|
||
برشمارد#برشمار
|
||
برشمرد#برشمار
|
||
برشمرد#برشمر
|
||
برنشاند#برنشان
|
||
برنشانید#برنشان
|
||
برنشست#برنشین
|
||
برنهاد#برنه
|
||
برچید#برچین
|
||
برکرد#برکن
|
||
برکشید#برکش
|
||
برکند#برکن
|
||
برگذشت#برگذر
|
||
برگرداند#برگردان
|
||
برگردانید#برگردان
|
||
برگردید#برگرد
|
||
برگرفت#برگیر
|
||
برگزید#برگزین
|
||
برگشت#برگرد
|
||
برگشود#برگشا
|
||
برگمارد#برگمار
|
||
برگمارید#برگمار
|
||
برگماشت#برگمار
|
||
برید#بر
|
||
بست#بند
|
||
بلعید#بلع
|
||
بود#باش
|
||
بوسید#بوس
|
||
بویید#بو
|
||
بیخت#بیز
|
||
بیخت#بوز
|
||
تاباند#تابان
|
||
تابید#تاب
|
||
تاخت#تاز
|
||
تاراند#تاران
|
||
تازاند#تازان
|
||
تازید#تاز
|
||
تافت#تاب
|
||
ترادیسید#ترادیس
|
||
تراشاند#تراشان
|
||
تراشید#تراش
|
||
تراوید#تراو
|
||
ترساند#ترسان
|
||
ترسید#ترس
|
||
ترشاند#ترشان
|
||
ترشید#ترش
|
||
ترکاند#ترکان
|
||
ترکید#ترک
|
||
تفتید#تفت
|
||
تمرگید#تمرگ
|
||
تنید#تن
|
||
توانست#توان
|
||
توفید#توف
|
||
تپاند#تپان
|
||
تپید#تپ
|
||
تکاند#تکان
|
||
تکانید#تکان
|
||
جست#جه
|
||
جست#جو
|
||
جنباند#جنبان
|
||
جنبید#جنب
|
||
جنگید#جنگ
|
||
جهاند#جهان
|
||
جهید#جه
|
||
جوشاند#جوشان
|
||
جوشانید#جوشان
|
||
جوشید#جوش
|
||
جويد#جو
|
||
جوید#جو
|
||
خاراند#خاران
|
||
خارید#خار
|
||
خاست#خیز
|
||
خایید#خا
|
||
خراشاند#خراشان
|
||
خراشید#خراش
|
||
خرامید#خرام
|
||
خروشید#خروش
|
||
خرید#خر
|
||
خزید#خز
|
||
خسبید#خسب
|
||
خشکاند#خشکان
|
||
خشکید#خشک
|
||
خفت#خواب
|
||
خلید#خل
|
||
خماند#خمان
|
||
خمید#خم
|
||
خنداند#خندان
|
||
خندانید#خندان
|
||
خندید#خند
|
||
خواباند#خوابان
|
||
خوابانید#خوابان
|
||
خوابید#خواب
|
||
خواست#خواه
|
||
خواست#خیز
|
||
خواند#خوان
|
||
خوراند#خوران
|
||
خورد#خور
|
||
خیزاند#خیزان
|
||
خیساند#خیسان
|
||
داد#ده
|
||
داشت#دار
|
||
دانست#دان
|
||
در#درخواه
|
||
درآمد#درآ
|
||
درآمیخت#درآمیز
|
||
درآورد#درآور
|
||
درآویخت#درآویز
|
||
درافتاد#درافت
|
||
درافکند#درافکن
|
||
درانداخت#درانداز
|
||
درانید#دران
|
||
دربرد#دربر
|
||
دربرگرفت#دربرگیر
|
||
درخشاند#درخشان
|
||
درخشانید#درخشان
|
||
درخشید#درخش
|
||
درداد#درده
|
||
دررفت#دررو
|
||
درماند#درمان
|
||
درنمود#درنما
|
||
درنوردید#درنورد
|
||
درود#درو
|
||
دروید#درو
|
||
درکرد#درکن
|
||
درکشید#درکش
|
||
درگذشت#درگذر
|
||
درگرفت#درگیر
|
||
دریافت#دریاب
|
||
درید#در
|
||
دزدید#دزد
|
||
دمید#دم
|
||
دواند#دوان
|
||
دوخت#دوز
|
||
دوشید#دوش
|
||
دوید#دو
|
||
دید#بین
|
||
راند#ران
|
||
ربود#ربا
|
||
ربود#روب
|
||
رخشید#رخش
|
||
رساند#رسان
|
||
رسانید#رسان
|
||
رست#ره
|
||
رست#رو
|
||
رسید#رس
|
||
رشت#ریس
|
||
رفت#رو
|
||
رفت#روب
|
||
رقصاند#رقصان
|
||
رقصید#رقص
|
||
رماند#رمان
|
||
رمانید#رمان
|
||
رمید#رم
|
||
رنجاند#رنجان
|
||
رنجانید#رنجان
|
||
رنجید#رنج
|
||
رندید#رند
|
||
رهاند#رهان
|
||
رهانید#رهان
|
||
رهید#ره
|
||
روبید#روب
|
||
روفت#روب
|
||
رویاند#رویان
|
||
رویانید#رویان
|
||
رویید#رو
|
||
رویید#روی
|
||
ریخت#ریز
|
||
رید#رین
|
||
ریدن#رین
|
||
ریسید#ریس
|
||
زاد#زا
|
||
زارید#زار
|
||
زایاند#زایان
|
||
زایید#زا
|
||
زد#زن
|
||
زدود#زدا
|
||
زیست#زی
|
||
ساباند#سابان
|
||
سابید#ساب
|
||
ساخت#ساز
|
||
سایید#سا
|
||
ستاد#ستان
|
||
ستاند#ستان
|
||
سترد#ستر
|
||
ستود#ستا
|
||
ستیزید#ستیز
|
||
سراند#سران
|
||
سرایید#سرا
|
||
سرشت#سرش
|
||
سرود#سرا
|
||
سرکشید#سرکش
|
||
سرگرفت#سرگیر
|
||
سرید#سر
|
||
سزید#سز
|
||
سفت#سنب
|
||
سنجید#سنج
|
||
سوخت#سوز
|
||
سود#سا
|
||
سوزاند#سوزان
|
||
سپارد#سپار
|
||
سپرد#سپار
|
||
سپرد#سپر
|
||
سپوخت#سپوز
|
||
سگالید#سگال
|
||
شاشید#شاش
|
||
شایست#
|
||
شایست#شاید
|
||
شتاباند#شتابان
|
||
شتابید#شتاب
|
||
شتافت#شتاب
|
||
شد#شو
|
||
شست#شو
|
||
شست#شوی
|
||
شلید#شل
|
||
شمار#شمر
|
||
شمارد#شمار
|
||
شمرد#شمار
|
||
شمرد#شمر
|
||
شناخت#شناس
|
||
شناساند#شناسان
|
||
شنفت#شنو
|
||
شنید#شنو
|
||
شوتید#شوت
|
||
شوراند#شوران
|
||
شورید#شور
|
||
شکافت#شکاف
|
||
شکاند#شکان
|
||
شکاند#شکن
|
||
شکست#شکن
|
||
شکفت#شکف
|
||
طلبید#طلب
|
||
طپید#طپ
|
||
غراند#غران
|
||
غرید#غر
|
||
غلتاند#غلتان
|
||
غلتانید#غلتان
|
||
غلتید#غلت
|
||
غلطاند#غلطان
|
||
غلطانید#غلطان
|
||
غلطید#غلط
|
||
فرا#فراخواه
|
||
فراخواند#فراخوان
|
||
فراداشت#فرادار
|
||
فرارسید#فرارس
|
||
فرانمود#فرانما
|
||
فراگرفت#فراگیر
|
||
فرستاد#فرست
|
||
فرسود#فرسا
|
||
فرمود#فرما
|
||
فرهیخت#فرهیز
|
||
فرو#فروخواه
|
||
فروآمد#فروآ
|
||
فروآورد#فروآور
|
||
فروافتاد#فروافت
|
||
فروافکند#فروافکن
|
||
فروبرد#فروبر
|
||
فروبست#فروبند
|
||
فروخت#فروش
|
||
فروخفت#فروخواب
|
||
فروخورد#فروخور
|
||
فروداد#فروده
|
||
فرودوخت#فرودوز
|
||
فرورفت#فرورو
|
||
فروریخت#فروریز
|
||
فروشکست#فروشکن
|
||
فروفرستاد#فروفرست
|
||
فروماند#فرومان
|
||
فرونشاند#فرونشان
|
||
فرونشانید#فرونشان
|
||
فرونشست#فرونشین
|
||
فرونمود#فرونما
|
||
فرونهاد#فرونه
|
||
فروپاشاند#فروپاشان
|
||
فروپاشید#فروپاش
|
||
فروچکید#فروچک
|
||
فروکرد#فروکن
|
||
فروکشید#فروکش
|
||
فروکوبید#فروکوب
|
||
فروکوفت#فروکوب
|
||
فروگذارد#فروگذار
|
||
فروگذاشت#فروگذار
|
||
فروگرفت#فروگیر
|
||
فریفت#فریب
|
||
فشاند#فشان
|
||
فشرد#فشار
|
||
فشرد#فشر
|
||
فلسفید#فلسف
|
||
فهماند#فهمان
|
||
فهمید#فهم
|
||
قاپید#قاپ
|
||
قبولاند#قبول
|
||
قبولاند#قبولان
|
||
لاسید#لاس
|
||
لرزاند#لرزان
|
||
لرزید#لرز
|
||
لغزاند#لغزان
|
||
لغزید#لغز
|
||
لمباند#لمبان
|
||
لمید#لم
|
||
لنگید#لنگ
|
||
لولید#لول
|
||
لیسید#لیس
|
||
ماسید#ماس
|
||
مالاند#مالان
|
||
مالید#مال
|
||
ماند#مان
|
||
مانست#مان
|
||
مرد#میر
|
||
مویید#مو
|
||
مکید#مک
|
||
نازید#ناز
|
||
نالاند#نالان
|
||
نالید#نال
|
||
نامید#نام
|
||
نشاند#نشان
|
||
نشست#نشین
|
||
نمایاند#نما
|
||
نمایاند#نمایان
|
||
نمود#نما
|
||
نهاد#نه
|
||
نهفت#نهنب
|
||
نواخت#نواز
|
||
نوازید#نواز
|
||
نوردید#نورد
|
||
نوشاند#نوشان
|
||
نوشانید#نوشان
|
||
نوشت#نویس
|
||
نوشید#نوش
|
||
نکوهید#نکوه
|
||
نگاشت#نگار
|
||
نگرید#
|
||
نگریست#نگر
|
||
هراساند#هراسان
|
||
هراسانید#هراسان
|
||
هراسید#هراس
|
||
هشت#هل
|
||
وا#واخواه
|
||
واداشت#وادار
|
||
وارفت#وارو
|
||
وارهاند#وارهان
|
||
واماند#وامان
|
||
وانهاد#وانه
|
||
واکرد#واکن
|
||
واگذارد#واگذار
|
||
واگذاشت#واگذار
|
||
ور#ورخواه
|
||
ورآمد#ورآ
|
||
ورافتاد#ورافت
|
||
وررفت#وررو
|
||
ورزید#ورز
|
||
وزاند#وزان
|
||
وزید#وز
|
||
ویراست#ویرا
|
||
پاشاند#پاشان
|
||
پاشید#پاش
|
||
پالود#پالا
|
||
پایید#پا
|
||
پخت#پز
|
||
پذیراند#پذیران
|
||
پذیرفت#پذیر
|
||
پراند#پران
|
||
پراکند#پراکن
|
||
پرداخت#پرداز
|
||
پرستید#پرست
|
||
پرسید#پرس
|
||
پرهیخت#پرهیز
|
||
پرهیزید#پرهیز
|
||
پروراند#پروران
|
||
پرورد#پرور
|
||
پرید#پر
|
||
پسندید#پسند
|
||
پلاساند#پلاسان
|
||
پلاسید#پلاس
|
||
پلکید#پلک
|
||
پناهاند#پناهان
|
||
پناهید#پناه
|
||
پنداشت#پندار
|
||
پوساند#پوسان
|
||
پوسید#پوس
|
||
پوشاند#پوشان
|
||
پوشید#پوش
|
||
پویید#پو
|
||
پژمرد#پژمر
|
||
پژوهید#پژوه
|
||
پکید#پک
|
||
پیراست#پیرا
|
||
پیمود#پیما
|
||
پیوست#پیوند
|
||
پیچاند#پیچان
|
||
پیچانید#پیچان
|
||
پیچید#پیچ
|
||
چاپید#چاپ
|
||
چایید#چا
|
||
چراند#چران
|
||
چرانید#چران
|
||
چرباند#چربان
|
||
چربید#چرب
|
||
چرخاند#چرخان
|
||
چرخانید#چرخان
|
||
چرخید#چرخ
|
||
چروکید#چروک
|
||
چرید#چر
|
||
چزاند#چزان
|
||
چسباند#چسبان
|
||
چسبید#چسب
|
||
چسید#چس
|
||
چشاند#چشان
|
||
چشید#چش
|
||
چلاند#چلان
|
||
چلانید#چلان
|
||
چپاند#چپان
|
||
چپید#چپ
|
||
چکاند#چکان
|
||
چکید#چک
|
||
چید#چین
|
||
کاست#کاه
|
||
کاشت#کار
|
||
کاوید#کاو
|
||
کرد#کن
|
||
کشاند#کشان
|
||
کشانید#کشان
|
||
کشت#کار
|
||
کشت#کش
|
||
کشید#کش
|
||
کند#کن
|
||
کوباند#کوبان
|
||
کوبید#کوب
|
||
کوشید#کوش
|
||
کوفت#کوب
|
||
کوچانید#کوچان
|
||
کوچید#کوچ
|
||
گایید#گا
|
||
گداخت#گداز
|
||
گذارد#گذار
|
||
گذاشت#گذار
|
||
گذراند#گذران
|
||
گذشت#گذر
|
||
گرازید#گراز
|
||
گرانید#گران
|
||
گرایید#گرا
|
||
گرداند#گردان
|
||
گردانید#گردان
|
||
گردید#گرد
|
||
گرفت#گیر
|
||
گروید#گرو
|
||
گریاند#گریان
|
||
گریخت#گریز
|
||
گریزاند#گریزان
|
||
گریست#گر
|
||
گریست#گری
|
||
گزارد#گزار
|
||
گزاشت#گزار
|
||
گزید#گزین
|
||
گسارد#گسار
|
||
گستراند#گستران
|
||
گسترانید#گستران
|
||
گسترد#گستر
|
||
گسست#گسل
|
||
گسلاند#گسل
|
||
گسیخت#گسل
|
||
گشاد#گشا
|
||
گشت#گرد
|
||
گشود#گشا
|
||
گفت#گو
|
||
گمارد#گمار
|
||
گماشت#گمار
|
||
گنجاند#گنجان
|
||
گنجانید#گنجان
|
||
گنجید#گنج
|
||
گنداند#گندان
|
||
گندید#گند
|
||
گوارید#گوار
|
||
گوزید#گوز
|
||
گیراند#گیران
|
||
یازید#یاز
|
||
یافت#یاب
|
||
یونید#یون
|
||
""".strip().split()
|
||
|
||
|
||
# Below code is a modified version of HAZM package's verb conjugator,
|
||
# with soem extra verbs (Anything in hazm and not in here? compare needed!)
|
||
VERBS_EXC = {}
|
||
with_nots = lambda items: items + ["ن" + item for item in items]
|
||
simple_ends = ["م", "ی", "", "یم", "ید", "ند"]
|
||
narrative_ends = ["هام", "های", "ه", "هایم", "هاید", "هاند"]
|
||
present_ends = ["م", "ی", "د", "یم", "ید", "ند"]
|
||
|
||
# special case of '#هست':
|
||
VERBS_EXC.update({conj: "هست" for conj in ["هست" + end for end in simple_ends]})
|
||
VERBS_EXC.update({conj: "هست" for conj in ["نیست" + end for end in simple_ends]})
|
||
|
||
for verb_root in verb_roots:
|
||
conjugations = []
|
||
if "#" not in verb_root:
|
||
continue
|
||
past, present = verb_root.split("#")
|
||
|
||
if past:
|
||
past_simples = [past + end for end in simple_ends]
|
||
past_imperfects = ["می" + item for item in past_simples]
|
||
past_narratives = [past + end for end in narrative_ends]
|
||
conjugations = with_nots(past_simples + past_imperfects + past_narratives)
|
||
if present:
|
||
imperatives = ["ب" + present, "ن" + present]
|
||
if present.endswith("ا") or present in ("آ", "گو"):
|
||
present = present + "ی"
|
||
present_simples = [present + end for end in present_ends]
|
||
present_imperfects = ["می" + present + end for end in present_ends]
|
||
present_subjunctives = ["ب" + present + end for end in present_ends]
|
||
conjugations += (
|
||
with_nots(present_simples + present_imperfects)
|
||
+ present_subjunctives
|
||
+ imperatives
|
||
)
|
||
|
||
if past.startswith("آ"):
|
||
conjugations = set(
|
||
map(
|
||
lambda item: item.replace("بآ", "بیا").replace("نآ", "نیا"),
|
||
conjugations,
|
||
)
|
||
)
|
||
|
||
VERBS_EXC.update({conj: (past,) if past else present for conj in conjugations})
|