سلام دوست عزیز😃👋
لینکهای مفید برای شرکت در مسابقه:
در طول مسابقه، میتوانید سؤالات خود را از قسمت «سؤال بپرسید» مطرح کنید.
در زمانهای زیر، پاسخگوی سؤالات شما هستیم:
فراموش نکنید فایل کد سؤالات «آزمایش احسان»، «فارسیبازی» و «جلالبرت!» رو در بخش «بارگذاری کدها» (سؤال آخر) بارگذاری کنید.
موفق باشید 😉✌
مجموعهدادهی سوال را میتوانید از این لینک دانلود کنید. |
---|
آزمایشگاه پردازش زبان طبیعی (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
ارسال کنید.