Вам нужно зайти в Яндекс-новости (на самом деле -- в любой новостной агрегатор, который умеет схлопывать новостные заметки с разных сайтов в один сюжет). Там есть "новостные сюжеты", то есть кластеры, в которые собираются отдельные новостные заметки с разных сайтов. Обычно в практическом смысле это значит, что несколько (или даже много, если событие важное) новостных сайтов берут информацию из одного источника, немного переписывают и дополняют исходный текст и порождают в конечном счёте очень похожие друг на друга тексты новостей. Вот пример такого сюжета. Здесь есть какое-то основное событие и ссылки на отдельные новости на разных сайтах, которые про него рассказывают.
Там вам нужно будет выбрать себе сюжет по вкусу и написать программу, которая:
- скачивала несколько (4-5) страниц таких новостей из одного сюжета.
Если Яндекс вас блокирует, то вместо того, чтобы скачивать страницы Яндекс.новостей, можно зайти в сюжет и найти там ссылки на новости руками. Эти ссылки можно, например, записать в массив или в файл. А вот уже скачивать страницы с новостями по этим ссылкам (не с яндекса! а с новостного сайта) нужно уже с помощью urlllib.request.
- Доставала из них собственно текст новости.
- Преобразовывала эти тексты в множества слов.
- Находила пересечения этих множеств, то есть какие словоформы для всех заметок в сюжете являются общими?
- Находила симметрическую разность этих множеств, то есть какие словоформы являются уникальными для новостных заметок в пределах одного сюжета.
Результаты должны быть выведены в файлы, по одному на строчку в алфавитном порядке.
За это можно получить 8 баллов.
Отдельное задание на 10 баллов: Из симметрической разности множеств нужно оставить только те словоформы, которые имеют частотность больше 1.