誰在橢圓形辦公室發(fā)推:機器學(xué)習(xí)揭露川普推文的真實作者
川普的癖好
有時候數(shù)據(jù)科學(xué)更像是藝術(shù)而不是科學(xué)。在開始構(gòu)建模型的時候,我首先考慮自己作為人類如何識別一條推文是川普式的。然后盡我所能將這些“感覺”轉(zhuǎn)換為基于規(guī)則的代碼。有一些明顯的癖好,可以識別是否川普本人在鍵盤后面,例如,全部使用大寫,隨機大寫某個特定詞匯,以及無理由!地使用感嘆號。!
事實上,我的模型中最緊要的特征之一就是引用轉(zhuǎn)推?雌饋泶ㄆ詹恢廊绾卧谕铺厣限D(zhuǎn)推別人的推文。在整個33000條推文的語料庫中,僅有一條來自Android設(shè)備的方法正確的轉(zhuǎn)推。在其他轉(zhuǎn)推中,川普復(fù)制別人的推文,@用戶,然后用引號包圍推文,然后自己發(fā)布:
這些轉(zhuǎn)推經(jīng)常(并非總是)是像這樣的自我慶祝推文。在本文后面討論結(jié)果的部分,你會看到,川普傾向于大量@自己,其原因就是這樣的轉(zhuǎn)推。
風(fēng)格
這里的風(fēng)格特征指可以用來識別任何一個推特用戶的特征,而不是指川普的個人風(fēng)格。風(fēng)格特征包括每條推文的平均長度,每句話的平均長度,每個單詞的平均長度。我也考察了各種標(biāo)點符號的使用頻率(川普幾乎從不使用分號;他的助手們相對而言經(jīng)常使用分號)。@提及、#標(biāo)簽、URL的數(shù)目最終都成為強有力的預(yù)測特征。最后,在星期幾和一天的什么時間段發(fā)推也泄露了不少信息。
情感
我使用了C.J. Hutto的VADER包來提取每條推文的情感。VADER是Valence Aware Dictionary and sEntiment Reasoning的簡稱(因為,我猜,VADSR聽起來很蠢?),是一個為社交媒體特別調(diào)制的基于詞典和規(guī)則的工具。給定一個文本字符串,VADER為文本的消極性、積極性和中性各自輸出一個0到1之間的小數(shù),以及一個-1到1之間的匯總指標(biāo)。
關(guān)于VADER包的開發(fā)、驗證、評估的完整描述可以參考這篇論文。VADER的精髓是,包作者首先構(gòu)造了一個對應(yīng)情感的詞匯特征的列表(用簡單英語來說,“單詞和短語”),然后將這一列表與一些規(guī)則組合起來,這些規(guī)則表述了短語的語法結(jié)構(gòu)如何加強或減弱這一情感。VADER的表現(xiàn)(精確度96%)超過了人類(精確度84%)。
情緒
加拿大國家研究委員會(National Research Council of Canada)編制了一個超過14000單詞的詞典,其中每個單詞標(biāo)注了對應(yīng)2種情感(消極、積極)和8種情緒(憤怒、希望、厭惡、恐懼、快樂、悲傷、驚訝、信任)的評分。加拿大國家研究委員會十分友善地允許我訪問這一詞典,我編寫了一個Python腳本,遍歷推文中的每個單詞,通過查詢這一詞典得出單詞對應(yīng)的情緒。根據(jù)推文中包含的對應(yīng)相應(yīng)情緒的單詞的數(shù)目,給每條推文包含的每種情緒分配一個相應(yīng)的分?jǐn)?shù)。
遣詞
我使用tf-idf技術(shù)分析推文的遣詞,tf-idf是Term Frequency?—?Inverse Document Frequency(詞頻-逆向文檔頻率)的簡稱;旧,它衡量了文檔中的一個單詞的描述性和唯一性。例如,你希望分組一些新聞類文章,并向讀者推薦相似文章。你讓計算機讀取每篇文章,其中一篇的特征是提到了10次“棒球”。那么,“棒球”應(yīng)該是文章中一個相當(dāng)顯著的單詞!這是詞頻的部分。
然而,同一篇文章同樣提到了8次“說過”?雌饋磉@也是一個相當(dāng)顯著的單詞。但我們?nèi)祟惒⒉贿@么看;我們知道如果若干篇文章都提到了“棒球”,那么它們多半是關(guān)于同一主題的文章,不過如果若干篇文章都提到了“說過”,這并不能說明這些文章的相似性。因此我們查看集合內(nèi)的所有文章使用單詞“棒球”和“說過”的詞頻。比如,結(jié)果是,1000篇文章中,只有30篇提到了“棒球”,卻有870篇提到了“說過”。那么我們將這些單詞在所有文檔中的詞頻的倒數(shù)——1/30和1/870——乘以它們在單篇文章中的詞頻——10和8。這是逆向文檔頻率的部分。所以單詞“棒球”的評分是10/30 = 0.333,單詞“說過”的評分是8/870 = 0.009。我們?yōu)槊科臋n中的每個單詞進(jìn)行這樣的計算,然后看看哪些文章具有相同的高分單詞。這就是tf-idf。
為了減少我的模型的運算需求,我只考察了一元語法(unigram,單個單詞),沒有考察二元語法(bigram)和三元語法(trigram)。(tf-idf處理二元語法和三元語法的方法和處理單個單詞的方法一樣。)n元語法每增加一元,相應(yīng)的處理時間會指數(shù)級增長,并且我發(fā)現(xiàn)“Crooked Hillary”或“Lyin’ Ted Cruz”能被“crooked”和“l(fā)yin”代表。我同時忽略了在超過99%的推文中出現(xiàn)的詞匯(語料庫特定的停止詞),以及在不到1%的推文中出現(xiàn)的詞匯。我的這個項目大量使用了Python的scikit-learn包,它包含了一個tf-idf實現(xiàn)。
語法結(jié)構(gòu)
將自然語言處理技術(shù)應(yīng)用到時效性較強的文本時,遇到的主要挑戰(zhàn)之一是事件隨時間發(fā)生變動。比如,川普競選期間的推文多次提到了“Crooked Hillary”和“Lyin’ Ted Cruz”,而川普現(xiàn)在的推文幾乎不提了。我希望刻畫川普推文更基本的形式,因此我使用NLTK將每條推文轉(zhuǎn)換成了詞類表示。
本質(zhì)上,這將每個單詞轉(zhuǎn)換成了它的詞類,也就是它在句子中的角色,例如,作為名詞的“羞辱”和作為動詞的“羞辱”被區(qū)分開來了。
這將短語“I had to fire General Flynn because he lied to the Vice President and the FBI”轉(zhuǎn)換成它的基本詞類表示“PRP VBD TO VB NNP NNP IN PRP VBD TO DT NNP NNP CC DT NNP”。我使用了Penn詞類標(biāo)記(PRP = 人稱代詞,VBD = 動詞過去式,TO = to,VB = 動詞原形,NNP = 單數(shù)形式的專有名詞,等等)。使用之前的tf-idf過程,不過這次忽略一元語法,轉(zhuǎn)而關(guān)注二元語法和三元語法,我可以提取更一般的川普或其助手發(fā)推方式。
最后,我使用Stanford Named Entity Recognition (NER) Tagger(斯坦福命名實體識別)將推文中的所有人名替換為“PERSON”,所有地名替換為“LOCATION”,所有組織替換為“ORGANIZATION”。這是概括推文的又一嘗試。目前為止,這一NER(命名實體識別)過程是處理這些推文時計算開銷最高的過程,如果我重新進(jìn)行這個項目,我可能會認(rèn)真考慮使用一個次優(yōu)的NER工具(不依賴高級的統(tǒng)計學(xué)習(xí)算法的工具),從而顯著提升處理時間。勿謂言之不預(yù)!
模型如何工作

請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達(dá)AI統(tǒng)治的開始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 “AI寒武紀(jì)”爆發(fā)至今,五類新物種登上歷史舞臺
- 4 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 5 國產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計算迎來商業(yè)化突破,但落地仍需時間
- 7 東陽光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開成長空間
- 8 地平線自動駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營收大增主靠小件,虧損繼續(xù)又逢關(guān)稅,能否乘機器人東風(fēng)翻身?