自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

練就火眼金睛:Python助你一眼看穿社交媒體中的假新聞

開發(fā) 后端
假設(shè)你已經(jīng)用Python構(gòu)建了一個(gè)web抓取應(yīng)用程序,它收集了來自社交媒體網(wǎng)絡(luò)的所有新聞鏈接。你該如何知道這些網(wǎng)站上的信息是來自真實(shí)事件呢?

本文轉(zhuǎn)載自公眾號(hào)“讀芯術(shù)”(ID:AI_Discovery)。

2016年總統(tǒng)大選,和特朗普一起走上風(fēng)口浪尖的是Facebook,假新聞一度成為了學(xué)界業(yè)界熱議的話題。這個(gè)社交媒體巨頭受到了來自各方的批評(píng),人們認(rèn)為,F(xiàn)acebook拒絕審查核實(shí)其平臺(tái)上列出的新聞?wù)鎸?shí)性這一做法危害性很大。

它縱容了虛假新聞和具有誤導(dǎo)性信息的傳播,這為陰謀論提供了溫床。譬如,有傳言說俄羅斯影響了那次大選結(jié)果。幾年后,馬克·扎克伯格現(xiàn)身國(guó)會(huì)回答了這一系列問題,美國(guó)議員指責(zé)Facebook的CEO在2020年大選前允許政治虛假信息傳播。

在緊張氣氛中,扎克伯格被問及政治廣告活動(dòng)缺乏事實(shí)核查的問題。亞歷山大·奧卡西奧·科爾特斯問道:“我能在初選時(shí)針對(duì)共和黨人投放廣告,說他們支持綠色新政嗎?”扎克伯格大吃一驚,他無法回答這個(gè)問題。

越來越多的民眾意識(shí)到得采取行動(dòng)打擊虛假內(nèi)容。在社交媒體上閱讀新聞是一把雙刃劍。它成本低廉,容易獲取,人們可以與全球事務(wù)保持同步,與他人分享新聞,也分享他們的想法。

然而,這種優(yōu)勢(shì)常常被病毒式營(yíng)銷所利用。比如盡管有些低質(zhì)量新聞包含虛假事件,這些新聞還是會(huì)被傳播開來。社交媒體上的假新聞形式多樣,人們創(chuàng)建一些惡意賬戶來傳播假新聞,如噴子、電子人用戶、水軍等等。

虛假新聞的迅速傳播會(huì)對(duì)社會(huì)產(chǎn)生負(fù)面影響,它會(huì)助長(zhǎng)錯(cuò)誤認(rèn)知,2016年總統(tǒng)大選期間最受歡迎的政治新聞本身就是虛假事實(shí)。因此,在媒體上尋找基于事實(shí)的新聞是非常有必要的。

[[332835]]

你該了解的

先打住,我們有必要先理解一些概念:

1. TF-IDF

機(jī)器學(xué)習(xí)的一大困境是算法計(jì)算數(shù)字,而自然語言主要由文本組成,因此需要將文本轉(zhuǎn)換為數(shù)字,這個(gè)過程被稱為文本向量化。它是機(jī)器學(xué)習(xí)的重要組成部分,有助于進(jìn)行文本分析。向量化算法會(huì)產(chǎn)生不同的結(jié)果,所以你需要仔細(xì)選擇。

TF-IDF是一種統(tǒng)計(jì)度量,用于確定文檔中放置在一組文檔中的單詞的相關(guān)性。使用TF-IDF Vectorizer可以將文本轉(zhuǎn)換為特征向量。它是通過以下兩個(gè)指標(biāo)相乘計(jì)算的:

  • 術(shù)語頻率是指一個(gè)單詞在文檔中出現(xiàn)的次數(shù)。
  • 逆文檔頻率是一個(gè)單詞在一組文檔中出現(xiàn)的次數(shù)。

2. 被動(dòng)攻擊算法(Passive Aggressive Classifier)

被動(dòng)攻擊算法是在線學(xué)習(xí)算法,用于從大量的數(shù)據(jù)中進(jìn)行學(xué)習(xí)。例如,系統(tǒng)每天24小時(shí)從Twitter上收集推文,你希望根據(jù)這些數(shù)據(jù)進(jìn)行預(yù)測(cè)。

然而,由于內(nèi)存限制這是不可行的,你不能在內(nèi)存中存儲(chǔ)這么多數(shù)據(jù)。被動(dòng)攻擊算法從這些例子中學(xué)習(xí),并在使用后立即丟棄它們,而不是將它們存儲(chǔ)在內(nèi)存中。這些算法被稱為被動(dòng)的是因?yàn)樗鼈兪菧仨樀?,直到分類結(jié)果保持正確。一旦他們發(fā)現(xiàn)了錯(cuò)誤的計(jì)算就會(huì)變得咄咄逼人,更新、調(diào)整模型。

3. 混淆矩陣(Confusion matrix)

在機(jī)器學(xué)習(xí)分類中,如果輸出應(yīng)該生成兩個(gè)或兩個(gè)以上的類,則用于性能度量。有四種可能的結(jié)果:

  • 真陽性——做出了積極的預(yù)測(cè),結(jié)果證明是正確的。
  • 真陰性——預(yù)測(cè)是負(fù)數(shù),結(jié)果證明是真的。
  • 假陽性——預(yù)測(cè)是肯定的,但結(jié)果卻是錯(cuò)誤的。
  • 假陰性——預(yù)測(cè)結(jié)果是錯(cuò)誤的。

難題

假設(shè)你已經(jīng)用Python構(gòu)建了一個(gè)web抓取應(yīng)用程序,它收集了來自社交媒體網(wǎng)絡(luò)的所有新聞鏈接。你該如何知道這些網(wǎng)站上的信息是真實(shí)事件呢?

1. 解決方案

用Python構(gòu)建一個(gè)系統(tǒng),可以識(shí)別新聞鏈接是否真實(shí),先用sklearn為數(shù)據(jù)集創(chuàng)建TF-IDF Vectorizer。TF-IDF的目的是將文本轉(zhuǎn)換為特征向量,這能讓你使用它們作為估計(jì)器的輸入。

2. 先決條件

打開命令行,下載并安裝Numpy。Numpy是numericalpython的縮寫,它為大量的多維數(shù)組和、陣及幾個(gè)有用的數(shù)學(xué)函數(shù)提供支持。運(yùn)行以下命令:

  1. Pip install numpy 

接下來,安裝Pandas。Pandas將幫助你對(duì)數(shù)據(jù)執(zhí)行大量操作,例如導(dǎo)入、準(zhǔn)備、合并、重塑、連接、處理、分析和調(diào)整數(shù)據(jù)。它是圍繞DataFrame對(duì)象組織的。運(yùn)行以下命令:

  1. Pip install pandas 

最后,安裝項(xiàng)目中最重要的sklearn庫。它主要用于機(jī)器學(xué)習(xí),含有內(nèi)置的算法,這些算法包括模型選擇、模式、聚類、回歸和聚類的函數(shù)。運(yùn)行以下命令:

  1. Pip install sklearn 

還需要安裝JupyterLab。JupyterLab是一個(gè)基于web的工具,用于收集Jupyter數(shù)據(jù)、代碼、筆記本。它具有靈活性,可以自定義它來處理機(jī)器學(xué)習(xí)、科學(xué)計(jì)算和數(shù)據(jù)科學(xué)中的多個(gè)工作流。運(yùn)行以下命令:

  1. Pip install jupyter lab 

安裝好了之后,可以在命令提示符中輸入以下命令:

  1. C:>jupyterlab 

瀏覽器會(huì)打開一個(gè)新窗口,轉(zhuǎn)到New à Console。勾選文本框,在這里輸入你的代碼,按Shift + Enter運(yùn)行你的命令。

3. 使用什么數(shù)據(jù)集呢?

我們將使用一個(gè)包含7796行和4列的大型數(shù)據(jù)集。這些列表示:

  • 一個(gè)標(biāo)識(shí)符
  • 新聞標(biāo)題
  • 新聞文本
  • 標(biāo)簽(例如,這則新聞是真是假)

從此鏈接下載數(shù)據(jù)集:https://drive.google.com/file/d/1er9NJTLUA3qnRuyhfzuN0XUsoIC4a-_q/view

對(duì)社交媒體上的新聞進(jìn)行事實(shí)核查

導(dǎo)入剛剛在JupyterLab控制臺(tái)中安裝的所有庫。運(yùn)行以下代碼:

  1. import numpyas ny 
  2. importpandas as ps 
  3. importitertools 
  4. fromsklearn.model_selection import train_test_split 
  5. fromsklearn.feature_extraction.text import TfidfVectorizer 
  6. fromsklearn.linear_model import PassiveAggressiveClassifier 
  7. fromsklearn.metrics import accuracy_score, confusion_matrix 

將Excel數(shù)據(jù)轉(zhuǎn)換為二維數(shù)據(jù)結(jié)構(gòu)(矩陣),我們需要使用來自pandas的DataFrame,它是一個(gè)可以包含異構(gòu)列的二維數(shù)據(jù)結(jié)構(gòu)。通過使用shape和head屬性可以確定數(shù)據(jù)集的格式和檢查行。運(yùn)行以下代碼:

  1. #Read from the dataset 
  2. df=ps.read_csv(‘C:\SocialFactCheckPython\news.csv’) 
  3. df.shape 
  4. df.head(6) 

練就火眼金睛:Python助你一眼看穿社交媒體中的假新聞

接著用DataFrame獲得真實(shí)和虛假的事實(shí)。運(yùn)行以下代碼:

  1. #Check the labels 
  2. factcheck=df.label 
  3. factcheck.head(7) 

練就火眼金睛:Python助你一眼看穿社交媒體中的假新聞

常見任務(wù)是將數(shù)據(jù)集分為兩組:培訓(xùn)和測(cè)試。

  1. #Split the dataset 
  2. a_train,a_test,b_train,b_test=train_test_split(df[‘text’],factcheck, test_size=0.15, random_state=8

將TF-IDF Vectorizer初始化。設(shè)置英文停止詞,并指定最大文檔頻率為0.65。這表示包含較高文檔頻率的術(shù)語將被刪除。

過濾出停止詞來進(jìn)行自然語言處理。TF-IDF Vectorizer用于將一組原始文檔轉(zhuǎn)換為具有TF-IDF特性的矩陣。隨機(jī)狀態(tài)用于指定隨機(jī)生成的種子,它確保了分割測(cè)試集訓(xùn)練集總是確定的。

使用矢量化工具來適應(yīng)并轉(zhuǎn)換你的訓(xùn)練集和測(cè)試集。用.fit_transform學(xué)習(xí)詞匯表和逆文檔頻率。作為響應(yīng),它會(huì)創(chuàng)建term-document矩陣。使用.transform可返回一個(gè)term-document矩陣。運(yùn)行以下代碼:

  1. tfidf_vectorizer=TfidfVectorizer(stop_words=’english’,max_df=0.65) 
  2. tfidf_train=tfidf_vectorizer.fit_transform(a_train) 
  3. tfidf_test=tfidf_vectorizer.transform(a_test) 

現(xiàn)在將被動(dòng)攻擊算法初始化,將它安裝在tfidf_train和b_train上。TF-IDF Vectorizer將有助于對(duì)測(cè)試集進(jìn)行預(yù)測(cè),并用sklearn.metrics中的 accuracy score()函數(shù)進(jìn)行事實(shí)核查。

在多標(biāo)簽分類中,accuracy score()函數(shù)可以用來處理子集的準(zhǔn)確率。一個(gè)樣本中預(yù)測(cè)的標(biāo)簽必須與另一子集中相應(yīng)的標(biāo)簽完全匹配。運(yùn)行以下代碼:

  1. pclass=PassiveAggressiveClassifier(max_iter=60
  2. pclass.fit(tfidf_train,b_train) 
  3. b_pred=pclass.predict(tfidf_test) 
  4. factcheckscore=accuracy_score(b_test,b_pred) 
  5. print(f’Fact-checkAccuracy Is {round(factcheckscore*100,2)}%’) 

這表明,該模型在區(qū)分真實(shí)新聞和假新聞時(shí),準(zhǔn)確率為94.43%。讓我們來看看它有多少次是正確的,運(yùn)行以下代碼:

練就火眼金睛:Python助你一眼看穿社交媒體中的假新聞

結(jié)果是,有456個(gè)真陽性,442個(gè)真陰性,27個(gè)假陽性和49個(gè)假陰性。

Python可以用來檢測(cè)出社交媒體上的假新聞。從包含政治新聞的數(shù)據(jù)集中提取數(shù)據(jù),用TF-IDF Vectorizer將其轉(zhuǎn)換為向量,運(yùn)行被動(dòng)攻擊算法,擬合模型,最終能得到94.43%的準(zhǔn)確率。

 

[[332838]]

 

 

圖源:unsplash

 

如今,假新聞已然泛濫成災(zāi),是時(shí)候好好“收拾”它們了。

 

責(zé)任編輯:趙寧寧 來源: 讀芯術(shù)
相關(guān)推薦

2024-06-11 07:45:00

2020-05-21 12:59:51

邊緣存儲(chǔ)存儲(chǔ)物聯(lián)網(wǎng)

2011-03-08 09:27:33

2018-04-26 10:38:34

2013-01-23 09:12:13

云存儲(chǔ)服務(wù)云存儲(chǔ)提供商選擇云存儲(chǔ)

2023-09-06 07:11:41

大模型人工智能

2021-03-19 11:05:50

Linux目錄命令

2020-05-26 12:52:06

Windows 10網(wǎng)絡(luò)故障

2024-04-09 15:16:58

AI論文

2023-10-06 13:35:11

AI數(shù)據(jù)

2017-06-23 17:18:56

互聯(lián)網(wǎng)

2015-08-21 13:10:14

APM數(shù)據(jù)

2018-11-28 14:59:56

云計(jì)算

2011-12-20 09:23:09

2010-11-17 13:35:50

BUG

2025-03-20 10:03:44

2015-08-19 14:01:14

APM

2017-10-17 09:49:06

2024-03-11 12:21:07

模型數(shù)據(jù)

2025-03-17 09:40:00

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)