Иногда людям даже трудно понять, настоящая новость, фальшивка или сатира. Поэтому я спросил себя, могу ли я обучить модель машинного обучения решать, к какому классу (реальным или сатирическим) принадлежит данная статья. Существуют такие веб-сайты, как https://www.theonion.com, ежедневно публикующие сатирические новости, которые можно использовать вместе с обычными новостными сайтами для сбора обучающих данных по этой задаче классификации.

Набор данных

Я взял большие массивы новостных статей на немецком языке из информационных агентств и газет через их веб-сайты:

и с сайтов сатирических новостей:

для обучения и тестирования модели. Всего с 2008 по 2018 год я собрал 63 868 статей и сохранил их в локальной базе данных.

Реализация

Для обучения классификатора я использовал пакет ScikitLearn с линейным классификатором опорных векторов (SVC). Новостные тексты были векторизованы с помощью векторизатора подсчета и взвешивания Tf-idf (см. Код ниже).

Полученные результаты

80% данных было использовано для обучения классификатора и 20% для тестирования. На тестовом наборе я получил точность 0,996, точность 0,986, отзыв 0,952 и оценку F1 0,969. В приведенной ниже матрице неточностей вы можете увидеть распределение правильных и неправильных классификаций. Только 11 реальных новостей классифицируются как сатира, но 42 сатирических текста не считаются сатирой. Неплохие результаты.

Я думаю, что представленный метод можно использовать с другими языками, и я ожидаю таких же результатов, как и с немецкими новостями.

Компьютеры лучше людей обнаруживают сатиру в текстах?

Подробнее читайте в статье https://arxiv.org/abs/1810.00593.