در هر آشوب و جرمی که در شهر رخ میدهد، [کارآگاه گجت](https://fa.wikipedia.org/wiki/%DA%A9%D8%A7%D8%B1%D8%A2%DA%AF%D8%A7%D9%87_%DA%AF%D8%AC%D8%AA) به دنبال شناسایی عوامل آن میگردد. با توجه به این که در یک روز، اتفاقات زیادی در شهر رخ میدهد، او نمیتواند از همه آنها آگاه شود و طبق اهمیت آنها را اولویتبندی کند.
![توضیح تصویر](https://bayanbox.ir/view/8506343033397918783/gadget.jpg)
آقای گجت برای بهبود عملکرد خود در ماموریتها، **شما** را به عنوان دانشمند داده به تیم خود اضافه کردهاست تا **س**امانه **ج**امع **ا**خبار (**سجا**) را ایجاد کنید و [برسید به داد آن ناتوان](https://www.goodreads.com/quotes/7037347). 😉
در اولین هفتهی کاری، شما اقدام به نوشتن برنامهای کردید که تعدادی سایت خبری را هر نیمساعت یکبار رصد کرده و اقدام به ذخیرهسازی اخبار آنها میکند.
# مجموعه داده
مجموعه داده را میتوانید از [این لینک](/problemset/assignments/4367/download_problem_initial_project/197306/) دریافت کنید.
بعد از `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
هنگامی که یک فایل `html` را باز میکنید، با [این ساختار](https://bayanbox.ir/view/104949988318879471/html-format.png) روبهرو میشوید.
در داخل برچسب `head`، شما به آدرس اینترنتی خبر در سایت منبع دسترسی دارید. همچنین در داخل برچسب `article`، با رجوع به برچسب `h2` میتوانید به تیتر خبر دسترسی پیدا کنید. اگر خبری دارای عکس باشد، عکس اصلی آن شناسایی شده و در داخل برچسب `img` قرار گرفته است. در ادامه، متن خبر را در قالب برچسبهای `p` آوردهایم.
اگر این خبر را از طریق یک مرورگر باز کنید، با تصویر زیر روبهرو میشوید:
![توضیح تصویر](https://bayanbox.ir/view/24979915528693766/html-browser.png)
# صورت مسئله
در ابتدای کار، شما میخواهید با بررسی اولیه به اکتشاف در مجموعه داده بپردازید و به سوالات زیر پاسخ دهید (مثال خروجی هر سوال، زیر آن آمده است).
1. چند منبع خبری یکتا در مجموعه داده وجود دارند؟
```
10
```
2. کدام منبع خبری، در کل مجموعه داده بیشترین تعداد فایلهای `html` را دارد؟
```
qnews
```
3. تمام فایلهای `html` مربوط به `varzesh3` را در نظر بگیرید. به ترتیب تعداد تکرار کلمات `والیبال`، `کشتی` و `فوتبال` را در تمام تگهای `p` به دست آورید.
<details class="green">
<summary>
**توجه**
</summary>
+ دقیقا خود این کلمات مد نظر هستند و برای مثال کلمه فوتبالش یا کشتیگیر نباید شمارش شود.
+ متنها دارای علائم نگارشی هستند که باید به آنها توجه کنید.
</details>
در خروجی زیر، مقدار 100 مربوط به والیبال، مقدار 200 مربوط به کشتی و مقدار 300 مربوط به فوتبال است.
```
100,200,300
```
4. در بین تمام خبرهایی که در تاریخ `2023-08-01` جمعآوری شدهاند، بیشترین کلمهای که در تگ `h2` تکرار شده است را به دست آورید. (میتوانید از آرایه `stopwords` قرار داده شده در فایل اولیه استفاده کنید)
```
قیمت
```
این مرحله در مجموع، شامل ۴ سوال (هر سوال، ۲۵ امتیاز) است. در صورتی که به تمامی سوالات پاسخ صحیح دهید، بایستی ۱۰۰ امتیاز از این مرحله کسب کنید.
# خروجی
برای ارسال پاسخ ، جواب هر سوال را مشابه مثال، در یک سطر از فایل `text` بنویسید. در نهایت یک فایل با فرمت `.txt` چهار خطی با نام **output.txt** برای ما بارگذاری کنید. **_در صورتی که جواب سوالی را نمیدانید در سطر مربوطه ۱- وارد کنید._**
<details class="red">
<summary>
**هشدار**
</summary>
فراموش نکنید که **قبل از پایان زمان مسابقه**، **باید** تمامی کدهای این مسابقه را از قسمت **بارگذاری کُد** برای ما ارسال کنید. در غیر اینصورت، شما از این مسابقه، امتیازی کسب نمیکنید.
توجه داشته باشید که اگر از `jupter notebook` استفاده میکنید بایستی همانند توضیحات قسمت **بارگذاری کُد**، خروجی `.py` را دریافت و برای ارسال در نظر بگیرید. ارسال فایلهای `jupyter` همانند `.ipynb` مورد قبول نیستند.
</details>
## نمونه خروجی ۱
```
10
qnews
100,200,300
قیمت
```
<details class="green">
<summary>
**توضیحات**
</summary>
در خط *i*ام جواب سوال *i*ام آمده است.
</details>
## نمونه خروجی ۲
```
10
-1
-1
قیمت
```
<details class="green">
<summary>
**توضیحات**
</summary>
چون پاسخ سوال دوم و سوم را نمیدانستید، به جای آن عدد -۱ نوشتهاید!
</details>