Матрица ошибок отзывов приложения
Условие
Сервис мобильного приложения собирает отзывы пользователей. Сначала модераторы вручную отмечают, содержит ли отзыв проблему: метка 1 означает, что проблема есть, а метка 0 означает, что проблемы нет.
Автоматическая модель получает те же отзывы и выдаёт предсказания. Иногда модель не смогла обработать отзыв. В таблице предсказаний это обозначается символом -.
Необходимо сопоставить строки двух таблиц по идентификатору отзыва и вывести четыре числа матрицы ошибок только для отзывов с предсказанием 0 или 1: TP, FP, FN, TN. Здесь TP — число отзывов с истинной меткой 1 и предсказанием 1, FP — с истинной меткой 0 и предсказанием 1, FN — с истинной меткой 1 и предсказанием 0, TN — с истинной меткой 0 и предсказанием 0. Формально требуется вывести количества пар (истинная метка, предсказание): (1, 1), (0, 1), (1, 0), (0, 0) в этом порядке.
Строки с предсказанием - в матрицу ошибок не включаются. Идентификатор каждого отзыва встречается ровно один раз в каждой из двух таблиц. При равенстве меток в обеих таблицах строка учитывается по тем же правилам, что и любая другая строка. Округление не применяется, так как все выводимые значения целые.
Формат ввода
В первой строке дано целое число n — количество отзывов.
В следующих n строках дана таблица ручной разметки: идентификатор отзыва review_id и истинная метка actual_label через пробел.
В следующих n строках дана таблица предсказаний модели: идентификатор отзыва review_id и предсказание predicted_label через пробел. Порядок строк во второй таблице может отличаться от порядка строк в первой таблице.
Формат вывода
Выведите четыре целых числа TP FP FN TN через пробел.
Ограничения
1 ≤ n ≤ 1000.
Идентификатор review_id состоит из строчных латинских букв, цифр и символа _, его длина от 1 до 20.
actual_label принимает значение 0 или 1.
predicted_label принимает значение 0, 1 или -.
В каждой таблице каждый идентификатор встречается ровно один раз, а множества идентификаторов двух таблиц совпадают.
Гарантируется, что хотя бы у одного отзыва предсказание не равно -.
Решить задачу с автопроверкой на Python →
Куда дальше
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- Олимпиада по информатике: с чего начать — два мира олимпиад — ВсОШ и перечневые: этапы, задания и на каком языке писать
- На программиста по олимпиаде: путь по классам — что даёт диплом, куда с ним берут на ИТ-направления и почему решает 9 класс