Постановка задачи

Фейковые новости распространяются в большем количестве и порождают все больше и больше дезинформации, что приводит к беспорядкам, дракам, а также к гибели невинных людей. Чтобы решить эту серьезную проблему, необходимо использовать некоторые вычислительные инструменты, которые могут их обнаруживать, такие как «CountVectorizer», «TFid Vectorizer» и многие другие, которые могут помочь нам уменьшить распространение или появление мистификаций.

Введение

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

Невинно выглядящие сообщения в социальных сетях на абсолютно известных веб-страницах попали в ловушку распространения ложных новостей.

Стратегии развертывания проекта

Набор данных: набор данных, который использовался для этого проекта Python, имеет размеры 7764 x 4.

Первая колонка идентифицирует новости. Второй столбец — заголовок. Третий столбец — это текст. В четвертом столбце есть метки, обозначающие, являются ли новости реальными или фальшивыми.

Используемые библиотеки: Numpy, Pandas, Sklearn

Предварительная обработка данных

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

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

Остановить удаление слова

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

Удаление пунктуации:

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

Вывод -:

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

Векторизатор TF-IDF -:

Техника «Частота термина — обратная частота документа» (TF-IDF) может использоваться для извлечения признаков. Частота термина и обратная частота документа являются двумя компонентами TF — IDF, Частота термина определяет локальную важность слова по его вхождению в документ. . IDF Идентифицирует слова подписи, которые чаще всего не встречаются в документе.

Развертывание модели

#Инициализация пассивно-агрессивного классификатора
pac=PassiveAggressiveClassifier(max_iter=50)
pac.fit(tfidf_train,y_train)
#DataFlair — Прогнозирование набора тестов и расчет точности # PriteshTambe
y_pred=pac.predict(tfidf_test)
score=accuracy_score(y_test,y_pred)
print(f'Accuracy: {round(score*100,2)}%')

Для развертывания модели мы использовали пассивно-агрессивный классификатор. Мы поместим это на tidf_train и y_train. Затем мы предскажем тестовый набор из TridVectorizer и рассчитаем точность с помощью precision_score() из метрик sklearn.

Пассивно-агрессивные алгоритмы — это алгоритмы онлайн-обучения. Такой алгоритм остается пассивным для правильного результата классификации и становится агрессивным в случае просчета, обновления и корректировки.

В отличие от большинства алгоритмов он не сходится. Его цель - делать обновления, которые покрывают потерю.

Анализ результатов

С этой моделью мы получили точность 92,82%. Наконец, мы также напечатали матрицу путаницы, чтобы получить представление о количестве истинных положительных и ложных отрицательных результатов.

Матрица путаницы дала нам 589 TP, 587 TN, 42 FP, 49 FN.

Вывод :

массив ([[589,49],

[42,587])

Преимущества

1.) Высокая точность.

2.) Теперь люди могут различать шуточные и правильные новости. Эта камера сводит к минимуму распространение фальшивых новостей.

3.) Это может свести к минимуму распространение фейковых новостей.

4.) Это разоблачит поддельные источники новостей.

Вывод

Фейковые новости можно обнаружить с помощью Python. Используя набор политических данных, мы получили точность 92%.