Постановка задачи
Фейковые новости распространяются в большем количестве и порождают все больше и больше дезинформации, что приводит к беспорядкам, дракам, а также к гибели невинных людей. Чтобы решить эту серьезную проблему, необходимо использовать некоторые вычислительные инструменты, которые могут их обнаруживать, такие как «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%.