تحلیل داده اکتشافی (قسمت اول)


در این سوال عملیات EDA روی یک مجموعه‌داده فارسی و انگلیسی انجام می‌شود.

توضیح تصویر

مجموعه‌داده🔗

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

هنگامی که این فایل را از حالت فشرده خارج کنید، فایل‌ qoura_questions.csv و shereno.csv در اختیار شما خواهد بود.

فایل shereno.csv دارای ۴۴۰۰ سطر و ۴ ستون می‌باشد و جزییات آن در جدول زیر آمده‌است:

نام ستون توضیحات ستون
Poem متن شعر
Poet شاعر
Title نام شعر
Book کتاب

فایل qoura_questions.csv دارای ۱۹۰۳ سطر و ۱ ستون می‌باشد و جزییات آن در جدول زیر آمده‌است:

نام ستون توضیحات ستون
question سوال

صورت مسئله🔗

  1. تعداد کلمات منحصر به فرد (یکتا) در هر سوال (ستون question) در qoura_questions.csv را پیدا کنید سپس مجموع تعداد کلمات منحصر به فرد در هر سوال را ارسال کنید.

مثال ۱: جمله ?Why do I not lose weight when I throw up دارای ۹ کلمه یکتا می‌باشد.

مثال ۲: جمله Hi, my name is Ali.\nmy cousin's name is Ali too! دارای ۸ کلمه یکتا می‌باشد.

3453
Plain text
  1. ابتدا مجموع تعداد رقم‌های موجود در ستون سوال (question) در فایل qoura_questions.csv و سپس تعداد رقم موجود در ستون متن شعر (Poem) در فایل shereno.csv را به‌دست آورید.

مثال۱: جمله Are there any good horror movies in 2016 دارای ۴ رقم است.

412 532
Plain text
  1. با استفاده از فایل stopwords.txt تعداد stopword‌های استفاده شده در متن شعر (Poem) در فایل shereno.csv را به‌دست آورید.
3423
Plain text

خروجی🔗

برای ارسال پاسخ، جواب هر سوال را مشابه‌ مثال، در یک سطر از یک فایل text بنویسید. در نهایت یک فایل سه خطی با نام output.txt را برای ما بارگذاری کنید.

در صورتی که جواب سوالی را نمی‌دانید در سطر مربوطه ۱- وارد کنید.

نمونه خروجی ۱🔗

3453
412 532
3423
Plain text
توضیحات

در خط i ام جواب سوال i ام نوشته شده‌است.

نمونه خروجی ۲🔗

3256
-1
-1
Plain text
توضیحات

چون پاسخ سوال دوم و سوم را نمی‌دانستید، به جای آن عدد ۱- نوشته‌اید!

هشدار 😱

فراموش نکنید که قبل از پایان زمان مسابقه، بایستی تمامی کد‌های این مسابقه را از قسمت بارگذاری کُد برای ما ارسال کنید. در غیر این صورت، شما از این مسابقه، امتیازی کسب نمی ‌کنید.

توجه داشته باشید که اگر از jupter notebook استفاده می کنید بایستی همانند توضیحات قسمت بارگذاری کُد، خروجی .py را دریافت و برای ارسال در نظر بگیرید. ارسال فایل‌های jupyter همانند ‍‍.ipynb مورد قبول واقع نخواهند شد.

تحلیل داده اکتشافی (قسمت دوم)


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

توضیح تصویر

مجموعه داده🔗

مجموعه داده سوال را می‌توانید از این لینک دانلود کنید. دقت کنید این مجموعه سوال همان فایل qoura_questions.csv در سوال قبل است.

صورت مسئله🔗

  1. تعداد کلماتی که با m شروع میشوند، با t تمام می شوند و طول آنها بیشتر از ۴ کاراکتر است را به‌دست آورید.
توجه

دقت کنید وجود علامت‌های نگارشی در پایان کلمات ایرادی ندارد و کلمات در این حالت نیز شمارش می‌شوند. همچنین بزرگی و کوچکی حروف مهم نیست.

43
Plain text
  1. مجموع تعداد ایموجی های متن را به‌دست آورید.
66
Plain text
  1. ۵ کلمه پر تکرار و تعداد تکرار آن‌ها را با با ترتیب نزولی به‌دست آورید.
the:14715 of:6742 and:6517 a:4805 to:4707
Plain text
  1. تعداد کلماتی که فقط یک بار در کل متن تکرار شده‌اند را به‌دست آورید.
2342
Plain text

خروجی🔗

برای ارسال پاسخ، جواب هر سوال را مشابه‌ مثال، در یک سطر از یک فایل text بنویسید. در نهایت یک فایل چهار خطی با نام output.txt را برای ما بارگذاری کنید.

*در صورتی که جواب سوالی را نمی‌دانید در سطر مربوطه ۱- وارد کنید.*

نمونه خروجی ۱🔗

43
66
the:14715 of:6742 and:6517 a:4805 to:4707
2342
Plain text
توضیحات

در خط i ام جواب سوال i ام نوشته شده‌است.

نمونه خروجی ۲🔗

3256
1000
-1
-1
Plain text
توضیحات

چون پاسخ سوال سوم و چهارم را نمی‌دانستید، به جای آن عدد ۱- نوشته‌اید!

هشدار 😱

فراموش نکنید که قبل از پایان زمان مسابقه، بایستی تمامی کد‌های این مسابقه را از قسمت بارگذاری کُد برای ما ارسال کنید. در غیر این صورت، شما از این مسابقه، امتیازی کسب نمی ‌کنید.

توجه داشته باشید که اگر از jupter notebook استفاده می کنید بایستی همانند توضیحات قسمت بارگذاری کُد، خروجی .py را دریافت و برای ارسال در نظر بگیرید. ارسال فایل‌های jupyter همانند ‍‍.ipynb مورد قبول واقع نخواهند شد.</details>**

کدام آمار؟


تعدادی چکیده‌ی مقاله از دو شاخه‌ی مختلف «آمار در یادگیری ماشین» و «آمار کاربردی» به همراه برچسب شاخه‌ی آن‌ها در اختیار شما قرار گرفته است. شما باید یک دسته‌بند ساده آموزش دهید که بتواند با ورودی گرفتن چکیده، موضوع مقاله را پیش‌بینی کند.

شما می‌توانید از هر کتابخانه پایتونی برای حل این سوال استفاده کنید. دقت کنید که کد نفرات برتر مورد بررسی قرار خواهد گرفت.

مجموعه‌ی‌داده🔗

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

هنگامی که این فایل را از حالت فشرده خارج کنید، دو فایل train.csv و test.csvدر اختیار شما قرار می‌گیرد. فایل آموزش شامل دو ستون به شرح زیر است:

نام ستون توضیحات ستون
abstract چکیده
category برچسب شاخه‌ی مقاله که شامل یکی از دو مقدار ML یا Applied می‌باشد

فایل آزمون (داده‌های آزمایش) تنها شامل ستون abstract است.

صورت مسئله🔗

از فایل train.csv برای پیش‌بینی موضوع مقاله با استفاده از چکیده آن و آموزش مدل استفاده کنید و از فایل test.csv برای آزمایش مدل شما در سیستم داوری استفاده می‌شود.

ارزیابی🔗

ارزیابی عملکرد بر اساس دقت (accuracy) بر روی داده‌های آزمایش خواهد بود؛ یعنی تعداد نمونه‌های درست دسته‌بندی شده تقسیم بر تعداد کل نمونه‌ها می‌شود. در نهایت امتیاز شما از این سوال طبق رابطه‌ی زیر محاسبه می‌شود:

score={0accuracy<0.6accuracy×100accuracy0.6.score = \begin{cases} 0 & accuracy<0.6 \\ accuracy \times 100 & accuracy\geq 0.6 \end{cases}.

داوری این سوال قبل از پایان مسابقه، تنها بر اساس ۳۰ درصد از مجموعه داده آزمایش (test) خواهد بود. پس از اتمام مسابقه، برای به‌روزرسانی نهایی جدول امتیازات، از ۱۰۰ درصد مجموعه داده آزمایش استفاده خواهد شد؛ این کار برای جلوگیری از بیش‌برازش (overfit‍‍‍) روی مجموعه داده آزمایش انجام می‌شود.

خروجی🔗

پیش‌بینی‌های مدل خود بر روی دادگان آزمایش (‍‍test.csv) را در فایلی با نام output.csv قرار دهید.

این فایل باید شامل یک ستون prediction باشد. در سطر i ام از این ستون باید پیش‌بینی مدل شما روی داده‌ی با اندیس i باشد. بعد از آماده‌سازی فایل output.csv، آن را برای ما بارگذاری کنید.

نمونه خروجی فایل output.csv (فقط پنج خط اول به همراه نام ستون)🔗

prediction
ML
Applied
Applied
ML
ML
توجه

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

استفاده از وزن مدل‌های از پیش آموزش دیده (pretrained) برای تسهیل آموزش مدل خود، در سوالات مانعی ندارد.

هشدار 😱

فراموش نکنید که قبل از پایان زمان مسابقه، بایستی تمامی کد‌های این مسابقه را از قسمت بارگذاری کُد برای ما ارسال کنید. در غیر این صورت، شما از این مسابقه، امتیازی کسب نمی ‌کنید.

توجه داشته باشید که اگر از jupter notebook استفاده می کنید بایستی همانند توضیحات قسمت بارگذاری کُد، خروجی .py را دریافت و برای ارسال در نظر بگیرید. ارسال فایل‌های jupyter همانند ‍‍.ipynb مورد قبول واقع نخواهند شد.

اخبار ایران و جهان


در این سوال ما یک مجموعه داده‌ی خبری داریم که دارای ۲۳ زیر مجموعه خبری است. شما باید مدلی بسازید که از این مجموعه داده استفاده کند و برای تخمین زیر مجموعه خبر مورد استفاده قرار گیرد.

شما می‌توانید از هر کتابخانه پایتونی برای حل این سوال استفاده کنید. دقت کنید که کد نفرات برتر مورد بررسی قرار خواهد گرفت.

مجموعه داده🔗

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

هنگامی که این فایل را از حالت فشرده خارج کنید فایل آموزش (train.csv) و آزمایش (test.csv) را مشاهده می‌کنید. فایل آموزش، دارای ساختار زیر است:

نام ستون توضیحات ستون
title عنوان خبر
subgroup زیرگروه خبر
abstract خلاصه خبر
body مشروح خبر

تنها تفاوت مجموعه داده آموزش با آزمایش در این است که مجموعه داده آزمایش، ستونsubgroup را ندارند.

صورت مسئله🔗

با استفاده از مجموعه داده آموزش، یک مُدل برای پیشبینی زیرگروه خبر (ستون subgroup) هر سطر آموزش دهید.

ارزیابی🔗

برای ارزیابی پاسخ شما از معیار F1 استفاده خواهد شد. این معیار به صورت زیر تعریف می‌شود:

F1=2×precision×recallprecision+recallF_1 = 2 \times \frac{precision \times recall}{precision + recall}

ولی به دلیل اینکه ستون پیشبینی دارای بیش از ۲ کلاس است ما از معیاری به نام Weighted F1 استفاده میکنیم که F1 میانگین وزنی کلاس ها را محاسبه میکند.

برای مطالعه بیشتر در مورد این معیار می‌توانید به این منبع مراجعه کنید.

داوری این سوال قبل از پایان مسابقه، تنها بر اساس ۳۰ درصد از مجموعه داده آزمایش (test) خواهد بود. پس از اتمام مسابقه، برای به‌روزرسانی نهایی جدول امتیازات، از ۱۰۰ درصد مجموعه داده آزمایش استفاده خواهد شد؛ این کار برای جلوگیری از بیش‌برازش (overfit‍‍‍) روی مجموعه داده آزمایش انجام می‌شود.

خروجی🔗

پیش‌بینی‌های مدل خود بر روی دادگان آزمایش (‍‍test.csv) را در فایلی با نام output.csv قرار دهید.

این فایل باید دارای یک ستون به اسم subgroup باشد.(بزرگ و کوچک بودن حروف نام ستون رعایت شود) که ردیف i ام هر ستون، پیش‌بینی شما برای نظر ردیف i ام از فایل test.csv باشد. بعد از آماده‌سازی فایل output.csv، آن را برای ما بارگذاری کنید.

نمونه خروجی فایل output.csv (فقط چهار خط اول به همراه نام ستون)🔗

subgroup
اجتماعی
اجتماعی
سیاسی
اقتصادی
توجه

حتما فایل output.csv باید دارای ۱۰۱۹۵۰ سطر (بدون در نظر گرفتن header) و یک ستون باشد.

استفاده از وزن مدل‌های از پیش آموزش دیده (pretrained) برای تسهیل آموزش مدل خود، در سوالات مانعی ندارد.

هشدار 😱

فراموش نکنید که قبل از پایان زمان مسابقه، بایستی تمامی کد‌های این مسابقه را از قسمت بارگذاری کُد برای ما ارسال کنید. در غیر این صورت، شما از این مسابقه، امتیازی کسب نمی ‌کنید.

توجه داشته باشید که اگر از jupter notebook استفاده می کنید بایستی همانند توضیحات قسمت بارگذاری کُد، خروجی .py را دریافت و برای ارسال در نظر بگیرید. ارسال فایل‌های jupyter همانند ‍‍.ipynb مورد قبول واقع نخواهند شد.

تشخیص جهت زمان


بخشی از فهم زبان طبیعی توسط مدل‌های هوش مصنوعی را می‌توان فهم آن‌ها از زمان در بستر متن دانست. در این سوال به وظیفه‌ای برای بررسی فهم مدل‌ها از جهت زمان در متون طبیعی می‌پردازیم. فرض کنید دو پاراگراف متوالی از یک کتاب داده شده باشند. هدف تشخیص آن است که ترتیب دو پاراگراف درست است یا خیر.

شما می‌توانید از هر کتابخانه پایتونی برای حل این سوال استفاده کنید. دقت کنید که کد نفرات برتر مورد بررسی قرار خواهد گرفت.

مجموعه‌داده🔗

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

هنگامی که این فایل را از حالت فشرده خارج کنید، سه فایل train.csv، val.csvو test.csv در اختیار شما قرار می‌گیرد. فایل آموزش و اعتبارسنجی شامل سه ستون به شرح زیر هستند:

نام ستون توضیحات ستون
paragraph 1 پاراگراف اول
paragraph 2 پاراگراف دوم
label برچسب، یکی از دو مقدار correct یا reverse

فایل آزمون (دادگان آزمایش) تنها شامل دو ستون اول است.

صورت مسئله🔗

از فایل train.csv و val.csvبرای آموزش و ارزیابی مدل استفاده کنید و از فایل test.csv برای آزمایش مدل شما در سیستم داوری استفاده می‌شود.

ارزیابی🔗

ارزیابی عملکرد بر اساس دقت (accuracy) بر روی داده‌های آزمایش خواهد بود؛ یعنی تعداد نمونه‌های درست دسته‌بندی شده تقسیم بر تعداد کل نمونه‌ها می‌شود. در نهایت امتیاز شما از این سوال طبق رابطه‌ی زیر محاسبه می‌شود:

score={0accuracy<0.6accuracy×100accuracy0.6.score = \begin{cases} 0 & accuracy<0.6 \\ accuracy \times 100 & accuracy\geq 0.6 \end{cases}.

داوری این سوال قبل از پایان مسابقه، تنها بر اساس ۳۰ درصد از مجموعه داده آزمایش (test) خواهد بود. پس از اتمام مسابقه، برای به‌روزرسانی نهایی جدول امتیازات، از ۱۰۰ درصد مجموعه داده آزمایش استفاده خواهد شد؛ این کار برای جلوگیری از بیش‌برازش (overfit‍‍‍) روی مجموعه داده آزمایش انجام می‌شود.

خروجی🔗

پیش‌بینی‌های مدل خود بر روی دادگان آزمایش (‍‍test.csv) را در فایلی با نام output.csv قرار دهید.

این فایل باید شامل یک ستون prediction باشد. در سطر i ام از این ستون باید پیش‌بینی مدل شما روی داده‌ی با اندیس i باشد. بعد از آماده‌سازی فایل output.csv، آن را برای ما بارگذاری کنید.

نام ستون و پنج خط از نمونه خروجی فایل output.csv🔗

prediction
reverse
correct
correct
reverse
reverse
توجه

استفاده از وزن مدل‌های از پیش آموزش دیده (pretrained) برای تسهیل آموزش مدل خود، در سوالات مانعی ندارد.

هشدار 😱

فراموش نکنید که قبل از پایان زمان مسابقه، بایستی تمامی کد‌های این مسابقه را از قسمت بارگذاری کُد برای ما ارسال کنید. در غیر این صورت، شما از این مسابقه، امتیازی کسب نمی ‌کنید.

توجه داشته باشید که اگر از jupter notebook استفاده می کنید بایستی همانند توضیحات قسمت بارگذاری کُد، خروجی .py را دریافت و برای ارسال در نظر بگیرید. ارسال فایل‌های jupyter همانند ‍‍.ipynb مورد قبول واقع نخواهند شد.

بارگذاری کد‌ها


به‌منظور جلوگیری از هر گونه تقلب و شبهه‌های احتمالی که منجر به ضایع شدن حق شما شود، شما بایستی که فایل کد هر سوال را ( فایل .py) در قالب یک فایل زیپ در اینجا بارگذاری نمایید.

در صورتی که پس از پایان زمان مسابقه، این فایل توسط شما بارگذاری نشده باشد، شما از جدول مسابقات حذف خواهید شد.🔗

توجه داشته باشید که اگر از jupter notebook استفاده می کنید, بایستی که از قسمت file و زیرقسمت Download خروجی .py را دریافت و آن را ارسال کنید. ارسال فایل‌های jupyter مانند ‍‍.ipynb مورد قبول واقع نخواهند شد و فقط فایل .py پذیرفته می‌شود.

بنابراین به‌ازای هر سوال (که به آن پاسخ داده‌اید) ، یک فایل کد به نام آن سوال ایجاد و تمامی کدهای مربوط به آن سوال را در آن قرار دهید. در نهایت، همه‌ فایل‌ها را زیپ کرده و در این قسمت فقط یک فایل زیپ ارسال کنید.

یعنی پنج فایل q1.py و q2.py و q3.py و q4.pyو q5.py را زیپ کرده و فقط همان یک فایل زیپ را در این سوال آپلود کنید.

توجه: از ارسال داده‌ها بپرهیزید!🔗