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

توضیح تصویر

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

در اولین هفته‌ی کاری، شما اقدام به نوشتن برنامه‌ای کردید که تعدادی سایت‌ خبری را هر نیم‌ساعت یک‌بار رصد کرده و اقدام به ذخیره‌سازی اخبار آن‌ها می‌کند.

مجموعه داده

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

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

data
├── 2023-08-05
│   ├──7sobh
│   │    ├── 0.html
│   │    └── 1.html
│   └── farsnews
│        ├── 0.html
│        └── 1.html
│   
└── 2023-08-04
    ├──varzesh3
    │    ├── 0.html
    │    └── 1.html
    └── snn
         ├── 0.html
         └── 1.html
Plain text

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

در داخل برچسب head، شما به آدرس اینترنتی خبر در سایت منبع دسترسی دارید. هم‌چنین در داخل برچسب article، با رجوع به برچسب h2 می‌توانید به تیتر خبر دسترسی پیدا‌ کنید. اگر خبری دارای عکس‌ باشد، عکس اصلی آن شناسایی شده و در داخل برچسب img قرار گرفته است. در ادامه، متن خبر را در قالب برچسب‌های‌ p آورده‌ایم.

اگر این خبر را از طریق یک مرورگر باز کنید، با تصویر زیر روبه‌رو می‌شوید:

توضیح تصویر

صورت مسئله

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

  1. چند‌ منبع خبری یکتا در مجموعه داده وجود دارند؟
10
Plain text
  1. کدام منبع‌ خبری، در کل مجموعه داده بیشترین تعداد فایل‌های html را دارد؟
qnews
Plain text
  1. تمام فایل‌های ‍html مربوط به varzesh3 را در نظر بگیرید. به ترتیب تعداد تکرار کلمات والیبال، کشتی و فوتبال را در تمام تگ‌های p‍ به دست آورید.

توجه

  • دقیقا خود این کلمات مد نظر هستند و برای مثال کلمه فوتبالش یا کشتی‌گیر نباید شمارش شود.
  • متن‌ها دارای علائم نگارشی هستند که باید به آنها توجه کنید.

در خروجی زیر، مقدار 100 مربوط به والیبال، مقدار 200 مربوط به کشتی و مقدار 300 مربوط به فوتبال است.

100,200,300
Plain text
  1. در بین تمام خبر‌هایی که در تاریخ 2023-08-01 جمع‌آوری شده‌اند، بیشترین کلمه‌ای که در تگ h2 تکرار شده است را به دست آورید. (می‌توانید از آرایه stopwords قرار داده شده در فایل اولیه استفاده کنید)
قیمت
Plain text

این مرحله در مجموع، شامل ۴ سوال (هر سوال، ۲۵ امتیاز) است. در صورتی که به تمامی سوالات پاسخ صحیح دهید، بایستی ۱۰۰ امتیاز از این مرحله کسب کنید.

خروجی

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

هشدار

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

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

نمونه خروجی ۱

10
qnews
100,200,300
قیمت
Plain text

توضیحات

در خط iام جواب سوال iام آمده است.

نمونه خروجی ۲

10
-1
-1
قیمت
Plain text

توضیحات

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


ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.