Рубрики
Без рубрики

Обнаружить фальшивые новости заголовки с Python

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

Давайте построим простой сценарий Python, который обнаружит фальшивые новости заголовков, а также реальных!

Первые вещи сначала импортируют эти библиотеки:

import pandas as pd
import numpy as np
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB

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

Теперь начать работать с данными, загрузить в набор данных и определить X и у переменных

data = pd.read_csv("news.csv")

x = np.array(data["title"])
y = np.array(data["label"])

X будет определен как заголовки новостей, которые мы хотели бы, чтобы наша модель была обучена и проверена на у будет ярлыком (подделка или реальная), которую мы собираемся предсказывать

Далее добавьте эти строки кода в ваш скрипт:

cv = CountVectorizer()
x = cv.fit_transform(x)

“Wth?” Вы можете спросить Проще говоря:

  • Функция «CountVectorizer ()» подсчитывает количество вхождений слов в заголовках, чтобы найти разницу между реальными и поддельными заголовками. Без судейства заголовок новостей реальна или подделка, насколько это звучит правдоподобие, вы, вероятно, согласитесь, что основное отличие между реальными и поддельными заголовками является тональником и выбор слов, модель, как это не может судить по новостям Насколько они правдоподобны, поскольку у него нет суждения о том, что звучит правдоподобно или нет, вот почему, лучше всего сделать ставку при обнаружении реальных или поддельных заголовков, анализируя свой тон и слово.
  • «Fit_Transform ()», затем подходит для переменной x и преобразует его из простого текста в список словных вхождений всех слов, встречающихся как из реальных, так и поддельных заголовков, чтобы разызнуть их по своему выбору слов, длиной и тоном.

Чтобы сделать, поезжать и проверить нашу модель, добавьте эти строки кода в ваш скрипт:

xtrain, xtest, ytrain, ytest = train_test_split(x, y, test_size=0.2, random_state=42)
model = MultinomialNB()
model.fit(xtrain, ytrain)

Позволь мне объяснить…

  • Прежде всего, мы разделим набор данных в поезде (80%) и тестируйте (20%) наборы и устанавливаете «Random_State» на 42, чтобы убедиться, что у нас есть тот же поезда, и тестовые наборы каждый раз, когда вы запускаете свой скрипт (номер 42 не имеет значения, вы можете поставить любой номер)
  • Далее мы определяем нашу модель с помощью «мультиномиалнб ()», которая используется для классификации данных на основе количества слов.
  • Наконец, мы подходим нашу модель с наборами «XTRAIN» и «YTRAIN».

Начните обнаруживать реальные или поддельные заголовки!

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

news_headline = "Atlantis discovered under the Atlantic Ocean!"
data = cv.transform([news_headline]).toarray()
print(news_headline)
print(model.predict(data))

Теперь, если вы запускаете свой скрипт, вы должны увидеть, что он предсказывал, что эта заголовка новостей является подделкой:

Теперь давайте возьмем случайную новости заголовок из BBC News и посмотрим, классифицирует ли наша модель как реальной:

news_headline = "Kathy Hochul: Who is New York's first female governor?"

Теперь, конечно, эта модель не идеальна Новости заголовки меняются все время, и даже если набор данных, который мы используем для обучения нашей модели, является простым текстом на 30 МБ, это всего около 50% точнее. Если вы добавите Печать (Model.Score (xtest, ytest)) В ваш скрипт вы увидите, что оценка точности составляет ~ 80%, даже если я проверил 40 заголовков новостей с прошлой недели и получил 50% до 60% точности, это потому, что новости заголовки, новости заголовок словарны и новости заголовок Темы меняются все время.

Тем не менее, я надеюсь, что вы нашли этот проект интересным, и я вижу вас в следующем посте в блоге;)

Если вы начинающий, кто любит открывать новые вещи о Python, попробуйте моя еженедельная рассылка Python

Byeeeee👋.

Оригинал: “https://dev.to/code_jedi/detect-fake-news-headlines-with-python-2l43”