溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

怎么使用NaiveBayes分類(lèi)器檢測(cè)虛假新聞

發(fā)布時(shí)間:2021-12-27 14:04:51 來(lái)源:億速云 閱讀:104 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹“怎么使用NaiveBayes分類(lèi)器檢測(cè)虛假新聞”,在日常操作中,相信很多人在怎么使用NaiveBayes分類(lèi)器檢測(cè)虛假新聞問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”怎么使用NaiveBayes分類(lèi)器檢測(cè)虛假新聞”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

什么是NaiveBayes分類(lèi)器

樸素貝葉斯分類(lèi)器是一種利用貝葉斯定理對(duì)數(shù)據(jù)進(jìn)行分類(lèi)的確定性算法。讓我們看一個(gè)例子:

假設(shè)你想預(yù)測(cè)今天下雨的概率:在過(guò)去的幾天里,你通過(guò)觀察天空中的云收集了數(shù)據(jù)。以下是你的數(shù)據(jù)表:

怎么使用NaiveBayes分類(lèi)器檢測(cè)虛假新聞

在下雨或不下雨的情況下,這個(gè)表格表示了某一特征出現(xiàn)的次數(shù)。假設(shè)出現(xiàn)了灰色云或白色云,我們所擁有的實(shí)際上是一個(gè)包含下雨概率的表格。

現(xiàn)在有了數(shù)據(jù),讓我們做一個(gè)預(yù)測(cè)。今天我們看到了灰色的云,沒(méi)有白云,是雨天還是晴天?要回答這個(gè)問(wèn)題,我們必須使用Bayes定理:

怎么使用NaiveBayes分類(lèi)器檢測(cè)虛假新聞

這個(gè)定理利用過(guò)去的數(shù)據(jù)做出更好的決定。

如果出現(xiàn)了灰色云,下雨的概率等于以前有灰色云下雨的概率。

根據(jù)我們的數(shù)據(jù):

P(B | A)(降雨概率|灰色云)=10/11

P(A)(降雨概率)= 11/(50+11) = 11/66 = 1/6

P(B)(灰色云的概率)=1(因?yàn)橐汛_認(rèn)出現(xiàn)了灰色云)

P(A | B)=P(B | A)*P(A)/P(B)

P(A | B)=[(10/11)*(1/6)]/1

P(A | B)=10/66

如果出現(xiàn)了灰色的云,下雨的概率是10/66

項(xiàng)目

通過(guò)對(duì)naivebayes分類(lèi)器的簡(jiǎn)要介紹,讓我們用naivebayes分類(lèi)器來(lái)討論假新聞檢測(cè)。

考慮到新聞是假的,我們將統(tǒng)計(jì)一個(gè)詞出現(xiàn)在標(biāo)題中的次數(shù)。將其轉(zhuǎn)換為概率,然后計(jì)算標(biāo)題為假的概率,與標(biāo)題為真的概率相比。

我使用的數(shù)據(jù)集有21000多個(gè)真實(shí)新聞實(shí)例,23000個(gè)假新聞實(shí)例。對(duì)于一個(gè)正常的數(shù)據(jù)集來(lái)說(shuō),這可能看起來(lái)是不平衡的,但這種不平衡對(duì)于計(jì)算初始概率是必要的:即標(biāo)題是假的概率。

代碼:
import pandas as pd
import string

這是程序的三個(gè)依賴(lài)項(xiàng):pandas是讀取csv文件,string是字符串操作。

true_text = {}
fake_text = {}

true = pd.read_csv('/Users/XXXXXXXX/Desktop/True.csv')
fake = pd.read_csv('/Users/XXXXXXXX/Desktop/Fake.csv')

此腳本用于讀取兩個(gè)數(shù)據(jù)集,其中包含假新聞和真新聞的實(shí)例。

def extract_words(category,dictionary):
    for entry in category['title']:
        words = entry.split()
        for word in words:
            lower_word = word.lower()
            if word in dictionary:
                dictionary[lower_word] += 1
            else:
                dictionary[lower_word] = 1
    return dictionary

考慮到標(biāo)題是假新聞,這個(gè)腳本計(jì)算一個(gè)單詞出現(xiàn)的次數(shù),并在其進(jìn)入詞典的條目中添加一個(gè)計(jì)數(shù),計(jì)算每個(gè)單詞出現(xiàn)的次數(shù)。

def count_to_prob(dictionary,length):
    for term in dictionary:
        dictionary[term] = dictionary[term]/length
    return dictionary

此函數(shù)通過(guò)計(jì)算假新聞標(biāo)題或真實(shí)新聞標(biāo)題的總字?jǐn)?shù)將數(shù)字轉(zhuǎn)換為概率。

def calculate_probability(dictionary,X,initial):
    X.translate(str.maketrans('', '', string.punctuation))
    X = X.lower()
    split = X.split()
    probability = initial
    for term in split:
        if term in dictionary:
            probability *= dictionary[term]
            print(term,dictionary[term])
    return probability

此函數(shù)將相關(guān)概率相乘,以計(jì)算標(biāo)題的“分?jǐn)?shù)”。為了做出預(yù)測(cè),在使用假新聞和真新聞詞典時(shí)比較得分。如果假新聞字典返回更高的分?jǐn)?shù),則模型預(yù)測(cè)標(biāo)題為假新聞。

true_text = extract_words(true,true_text)
fake_text = extract_words(fake,fake_text)

true_count = count_total(true_text)
fake_count = count_total(fake_text)

true_text = count_to_prob(true_text,true_count)
fake_text = count_to_prob(fake_text,fake_count)

total_count = true_count + fake_count
fake_initial = fake_count/total_count
true_initial = true_count/total_count

這個(gè)腳本使用上述所有函數(shù)為每個(gè)單詞創(chuàng)建一個(gè)概率字典,以便稍后計(jì)算標(biāo)題的“分?jǐn)?shù)”。

X = 'Hillary Clinton eats Donald Trump'
calculate_probability(fake_text,X,1)>calculate_probability(true_text,X,1)

最后一個(gè)腳本評(píng)估了標(biāo)題:“Hillary Clinton eats Donald Trump”,以測(cè)試模型。

True

模型輸出的結(jié)果是真實(shí)的,因?yàn)闃?biāo)題顯然是假新聞。

到此,關(guān)于“怎么使用NaiveBayes分類(lèi)器檢測(cè)虛假新聞”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI