# پردازش زبان طبیعی فارسی برای spaCy spaCy هیچ‌گاه مدل آموزش‌دیده‌ای برای فارسی منتشر نکرده است و `spacy.blank("fa")` تنها یک توکن‌ساز و فهرست واژه‌های اضافه در اختیار می‌گذارد. این مخزن دو pipeline آموزش‌دیدهٔ فارسی را فراهم می‌کند که بر پایهٔ پیکرهٔ [UD_Persian-PerDT](https://github.com/UniversalDependencies/UD_Persian-PerDT) ساخته شده‌اند و مانند دیگر مدل‌های spaCy با pip نصب می‌شوند. ## بسته‌ها `fa_dep_news_sm` دربردارندهٔ **tok2vec**، **برچسب‌گذار اجزای کلام**، **ریخت‌شناس**، **بن‌واژه‌یاب آموزش‌پذیر** و **تجزیه‌گر وابستگی** است. `fa_core_news_sm` همان اجزا به‌همراه **بازشناسی موجودیت‌های نام‌دار** را دارد. هر دو تحت لیسانس CC BY-SA ۴٫۰ منتشر شده‌اند. ```bash pip install https://huggingface.co/Phazel/fa_core_news_sm/resolve/main/fa_core_news_sm-any-py3-none-any.whl ``` ```python import spacy nlp = spacy.load("fa_core_news_sm") doc = nlp("محمدرضا شجریان در مشهد به دنیا آمد.") print(doc.ents) # (محمدرضا شجریان, مشهد) ``` ## کارایی ارزیابی با `spacy benchmark accuracy` روی بخش آزمون همان پیکره انجام شده است: | سنجه | امتیاز | مرجع | | --- | --- | --- | | `TOKEN_ACC` / `TOKEN_F` | ۹۹٫۹۶ / ۹۹٫۱۱ | | | `TAG_ACC` (XPOS) | ۹۵٫۹۶ | | | `POS_ACC` (UPOS) | ۹۶٫۲۴ | | | `MORPH_ACC` | ۹۶٫۲۹ | | | `LEMMA_ACC` | ۹۷٫۹۱ | | | `SENTS_F` | ۹۹٫۲۵ | | | `DEP_UAS` | ۸۹٫۶۹ | hazm+ParsBERT: ۹۲٫۴۶ | | `DEP_LAS` | ۸۵٫۱۵ | hazm+ParsBERT: ۸۹٫۳۴ | | `ENTS_F` | ۷۱٫۸۷ | تنها در `fa_core_news_sm` | | سرعت | حدود ۹٬۲۵۰ واژه بر ثانیه | | برچسب‌های موجودیت «نقره‌ای» هستند: از لایه‌ای در خود پیکره می‌آیند که با برچسب‌زن Beheshti-NER تولید و سپس دستی اصلاح شده است. بنابراین `ENTS_F` تا اندازه‌ای هم‌خوانی با آن برچسب‌زن را می‌سنجد؛ دیگر سنجه‌های جدول در برابر دادهٔ طلایی سنجیده شده‌اند. آموزش روی یک پردازندهٔ چهارهسته‌ای i5-7200U و بدون کارت گرافیک انجام شده است: ۱ ساعت و ۲۷ دقیقه برای اجزای نحوی و ۱۷ دقیقه برای NER. این دو اجرا مستقل‌اند و می‌توانند هم‌زمان انجام شوند. گام‌های تبدیل پیکره، آموزش، ارزیابی و بسته‌بندی در [`project.yml`](project.yml) تعریف شده‌اند. توضیح بیشتر دربارهٔ گزینش پیکره و پروانه‌ها در [`docs/MODELS.md`](docs/MODELS.md) و شرح انگلیسی پروژه در [`README.md`](README.md) آمده است.