سلام دوست عزیز😃👋

لینک‌های مفید برای شرکت در مسابقه:

در طول مسابقه، می‌توانید سؤالات خود را از قسمت «سؤال بپرسید» مطرح کنید.

در زمان‌های زیر، پاسخگوی سؤالات شما هستیم:

  • ۹:۰۰ تا ۱۰:۳۰
  • ۱۲:۳۰ تا ۱۴:۰۰

فراموش نکنید فایل کد سؤالات «آزمایش احسان»، «فارسی‌بازی» و «جلال‌برت!» رو در بخش «بارگذاری کدها» (سؤال آخر) بارگذاری کنید.

موفق باشید 😉✌

فارسی‌بازی


مجموعه‌داده‌ی سوال را می‌توانید از این لینک دانلود کنید.

آزمایشگاه پردازش زبان طبیعی (Natural Language Processing) دانشگاه فناور اندیشان قصد توسعه یک مجموعه‌داده‌ی فارسی (Dataset) را دارد. اعضاء این آزمایشگاه تصمیم گرفته‌اند بعد از جمع‌آوری مجموعه‌داده اقدام به پیش‌پردازش آن‌ها کنند. برای انجام این کار مراحلی طراحی شده‌است که به شرح زیر است:

پرسش اول🔗

برای هر فایل، نسبت تعداد نویسه‌ای (Character)‌ که بیشترین فراوانی را دارد به تعداد کل نویسه‌های آن فایل را تعیین کنید.

خروجی نمونه🔗

برای خروجی این بخش در یک فایل با نام result_1.csv، در ستون اول با نام file_name نام فایل و در ستون دوم با نام char_ratio نسبت تعداد نویسه‌ای که بیشترین فراوانی را دارد به تعداد کل نویسه‌های آن فایل را درج کنید. (دقت داشته باشید این اعداد و نام‌ها برای نمونه هستند و الزامی به درستی آن‌ها نیست.)

file_name char_ratio
1.txt 0.2
2.txt 0.3

پرسش دوم🔗

برای هر فایل، نسبت تعداد کلمه (هر کلمه عبارتی است که بین دو فاصله قرار می‌گیرد) که بیشترین فراوانی را دارد به تعداد کل کلمات آن فایل را تعیین کنید.

خروجی نمونه🔗

برای خروجی این بخش در یک فایل با نام result_2.csv، در ستون اول با نام file_name نام فایل و در ستون دوم با نام word_ratio نسبت تعداد کلمه‌ای که بیشترین فراوانی را دارد به تعداد کل کلمات آن فایل را درج کنید. (دقت داشته باشید این اعداد و نام‌ها برای نمونه هستند و الزامی به درستی آن‌ها نیست.)

file_name word_ratio
1.txt 0.2
2.txt 0.3

پرسش سوم🔗

برای هر فایل، نسبت تعداد خطی (انتهای خط شامل کاراکترهای \n یا \r می شود) که بیشترین فراوانی را دارد به تعداد کل خط‌های آن فایل را تعیین کنید.

خروجی نمونه🔗

برای خروجی این بخش در یک فایل با نام result_3.csv، در ستون اول با نام file_name نام فایل و در ستون دوم با نام line_ratio نسبت تعداد خطی که بیشترین فراوانی را دارد به تعداد کل خطوط آن فایل را درج کنید. (دقت کنید در تمامی قسمت‌ها خروجی نمونه است و الزاماً جواب درست نیستند.)

file_name line_ratio
1.txt 0.2
2.txt 0.3

پرسش چهارم🔗

برای هر فایل، نسبت تعداد خطوط کوتاه به تعداد کل خط‌های آن فایل را تعیین کنید. خط کوتاه، خطی است که کمتر از ۱۰۰ کاراکتر داشته باشد و انتهای خط شامل نویسه‌های \n یا \r می‌شود.

خروجی نمونه🔗

برای خروجی این بخش در یک فایل با نام result_4.csv، در ستون اول با نام file_name نام فایل و در ستون دوم با نام short_line_ratio نسبت تعداد خطوط کوتاه به کل خطوط آن فایل را درج کنید. (دقت کنید در تمامی قسمت‌ها خروجی نمونه است و الزاماً جواب درست نیستند.)

file_name short_line_ratio
1.txt 0.2
2.txt 0.3

پرسش پنجم🔗

برای هر فایل زبان اول و دوم (دو زبانی که متن فایل با بیشترین احتمال متعلق به آن زبان‌هاست) و احتمال مربوط به هر کدام را تعیین کنید. (برای تشخیص زبان متن از مدل موجود در این لینک استفاده کنید و در ورودی مدل نویسه‌های \n و \r را حذف کنید.)

مثال

برای مثال متن زیر را در نظر بگیرید:

پردازش زبان طبیعی یک وظیفه بسیار چالش برانگیز است، مثل تفسیر شعر الا یا ایهاالساقی ادر کاسا ونا ولها

این متن با احتمال 0.9036 درصد فارسی و با احتمال 0.0123 درصد عربی است.

خروجی نمونه🔗

برای خروجی این بخش در یک فایل با نام result_5.csv، در ستون اول با نام file_name نام فایل و در ستون دوم با نام 1st_language اولین پیش‌بینی و در ستون سوم با نام 1st_percentage احتمال آن (اولین پیش‌بینی) و در ستون چهارم با نام 2nd_language دومین پیش‌بینی و در ستون پنجم با نام 2nd_percentage احتمال آن (دومین پیش‌بینی) را درج کنید. (دقت داشته باشید این اعداد و نام‌ها برای نمونه هستند و الزامی به درستی آن‌ها نیست.)

file_name 1st_language 1st_percentage 2nd_language 2nd_percentage
1.txt fa 0.9036 ar 0.0141
2.txt fa 0.8934 ar 0.1012

پرسش ششم🔗

برای هر کدام از فایل‌ها با استفاده از مدل زبانی HooshvareLab/gpt2-fa معیار perplexity را محاسبه کنید.

راهنمایی

معیار perplexity به این صورت حساب می‌شود که از ابتدای متن شروع کرده و هر بار یک پنجره با طول حداکثر ۲۵۶ (max_length=256)(که البته در انتهای متن این پنجره ممکن است به خاطر گام آخر، طول کمتری داشته باشد) در نظر گرفته و با استفاده از مدل احتمال کلمه بعدی در خود متن را به‌دست آورید و با استفاده از تابع هزینه CrossEntropyLoss مقدار خطا‌ (loss) را محاسبه کنید و این کار را تا آخر متن ادامه دهید و پنجره را در هر مرحله ۶۴ (stride=64) واحد جلو ببرید و نهایتا از تمام خطاها میانگین بگیرید) توضیحات بیشتر مربوط به معیار perplexity و نحوه‌ی محاسبه آن را می‌توانید در این لینک ببینید.

خروجی نمونه🔗

برای خروجی این بخش در یک فایل با نام result_6.csv، در ستون اول با نام file_name نام فایل و در ستون دوم با نام perplexity مقدار معیار perplexity را درج کنید. (دقت داشته باشید این اعداد و نام‌ها برای نمونه هستند و الزامی به درستی آن‌ها نیست.)

file_name perplexity
1.txt 5.09
2.txt 4.54

خروجی نهایی🔗

در نهایت برای ارسال پاسخ این سوال شش فایل result_1.csv ، result_2.csv ، result_3.csv ، result_4.csv ،result_5.csv و result_6.csv را فشرده (zip) کنید و با نام result.zip ارسال کنید.

ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.