Skip to content

A classifier which collects news via RSS and trains ML models to classify headlines by category.

Notifications You must be signed in to change notification settings

PaKicek/News-Classifier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

News Classifier

Сбор информации с новостных сайтов и обучение модели для классификации заголовков по темам и актуальности (от 1 до 5).

Цели и задачи

Разработать и обучить модель, позволяющую по заголовкам новостей классифицировать их по темам и определять их актуальность (от 1 до 5).

Функциональные требования (MVP)

  • Экспортер должен собирать информацию по новостям с помощью RSS и создавать датасет в формате CSV
  • Используемые сайты (минимум): https://lenta.ru/, https://www.vedomosti.ru/, https://tass.ru/, https://russian.rt.com/
  • В датасете должны быть столбцы Website, Title, Author, Publication Date, Link, Picture Link, Category (категория на сайте), Topic (таргет, изначально будет определяться по Category, если это возможно), Relevance (таргет, изначально будет определяться по Publication Date, если это возможно)
  • Значение столбца Topic должно быть одним из Politics, Economics, Society, Accidents, Sport, Science and tech, Culture, Health, Travels and tourism, Weather, Unknown
  • Значение столбца Relevance должно быть от 1 до 5 включительно

Нефункциональные требования

  • Экспортер должен быть написан на языке программирования Java
  • Реализация отдельных модулей, связанных с обработкой датасета, должна быть написана в отдельных файлах с расширением .py
  • EDA датасета и визуализация результатов должны быть описаны в Jupyter Notebook
  • Должен быть обоснован выбор моделей машинного обучения и их гиперпараметров (почему использовалась та или иная модель)
  • Модели должны быть проверены по метрикам Accuracy и F1

Подсчёт метрики актуальности

  • Актуальность новости (Relevance) зависит прежде всего от времени её публикации. Список временных порогов:
    • До 1 часа назад: 5
    • До 6 часов назад: 4
    • До 1 суток назад: 3
    • До 3 суток назад: 2
    • После 3 суток назад: 1
  • После этого метрика дополнительно умножается на коэффициент, зависящий от темы новости. Список коэффициентов:
    • Politics: 1,1
    • Economics: 1,4
    • Society: 1
    • Accidents: 1
    • Sport: 0,7
    • Science and tech: 1,3
    • Culture: 0,9
    • Health: 1,2
    • Travels and tourism: 0,8
    • Weather: 0,9
    • Unknown: 1
  • Метрика ограничивается значениями от 1 до 5 включительно (то есть если, к примеру, после умножения на коэффициент значение стало равным 5,3), то оно будет равным 5.

Этапы разработки

Задача Статус
Разработка экспортера для сбора информации с новостных сайтов Выполнено (✅)
Сбор информации с помощью экспортера и получение датасета Выполнено (✅)
Exploratory Data Analysis, разбиение датасета с помощью k-fold Выполнено (✅)
Поиск подходящих моделей машинного обучения для решения задач Выполнено (✅)
Обучение модели на тренировочной части датасета Выполнено (✅)
Визуализация результатов (графики, проверка на тестовых данных) Выполнено (✅)

About

A classifier which collects news via RSS and trains ML models to classify headlines by category.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published