Skip to content

Latest commit

 

History

History
27 lines (16 loc) · 3.4 KB

12 ДЗ.md

File metadata and controls

27 lines (16 loc) · 3.4 KB

Домашнее задание по множествам

весит 1/3 оценки от обычного большого проекта

Вам нужно зайти в Яндекс-новости (на самом деле -- в любой новостной агрегатор, который умеет схлопывать новостные заметки с разных сайтов в один сюжет). Там есть "новостные сюжеты", то есть кластеры, в которые собираются отдельные новостные заметки с разных сайтов. Обычно в практическом смысле это значит, что несколько (или даже много, если событие важное) новостных сайтов берут информацию из одного источника, немного переписывают и дополняют исходный текст и порождают в конечном счёте очень похожие друг на друга тексты новостей. Вот пример такого сюжета. Здесь есть какое-то основное событие и ссылки на отдельные новости на разных сайтах, которые про него рассказывают.

Там вам нужно будет выбрать себе сюжет по вкусу и написать программу, которая:

  1. скачивала несколько (4-5) страниц таких новостей из одного сюжета.

Если Яндекс вас блокирует, то вместо того, чтобы скачивать страницы Яндекс.новостей, можно зайти в сюжет и найти там ссылки на новости руками. Эти ссылки можно, например, записать в массив или в файл. А вот уже скачивать страницы с новостями по этим ссылкам (не с яндекса! а с новостного сайта) нужно уже с помощью urlllib.request.

  1. Доставала из них собственно текст новости.
  2. Преобразовывала эти тексты в множества слов.
  3. Находила пересечения этих множеств, то есть какие словоформы для всех заметок в сюжете являются общими?
  4. Находила симметрическую разность этих множеств, то есть какие словоформы являются уникальными для новостных заметок в пределах одного сюжета.

Результаты должны быть выведены в файлы, по одному на строчку в алфавитном порядке.

За это можно получить 8 баллов.

Отдельное задание на 10 баллов: Из симметрической разности множеств нужно оставить только те словоформы, которые имеют частотность больше 1.