persiannlp / parsinlu

A comprehensive suite of high-level NLP tasks for Persian language
https://arxiv.org/abs/2012.06154
Other
141 stars 22 forks source link
farsi machine-translation mt5-models natural-language-inference natural-language-processing persian persian-language query-paraphrasing reading-comprehension sentiment-analysis sentiment-analysis-dataset textual-entailment

ParsiNLU

ParsiNLU is a comprehensive suit of high-level NLP tasks for Persian language. This suit contains 6 different key NLP tasks --- Reading Comprehension, Multiple-Choice Question-Answering, Textual Entailment, Sentiment Analysis, Query Paraphrasing and Machine Translation.

These challenges are collected by expert annotators native in Persian language and from various sources. If you'd like to see additional details on the dataset and how we collected, please check out our publication.

Getting the data

You can find the data under the data/ directory.

Alternatively, you can also access the data through the HuggingFace🤗 library. Here is an example:

from datasets import load_dataset

dataset = load_dataset("persiannlp/parsinlu_entailment")
for x in dataset['train']
  print(x)

Using the finetuned models using the HuggingFace🤗 library

Our models are deployed on HuggingFace's model hub. You can our list of models in this page.
Each model readme contains descriptions on how to use it.

Examples and Baselines

First, make sure you have the data your data/ directory.

Set up your environment. You can use conda or virtualenv to create a Python environment. We have tested the code with Python3.7, but it should work on any version >= 3.5. Make sure to install all the necessary dependencies:

> python install -r requirements.txt

If you're using a GPU, make sure that you set the appropriate environmental variable. For example:

export CUDA_VISIBLE_DEVICES=YOUR_GPU_ID # for example, YOUR_GPU_ID can be 0 for using your first GPU; or 0,1 if you're using two GPUs

See the relevant section on how to train models for each task:

Textual Entailment

Textual Entailment is the task of deciding whether a whether two given questions are paraphrases of each other or not.

Here are several examples:

Premise Hypothesis
entailment

این مسابقات بین آوریل و دسامبر در هیپودروم ولیفندی در نزدیکی باکرکی ، ۱۵ کیلومتری (۹ مایل) غرب استانبول برگزار می شود.

در ولیفندی هیپودروم، مسابقاتی از آوریل تا دسامبر وجود دارد.

contradiction

آیا کودکانی وجود دارند که نیاز به سرگرمی دارند؟

هیچ کودکی هرگز نمی خواهد سرگرم شود.

neutral

ما به سفرهایی رفته ایم که در نهرهایی شنا کرده ایم

علاوه بر استحمام در نهرها ، ما به اسپا ها و سونا ها نیز رفته ایم.

To reproduce our baselines (except mT5 models; see this), try train_and_evaluate_entailment_baselines.sh script.

You can also try our existing models. Visit this page to see an example.

Query Paraphrasing

QQP is the task of detecting whether two given questions are paraphrases of each other or not.

Here are several examples:

Label Question 1 Question 2
not-paraphrase

さ あ ひ る به چه معنی است؟

&脑 洞 大 به چه معنی است؟

paraphrase

قانون سوم حرکت نیوتن چیست؟ آیا می توانید یک عمل و یک عکس العمل را با مثال توضیح دهید؟

آیا کسی می تواند قانون سوم حرکت نیوتون را توضیح دهد؟

not-paraphrase

آیا لیزر موهای زائد باعث فرار دائمی از موهای ناخواسته می شود؟

آیا لیزر موهای زائد دائمی است؟

paraphrase

چه شانس هایی وجود دارد که اگر هیلاری در انتخابات رأی عمومی به پیروزی برسد ، کالح انتخاباتی بر ضد ترامپ تصمیم بگیرد؟

این احتمال وجود دارد که در ۱۹ دسامبر ، کالج انتخاباتی بتواند دونالد ترامپ را از دور خارج کند و به هیلاری کلینتون رأی دهد؟

To reproduce our numbers with all our baselines, try train_and_evaluate_qqp_baselines.sh script.

You can also try our existing models. Visit this page to see an example.

Reading Comprehension

In this task, the goal is to generate a response to question and its accompanying context paragraph. Here are several examples:

question paragraph answer
بند ناف انسان به کجا وصل است؟ ناف جایی قرار گرفته که در واقع بندناف در داخل رحم در آنجا به شکم جنین وصل بوده‌است. بندناف که جفت را به جنین متصل کرده بعد از تولد از نوزاد جدا می‌شود. برای جدا کردن بند ناف از دو پنس استفاده می‌کنند و بین آن دو را میبرند. پنس دیگری نزدیک شکم نوزاد قرار داده می‌شود که بعد از دو روز برداشته خواهد شد. بندناف باقی‌مانده طی ۱۵ روز خشک شده و می‌افتد و به جای آن اسکاری طبیعی به جای میماند. البته بر خلاف تصور عامه مردم شکل ناف در اثر بریدن بند ناف به وجود نمی‌آید و پیش از این در شکم مادر حالت ناف شکل گرفته‌است. شکل ناف در میان مردم مختلف متفاوت است و اندازه آن بین ۱.۵ تا ۲ سانتی‌متر است. تمام پستانداران جفت‌زیست ناف دارند. ناف در انسان‌ها به سادگی قابل مشاهده‌است. جفت
چرا خفاش در شب بیدار است؟ بیشتر خفاش‌ها شب‌زی‌اند. آن‌ها در طول روز یا خوابند یا به پاکسازی بدن خود می‌پردازند و در هنگام شب به شکار می‌روند. ابزار مسیریابی و شکار خفاش‌ها در تاریکی تا دههٔ ۱۷۹۰ کاملاً ناشناخته بود تا اینکه کشیش و زیست شناس ایتالیایی لازارو اسپالانزانی به مجموعه آزمایش‌هایی بر روی خفاش‌های کور دست زد. این خفاش‌ها در یک اتاق کاملاً تاریک گذاشت و مسیر آن‌ها را با نخ‌های ابریشمی پُر پیچ و خم کرد. حتی در تاریکی مطلق هم شبکورها راه خود را در آن مسیر پر پیچ و خم پیدا کرده بودند به همین دلیل او نتیجه گرفت که ابزار راه‌یابی شبکورها چیزی غیر از چشمانشان است. شکار
قاره آمریکا در چه سالی کشف شد؟ بیش از ده هزار سال است که انسان‌ها در قارهٔ آمریکا زندگی می‌کنند. قاره آمریکا توسط کریستف کلمب و در سال ۱۴۹۲ کشف شد اما او به اشتباه فکر کرد که آنجا هندوستان است اما مدت‌ها بعد آمریگو وسپوچی اعلام کرد که این قاره جدیدی است. اما تاریخ آمریکا به عنوان یک کشور مستقل به سال ۱۷۸۳ میلادی بازمی‌گردد که در آن آمریکا بر طبق معاهدهٔ پاریس به رسمیت شناخته گردید. ۱۴۹۲
چه کسانی فدک را به پیامبر اعطا کردند؟ یهودیان که از مسلمانان در جنگ‌های مختلفی شکست خورده بودند در جریان فتح فدک ناچار به صلح با محمد (پیامبر اسلام) شدند.

فدک در نزدیکی خیبر قرار داشت و با توجه به موقعیت استراتژیک خود نقطه اتکاء یهودیان حجاز به‌شمار می‌رفت. پس از آنکه سپاه اسلام، یهودیان را در «خیبر» و «وادی‌القری» و «تیما» شکست داد، برای پایان دادن به قدرت قوم یهود، سفیری به نام «محیط» به نزد سران فدک فرستادند. سران فدک صلح و تسلیم را بر جنگ ترجیح دادند و تعهد کردند که هر سال نیمی از محصولات فدک را در اختیار پیامبر قرار داده و از این به بعد زیر سلطه اسلام زندگی کنند.
یهودیان
کدام دانشگاه ها رشته مترجمی زبان دارند؟ رشته مترجمی زبان انگلیسی یکی از رشته‌ها در دانشگاه‌های ایران است که در آن کار ترجمه از زبان فارسی به انگلیسی و بالعکس به دانشجویان آموخته می‌شود. این رشته در سطح کاردانی کارشناسی کارشناسی ارشد و دکترا در بیشتر دانشگاه‌ها و موسسات آموزش عالی ایران وجود دارد. یک رشته نظری و عمومی با عنوان مطالعات ترجمه (که به یک زبان خاص مربوط نمی‌شود) در مقاطع بالاتر هم وجود دارد. بیشتر دانشگاه‌ها و موسسات آموزش عالی ایران
پنجاب مربوط کدام ولایت است؟ پنجاب مرکز منطقۀ دایزنگی قدیم است، اما براساس تقسیمات اداری سال ۱۳۴۳ جزئی از ولایت بامیان شد. مرکز این ولسوالی هم پنجاب نام دارد. بامیان

To reproduce our baselines (except mT5 models; see this, try train_and_evaluate_reading_comprehension_baselines.sh script.

You can also try our existing models. Visit this page to see an example.

Multiple-Choice QA

Here the task is to pick a correct answer among 3-5 given candidate answers. Here are several examples:

Question Correct Answer Candidate1 Candidate2 Candidate3 Candidate4
پایتخت کشور استرالیا کدام است؟ 3 ملبورن سیدنی کنبرا
منظومه یا مجموعه عناصر و اجزائی که با هم کنش و واکنش و ارتباط متقابل دارند را چه می نامند؟ 4 نهاد سازمان اجتماعی گشتالت سیستم
کدام یک از موارد زیر جزء مراحل چهارگانه تصمیم گیری، نمی باشد؟ 3 تعریف و تشخیص مشکل دستیابی به راح حل ها هدایت و نظارت اجرای تصممیم
مفهوم کلی کدام بیت با سایر ابیات متفاوت است؟ 4 از خلاف آمد عادت بطلب کام که من کسب جمعیت از آن زلف پریشان کردم گفتم که بوی زلفت گمراه عالمم کرد گفتا اگر بدانی هم اوت رهبر آید زلف آشفته‌ی او موجب جمعیت ماست چون چنین است پس آشفته‌ترش باید کرد اگر به زلف دراز تو دست ما نرسد گناه بخت پریشان و دست کوته ماست
یک مجسمه، یک گلدان و یک ساعت را که از لحاظ حجم تقریبا به یک اندازه می‌باشند به چند صورت مختلف می‌توان دو بدو در کنار هم و روی یک کمد برای زینت اتاق قرار داد؟ 1 ۶ ۴ ۲ ۸

To reproduce our baselines, try train_and_evaluate_multiple_choice_baselines.sh script.

You can also try our existing models. Visit this page to see an example.

Machine Translation

Machine Translation of Persian/English is one of the few tasks that has received more work in the past few years. Unfortunately, most of the evaluation done for this task is often limited to few domains/datasets.
Here we have compiled a collection of high-quality resources for Persian machine translation. Specifically, here is our collection of evaluation sets: