日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

數據科學, 社交媒體真假

蓋爾·庫澤爾·邁耶斯

使用Python檢測虛假新聞

> Photo by Shahadat Rahman on Unsplash

 

社交媒體網絡上充斥著假新聞。 有沒有辦法檢測到它?

2016年總統大選最有爭議的方面之一是它在Facebook上的批評。 社交媒體龐然大物引起了來自各個方面的批評。 批評人士認為,Facebook拒絕核實和審查其平臺上所列新聞的真實性是危險的。

幾年后,馬克·扎克伯格(Mark Zuckerberg)出現在國會并回答了一系列問題。 美國國會議員指責Facebook首席執行官允許2020年大選之前傳播政治信息。

在所有緊張局勢中,扎克伯格因缺乏對政治廣告活動的事實核實而感到震驚。

"我可以針對主要目標的共和黨人投放廣告,說他們投票贊成綠色新政嗎?" —亞歷山大·奧卡西奧·科爾特斯—

扎克伯格大吃一驚,很難回答。 這些事件表明,群眾對采取行動打擊假冒內容的意識日益增強。

使用Python檢測虛假新聞

> Photo by Kon Karampelas on Unsplash

 

在社交媒體上消費新聞是一雙刃劍-價格適中,易于訪問且可傳播大量信息。 人們保持與全球事務的最新狀態,交流思想。

然而,通常,這種優勢被用于病毒式營銷。 盡管包含錯誤事實,但還是有意宣傳低質量新聞。 社交媒體上的虛假新聞可以采用多種形式。 創建了幾個惡意帳戶來傳播假新聞,例如巨魔,電子人用戶和社交機器人。

假新聞的迅速傳播可能對社會產生負面影響。 它可能會引起誤解,甚至危及生命。 2016年總統大選期間最受歡迎的政治新聞是基于虛假事實本身。 因此,在真實媒體上查找基于事實的新聞絕對必要。

你應該知道什么

在繼續前進之前,了解某些概念很重要:

特遣部隊

在機器學習中,存在一個主要的難題:算法計算數字。 但是,自然語言主要包含文本。 因此,需要將該文本轉換為數字,該過程通常稱為文本矢量化。 它是機器學習的重要組成部分,有助于進行文本分析。 向量化算法會產生不同的結果,因此您需要仔細選擇一個。

TF-IDF是一種統計量度,用于確定單詞在文檔集中放置時在文檔中的相關性。 它是通過將以下兩個指標相乘得出的:

·術語頻率是單詞在文檔中出現的次數。

·反向文檔頻率是單詞在一組文檔中出現的次數。

您將使用TfidfVectorizer將文本轉換為特征向量。

被動攻擊性分類器

被動進取算法是在線學習算法。 它們用于從大量數據中學習。 例如,您的系統正在從Twitter 24/7收集推文,而您想根據該數據進行預測。 由于存儲限制,這是不可行的。

您不能在內存中存儲太多數據。 被動進取算法從這些示例中學習并在使用后立即將其丟棄,而無需將其存儲在內存中。

這些算法之所以稱為被動算法,是因為它們在分類結果保持正確之前是服從的。 一旦發現計算錯誤,他們就會變得積極,更新并調整模型。

混淆矩陣

如果輸出應該生成兩個或更多類,則在機器學習分類中使用它進行性能測量。 有四個可能的結果:

·True Positive-您預測為肯定,結果是真實的。

·True Negative-您預測為否定,事實證明這是事實。

·False Positive 誤報-您預測為肯定,但事實證明是錯的。

·False Negative-您的預測否定,事實證明是錯誤的。

問題

假設您已經在Python中構建了一個Web抓取應用程序,該應用程序會收集來自社交媒體網絡(例如Facebook)的所有新聞鏈接。 您應該如何知道這些網站上的信息是來自真實事實?

我們已經在Python中建立了一個可以識別新聞鏈接是否真實的系統。 我們已經使用sklearn為數據集創建一個TfidfVectorizer。 Tfidf的目的是將文本轉換為特征向量。 這使您可以將它們用作估計器的輸入。

先決條件

打開命令行并下載并安裝Numpy。 Numpy是數字python的縮寫。 它為大量的多維數組和矩陣以及一些有用的數學函數提供支持。 運行以下命令:

pip install numpy

接下來,安裝Pandas。 熊貓可以幫助您對數據執行各種操作,例如導入,準備,合并,重塑,聯接,處理,分析和調整數據。 它圍繞DataFrame對象進行組織。 運行以下命令:

pip install pandas

最后,是時候安裝我們項目中最重要的庫sklearn了。 它主要用于機器學習。 它包含內置的算法,這些算法包含用于模型選擇,模式,聚類,回歸和聚類的功能。 運行以下命令:

pip install sklearn

您還需要安裝Jupyter Lab。 JupyterLab是用于Jupyter數據,代碼和筆記本的基于Web的工具。 它很靈活。 您可以自定義它以在機器學習,科學計算和數據科學中的多個工作流上工作。 運行以下命令:

pip install jupyter lab

安裝后,您可以在命令提示符下鍵入以下命令。

C:> jupyter lab

瀏覽器打開一個新窗口。 轉到"新建"à"控制臺"。 檢查下方的文本框-您將在此處輸入代碼。 輸入Shift + Enter運行命令。

我們將使用什么數據集?

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

  • 標識符
  • 新聞標題
  • 新聞文字
  • 標簽。即 新聞是真是假

您可以從此鏈接下載數據集。

社交媒體上的事實檢查新聞

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

import numpy as ny
import pandas as ps
import itertools
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import PassiveAggressiveClassifier
from sklearn.metrics import accuracy_score, confusion_matrix

我們需要將Excel數據轉換為二維數據結構(矩陣)。 為此,我們將使用pandas中的DataFrame。 它是一個二維數據結構,可以包含異構列。 通過使用形狀和頭部屬性,我們可以確定格式并檢查數據集的行。 運行以下代碼:

#從數據集中讀取

df = ps.read_csv('C: SocialFactCheckPython  news.csv')
df.shape
df.head(6)
使用Python檢測虛假新聞

 

使用DataFrame獲取正確和錯誤的事實。 運行以下代碼:

#檢查標簽

factcheck = df.label
factcheck.head(7)
使用Python檢測虛假新聞

 

現在是常見的任務-將數據集分為兩組:訓練和測試。

#分割數據集

a_train,a_test,b_train,b_test = train_test_split(df ['text'],
	factcheck,
  test_size = 0.15,
  random_state = 8)

初始化一個TfidfVectorizer。 設置英語停用詞并指定最大文檔頻率為0.65。 這表示將刪除包含較高文檔頻率的術語。

我們總是過濾掉停用詞以進行自然語言處理。 TfidfVectorizer用于將一組原始文檔轉換為TF-IDF功能矩陣。 隨機狀態用于指定隨機生成的種子。 它確保火車分割測試始終是確定性的。

使用矢量化器來擬合和變換訓練集和測試集。 .fit_transform學習詞匯和反向文檔頻率。 作為響應,它創建術語文檔矩陣。 .transform返回術語文檔矩陣。 運行以下代碼:

tfidf_vectorizer = TfidfVectorizer(stop_words =" english",max_df = 0.65)
tfidf_train = tfidf_vectorizer.fit_transform(a_train)
tfidf_test = tfidf_vectorizer.transform(a_test)

現在,您需要初始化PassiveAggressive分類器,該分類器將安裝在tfidf_train和b_train上。 TfidfVectorizer有助于通過sklearn.metrics的準確性score()對測試集進行預測,并進行事實檢查準確性。

在多標簽分類中,準確性score()函數用于處理子集的準確性。 為樣本預測的標簽必須與其他子集中的相應標簽完全匹配。

運行以下代碼:

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

這表明從假新聞中調用真實新聞時,我們的模型準確率為94.43%。 讓我們看看它是對的。 運行以下代碼:

使用Python檢測虛假新聞

 

這意味著我們有456個真實陽性,442個真實陰性,27個假陽性和49個假陽性。

最后的想法

Python可用于檢測社交媒體上的虛假新聞。 我們從包含政治新聞的數據集中提取數據,使用TfidfVectorizer將其轉換為向量,運行
PassiveAggressiveClassifier,然后擬合模型。 最終,我們產生了94.43%的準確性。

(本文翻譯自Gayle Kurtzer-Meyers的文章《Using Python to Detect Fake News》,參考:
https://medium.com/datadriveninvestor/using-python-to-detect-fake-news-7895101aebb8)

分享到:
標簽:Python
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定