Достаточно ли использования технологий и техник НЛП базового уровня для обнаружения фейковых новостей?

Ничего нового под солнцем

О фейковых новостях говорят все, от вашего лучшего друга до ваших родителей, возможно, даже ваши золотые рыбки шепчутся по углам аквариума. Это даже освещается Real News в тревожном ролике. Dictionary.com даже назвал «дезинформацию» словом года в 2018 году. Однако это не такая уж новая проблема, верно? В конце концов, Джонатон Свифт писал в 1710 году: «Ложь летит, а Истина хромает вслед за ней». А еще есть более известное, часто приписываемое Марку Твену: «Ложь может облететь полмира, прежде чем правда получит свое место».

Итак, если это не новая проблема, почему сегодня это одна из самых обсуждаемых тем?

Мо данные, Мо проблемы

Мы не будем здесь подробно останавливаться на всех сложных причинах. Однако это одна из самых очевидных причин, по которой легко понять, почему эта проблема распространилась и проникла в каждую щель нашей жизни. Одним словом, доступность.

Нетрудно увидеть, как быстро все может выйти из-под контроля. Возможность публиковать или делиться статьей, видео или подкастом практически для любого человека в любой точке мира приходится дорого. Мне потребовалось бы как минимум 20 минут, чтобы убедиться, что эта история правдива! Нет, я просто ретвитну, потому что это выглядит правдой достаточно.

Итак, давайте рассмотрим проект, а затем поговорим немного подробнее о том, где дела и к чему они могут развиваться.

Обнаружение фейковых новостей с помощью НЛП

В этом проекте мы будем использовать два набора данных. Будет один набор настоящих новостей и набор данных фейковых новостей. Давайте посмотрим на первые пять наблюдений по каждому из них.

Мы видим, что наборы данных не чем отличаются. Я считаю, что это метафора для всей этой проблемы… Ну, в любом случае, у нас есть заголовок, текст, тема и дата для каждого наблюдения - в обоих наборах данных.

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

После того, как мы добавим новый столбец в каждый фрейм данных, чтобы различать, настоящая это или поддельная статья, мы объединяем их в один фрейм данных. Глядя на образец нового фрейма данных, мы видим еще одно отличие. Ни в одной из настоящих статей нет ВСЕХ ЗАГЛАВНЫХ букв в заголовке. Однако в этом поперечном сечении мы видим, что три из пяти фальшивых статей имеют все заглавные буквы в заголовках. Также мы можем видеть, что предметы похожи, но не одинаковы.

У нас есть 21 417 и 23 481 наблюдение для реальных и фейковых новостей соответственно. Итак, у нас есть прилично сбалансированный набор данных без нулевых значений в 44 898 наблюдениях.

Диаграмма-атака

Теперь, когда мы закончили спорить и провели базовую подготовку / исследование данных, давайте выберем некоторые из этих библиотек визуализации.

Как мы уже обсуждали, набор данных, с которыми мы имеем дело, прилично сбалансирован. Даже с такой большой разницей в общем количестве, мы все равно будем стратифицировать данные, когда будем проводить разделение на поезд-тест.

После просмотра фрейма данных я задумался о столбце subject. Моя первоначальная гипотеза заключалась в том, что этот столбец может оказаться полезным для включения в наш анализ. Имея это в виду, мы провели подсчет общей стоимости по каждой категории.

Несмотря на низкую представленность в некоторых категориях, я все же подумал, что это может быть что-то значимое, что нужно учитывать при проведении нашего анализа. Однако сделав еще один шаг…

А, вот оно. Посмотрите, как мы продолжаем находить закономерности! Кому вообще нужны эти алгоритмы машинного обучения? Мы делаем. Все мы делаем. Но в основном я.

Кажется странным, что настоящие новостные статьи имеют только две разные категории - это самая несбалансированная вещь в наших данных. Возможно, все статьи были взяты из нескольких источников, из нескольких категорий внутри них. Это еще одна причина использовать как можно больше данных для этого типа работы.

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

Это облако в форме утки

Прежде чем мы перейдем к всеобщему любимому графическому объекту НЛП, Облаку слов, нам нужно немного очистить фреймворк.

Все функции очистки разбиты на отдельные функции. Когда вы создаете функции, у вас есть возможность создать функции One Function To Rule Them All, Mother Of All Function. Это не обязательно плохо. Однако я считаю, что этот метод сложнее отладить и реализовать. В этом примере здесь, если мы хотим изменить язык стоп-слов или если какая-либо отдельная функция не работает, мы сможем внести изменения только в эту функцию, не опасаясь возникновения других проблем.

Мы удалили английские стоп-слова, удалили некоторые скобки пунктуации и т. Д., И теперь мы можем создать несколько словосочетаний. Мы можем использовать этот небольшой фрагмент кода для их создания.

plt.figure(figsize = (20,20)) # Text from the real news articles
wc = WordCloud(max_words = 2000, width = 1600, height = 800, stopwords = STOPWORDS).generate(“ “.join(df[df.category == 1].text))
plt.imshow(wc , interpolation = ‘bilinear’)
plt.axis(“off”)
plt.show

Мы определенно можем увидеть некоторые различия между этими двумя облаками слов. Я предпочитаю более индивидуальный подход при создании облаков слов. В случае этих двух наборов данных я выбрал следующие:

Некоторые слова имеют похожие представления. В этом нет ничего удивительного, поскольку большинство статей значились как имеющие политический характер. Несколько выдающихся отличий для меня - это Хиллари Клинтон и О бама в облаке слов фейковых новостей.

Точно, но какое это имеет значение?

Если вы хотите увидеть весь код, использованный в процессе моделирования, зайдите на Github. Вот результаты:

Итак, у нас осталась довольно точная модель, использующая базовые библиотеки и техники НЛП.

В начале статьи мы коротко поговорили о фейковых новостях, дезинформации, пропаганде, все это не ново. Мы видим, что некоторые базовые методы могут дать достойные результаты без особой настройки. Итак, что мешает таким платформам, как Facebook, искоренять фальшивые новости, распространяемые на их платформе?

Ну и огромное количество вещей. По собственным словам Facebook,

[ложные] новости вредны для нашего сообщества, они делают мир менее информированным и подрывают доверие. Это не новое явление, и все мы - технологические компании, медиа-компании, редакции новостей, учителя - несем ответственность за то, чтобы внести свой вклад в его борьбу. В Facebook мы работаем над борьбой с распространением ложных новостей в трех ключевых областях:

подрыв экономических стимулов, поскольку большинство ложных новостей имеет финансовую мотивацию;

создание новых продуктов для сдерживания распространения ложных новостей; а также

помогая людям принимать более обоснованные решения, когда они сталкиваются с ложными новостями.

На всех своих платформах они пытаются найти подходящее решение с многоаспектным подходом - хотя, возможно, есть еще кое-что, о чем они не сообщают публично. Даже при наличии групп данных мирового уровня в каждой технологической компании по всему миру неуловимость фальшивых новостей - это то, что будет продолжать бросать вызов тому, что кажется логически возможным, - их искоренению. Или, по крайней мере, возможность найти как можно больше и удалить со своих платформ.

Достаточно простой характер этого проекта может привести к неправильному пониманию проблемы, но, что более важно, решения.

Наблюдать со стороны, чтобы увидеть, какие стратегии будут реализованы для решения этой серьезной проблемы, очень интересно. Хотя присоединиться к одной из этих замечательных команд, чтобы помочь воплотить их в жизнь, было бы немного увлекательнее.

LinkedIn

Свяжитесь со мной в LinkedIn: https://www.linkedin.com/in/wchasethompson