日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
練就火眼金睛:Python助你一眼看穿社交媒體中的假新聞

本文轉載自公眾號“讀芯術”(ID:AI_Discovery)。

創(chuàng)新互聯公司為客戶提供專業(yè)的成都做網站、網站建設、程序、域名、空間一條龍服務,提供基于WEB的系統開發(fā). 服務項目涵蓋了網頁設計、網站程序開發(fā)、WEB系統開發(fā)、微信二次開發(fā)、成都手機網站制作等網站方面業(yè)務。

2016年總統大選,和特朗普一起走上風口浪尖的是Facebook,假新聞一度成為了學界業(yè)界熱議的話題。這個社交媒體巨頭受到了來自各方的批評,人們認為,Facebook拒絕審查核實其平臺上列出的新聞真實性這一做法危害性很大。

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

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

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

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

虛假新聞的迅速傳播會對社會產生負面影響,它會助長錯誤認知,2016年總統大選期間最受歡迎的政治新聞本身就是虛假事實。因此,在媒體上尋找基于事實的新聞是非常有必要的。

你該了解的

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

1. TF-IDF

機器學習的一大困境是算法計算數字,而自然語言主要由文本組成,因此需要將文本轉換為數字,這個過程被稱為文本向量化。它是機器學習的重要組成部分,有助于進行文本分析。向量化算法會產生不同的結果,所以你需要仔細選擇。

TF-IDF是一種統計度量,用于確定文檔中放置在一組文檔中的單詞的相關性。使用TF-IDF Vectorizer可以將文本轉換為特征向量。它是通過以下兩個指標相乘計算的:

  • 術語頻率是指一個單詞在文檔中出現的次數。
  • 逆文檔頻率是一個單詞在一組文檔中出現的次數。

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

被動攻擊算法是在線學習算法,用于從大量的數據中進行學習。例如,系統每天24小時從Twitter上收集推文,你希望根據這些數據進行預測。

然而,由于內存限制這是不可行的,你不能在內存中存儲這么多數據。被動攻擊算法從這些例子中學習,并在使用后立即丟棄它們,而不是將它們存儲在內存中。這些算法被稱為被動的是因為它們是溫順的,直到分類結果保持正確。一旦他們發(fā)現了錯誤的計算就會變得咄咄逼人,更新、調整模型。

3. 混淆矩陣(Confusion matrix)

在機器學習分類中,如果輸出應該生成兩個或兩個以上的類,則用于性能度量。有四種可能的結果:

  • 真陽性——做出了積極的預測,結果證明是正確的。
  • 真陰性——預測是負數,結果證明是真的。
  • 假陽性——預測是肯定的,但結果卻是錯誤的。
  • 假陰性——預測結果是錯誤的。

難題

假設你已經用Python構建了一個web抓取應用程序,它收集了來自社交媒體網絡的所有新聞鏈接。你該如何知道這些網站上的信息是真實事件呢?

1. 解決方案

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

2. 先決條件

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

 
 
 
 
  1. Pip install numpy 

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

 
 
 
 
  1. Pip install pandas 

最后,安裝項目中最重要的sklearn庫。它主要用于機器學習,含有內置的算法,這些算法包括模型選擇、模式、聚類、回歸和聚類的函數。運行以下命令:

 
 
 
 
  1. Pip install sklearn 

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

 
 
 
 
  1. Pip install jupyter lab 

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

 
 
 
 
  1. C:>jupyterlab 

瀏覽器會打開一個新窗口,轉到New à Console。勾選文本框,在這里輸入你的代碼,按Shift + Enter運行你的命令。

3. 使用什么數據集呢?

我們將使用一個包含7796行和4列的大型數據集。這些列表示:

  • 一個標識符
  • 新聞標題
  • 新聞文本
  • 標簽(例如,這則新聞是真是假)

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

對社交媒體上的新聞進行事實核查

導入剛剛在JupyterLab控制臺中安裝的所有庫。運行以下代碼:

 
 
 
 
  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數據轉換為二維數據結構(矩陣),我們需要使用來自pandas的DataFrame,它是一個可以包含異構列的二維數據結構。通過使用shape和head屬性可以確定數據集的格式和檢查行。運行以下代碼:

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

接著用DataFrame獲得真實和虛假的事實。運行以下代碼:

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

常見任務是將數據集分為兩組:培訓和測試。

 
 
 
 
  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初始化。設置英文停止詞,并指定最大文檔頻率為0.65。這表示包含較高文檔頻率的術語將被刪除。

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

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

 
 
 
 
  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) 

現在將被動攻擊算法初始化,將它安裝在tfidf_train和b_train上。TF-IDF Vectorizer將有助于對測試集進行預測,并用sklearn.metrics中的 accuracy score()函數進行事實核查。

在多標簽分類中,accuracy score()函數可以用來處理子集的準確率。一個樣本中預測的標簽必須與另一子集中相應的標簽完全匹配。運行以下代碼:

 
 
 
 
  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ū)分真實新聞和假新聞時,準確率為94.43%。讓我們來看看它有多少次是正確的,運行以下代碼:

結果是,有456個真陽性,442個真陰性,27個假陽性和49個假陰性。

Python可以用來檢測出社交媒體上的假新聞。從包含政治新聞的數據集中提取數據,用TF-IDF Vectorizer將其轉換為向量,運行被動攻擊算法,擬合模型,最終能得到94.43%的準確率。

[[332838]]

圖源:unsplash

如今,假新聞已然泛濫成災,是時候好好“收拾”它們了。


分享標題:練就火眼金睛:Python助你一眼看穿社交媒體中的假新聞
瀏覽路徑:http://m.5511xx.com/article/cdpcgcs.html