美國總統辯論60年,他們在談論什麼?
- 2020 年 11 月 13 日
- AI
譯者:AI研習社(Champagne Jin)
雙語原文鏈接:In Their Own Words: 60 Years of Presidential Debates
圖源:Shelagh Murphy 於 Unsplash
-
共和黨:失業;商業;自由
-
民主黨:婦女;中產階級;醫保
接着,我使用Scattertext來探究1960年至2020年總統競選辯論中的主題特徵。由於諸多原因,這些辯論也是相當不錯的分析案例。辯論過程中,主持人或小組成員可以選擇當前的熱點話題,也可以選擇更自由的關於領導力的相關話題。候選人在辯論中可就沒法子從自己的支持者那裡得到安慰了,迎接他們的,往往是尚未做出最終決定的選民提出的尖銳問題。此外,時間的限制要求他們務必簡明扼要,因此候選人必須權衡他們的用詞來儘可能地表達主旨。通過每一位候選人的辯論,我們可以看到一個選舉周期中政黨意識形態的縮影。
下方是一張由ScatterText繪製出來的圖,語料由PyTextRank自動標記重要短語後得到。然後將這些短語通過其密集等級頻率和兩黨使用的密集等級頻率差異與圖中的一個點相關聯(這裡有個不錯的例子,方便你理解這句話)。圖片中每個關鍵詞都是一個超鏈接,點擊後你就可以看到兩方具體說了什麼!(譯者說:真心厲害啊,這裡建議訪問原文,感受一下交互)
這副由ScatterText繪製出來的圖像中展示了兩黨辯論中的單詞及其使用頻率,豎軸為民主黨,橫軸是共和黨。其中,民主黨用的最多的短語靠近左上角,共和黨的則靠近右下角。而對角線處的黃色標識詞彙則表示中性詞或是兩黨共有的論點(比如貿易、民主、政治、犯罪)。整張圖片是交互式的,你可以點擊單詞並看到所有發言者包含該單詞的辯詞。交互式圖表可以在這裡訪問:Scattertext Plot Presidential Debates。
於圖中覓特徵
從一個單詞出發,我們可以使用Scattertext可視化的直觀功能深入探討兩黨的思想鴻溝。沿着分數接近零的關鍵短語對角線看,這些對角線上的詞彙代表了雙方都需要解決的關鍵問題或挑戰。而處在對角線上就像站在山谷里,抬頭看着圖中左上角跟右下角兩座大山。
-
搖擺州俄亥俄處在對角線上,而密歇根州則進一步向負軸傾斜,因為共和黨人經常提到它。
-
雙方均以平均頻率提及「預算」和「貿易」等關鍵問題,因此,這些單詞顯示在圖像中心處。
-
在圖像右上角,可以看到雙方都以極高的頻率提到「稅收」以及「就業」。
表示意識形態的單詞距離我們所說的這個「山谷」最遠。例如,「美國工人」一詞僅由民主黨候選人使用。喬治·W·布殊(George W. Bush)主要使用類似「年輕工人」的短語來描述他的社會保障計劃。拿那些具有相同以及相反分值的單詞來對比兩黨黨綱的要義可以說是非常有趣。例如,共和黨人的「北美自由貿易區」與民主黨人的「收入」分值相近,這表明共和黨人討論和批評北美自由貿易區的程度與民主黨候選人關注家庭收入的程度一樣。下面更多的例子表明了雙方的談話要點:
-
民主黨:「人權」,共和黨:「我們的軍隊」
-
民主黨:「減稅」,共和黨:「失業」
-
民主黨:「房產」,共和黨:「債務」
由 Isai Ramos 攝於 Unsplash
在圖片左上角和右下角,您可以看到每個總統候選人對他(她)的對手所說的話。達成共識是一個非常有趣的特徵,例如,巴拉克·奧巴馬(Barack Obama)幾次承認麥凱恩參議員(或「約翰」)是「絕對正確的」,而約翰·麥凱恩(John McCain)也相應地至少承認過一次(當提及美軍在阿富汗的戰略時)。從圖像底部看,辯論逐漸偏向個人化,因為主要由反對者的名字(左下角)來指稱對手,共和黨(民主黨一般不)經常使用的用語由唐納德·特朗普(Donald Trump)的關鍵短語主導:
-
「是的,是的,我們聽說過——我們以前聽過,希拉里。」
-
「你知道為什麼嗎,因為你壓根就是個笨比,喬。47年了,您一事無成。」
-
「對不起,我插一句。因為她作為參議員一直是一場災難。 災難。」
-
「老實說,她的判斷力很差,以至於她永遠都不應該擔任美國總統。 我老實告訴你吧。」
-
「我不認識Beau,不過我認識Hunter。Hunter被趕出了軍隊。他因吸食可卡因而被開除,這可不光彩啊。」(譯者註:這裡的Hunter是指拜登的兒子)
圖源:Maria Oswalt 攝於 Unsplash
隨着候選者立場的不斷推移發展,關注更多實質性主題會變得更加有趣。 墮胎一直是共和黨和民主黨之間黨派分歧的關鍵問題,最近艾米·科尼·巴雷特(Amy Coney Barrett)明確了這一點。卡特(Carter)與福特(Ford)的辯論以及蒙代爾(Mondale)與里根(Reagan)的辯論都提到了這一點。里根和卡特發表了截然相反的聲明,儘管當時他們並未互相辯論。(譯者註:里根屬共和黨,卡特屬民主黨。這裡作者是指兩黨在墮胎問題上的分歧由來已久。)
「我認為墮胎是錯誤的。政府不應採取任何措施鼓勵墮胎。不過我不贊成就此問題去進行憲法修正……我個人不認為聯邦政府應該資助墮胎,但是我——我劃清界限並且不支持在這一問題上進行憲法修正。——吉米·卡特
「有關墮胎,我感覺這是——在Mondale先生政教結合的講話中,有一些相關表述,不過並沒有具體指明。對我來說,墮胎不是宗教問題,而是憲法問題。」——羅納德·里根
里根指出,這個問題與憲法有關,與宗教無關。而卡特的回應則有些混亂。他明確指出,不應當有禁止墮胎的修正案,但政府不應制定資助墮胎的計劃。喬治·W·布殊(George W. Bush)的回應暗示,這個問題是社會建設的問題,這與里根(Reagan)的回應中提及的「憲法問題」密切相關 (譯者註:布殊與里根均屬共和黨,因此政見相近)。希拉里·克林頓(Hillary Clinton)和邁克爾·杜卡基斯(Michael Dukakis)明確指出,就婦女的選擇權而言,這是一個問題。阿爾·戈爾(Al Gore)和約翰·麥凱恩(John McCain)在最高法院法官的決定性測試中談到了羅訴韋德案,並且一致認為對羅訴韋德案的支持是任命甚至哪怕提名的關鍵指標。
(譯者註:羅訴韋德案是因為一個化名為簡·羅的女士,她十多歲就生了孩子,沒多久就離婚了,孩子五歲就給父母去帶了,她自己經濟條件也不怎麼好。不巧的是,這時候她又意外懷孕,自己都養不活的她就想去墮胎,可是她所在的德州是不允許墮胎的,除非在關乎孕婦生命的情況下。在兩名女權主義者的鼓勵和幫助下她提出了訴訟,這起訴訟的檢察官叫韋德,這也是「羅訴韋德案」這個名字的來源。資料源)
「我認為推動一種生活文化很重要。我認為一個包容的社會是其中每個人都被在乎、被關注的社會。我相信在一個理想的世界中,每個孩子都受到法律的保護,每個孩子來到這個世界都會受到人們的熱烈歡迎。」——喬治·W·布殊
「當那些嚴格的憲法解釋者使用的短語和Scalia以及Thomas之類的姓氏被作為誰會被任命的標準時,我想說這都是無稽之談。並且,每個人都要明白,那就是州長絕不可能任命那些會推翻羅訴韋德案的人。這點對我來說非常明確。我任命的官員都將認可羅訴韋德案的判決結果。」——阿爾·戈爾
「我會考慮任何有資質的人。我不認為支持羅訴韋德案的某些人是合格的提名者。」——約翰·麥凱恩
巴拉克•奧巴馬(Barack Obama)承認,雙方在防止意外懷孕方面存在分歧,但不排除存在共同觀點的潛在可能。
「這個問題——聽着,它使我們分道揚鑣。在某些方面,的確,要調和這兩種觀點可能很困難……『我們應該適當地教育青年一代,傳達出性的神聖,規勸他們不應該輕易地與人發生關係,以此來防止意外懷孕。同時確保在親生父母難以撫養子女的情況下,可以將子女交由他人收養,並幫助那些願意撫養子女的單身母親。』這些都是今年首次在民主黨黨綱中提及的內容,我認為這是我們可以找到的共同基點,……」——巴拉克·奧巴馬
從ScatterText的視角去品讀總統大選辯論,可以看到其中重要的政治話題隨着時間流逝而演變發展。這啟發了我進一步探究總統辯論的主題特徵,分析辯論主題隨着時間如何變化,並使用針對文本分類訓練的BERT模型根據候選人的辯詞來進行意識形態排名。
分析工具
-
獲取數據的第一步是爬取一個包含辯論文字稿的網站。我選擇的是總統辯論委員會這個網站,它的網站頁面很容易解析。不過這個網站並沒有懂王川普和瞌睡王拜登的辯論稿,因此我轉而求助於《今日美國》。我使用的爬取工具是Beautiful Soup 4(鏈接見最後)。具體代碼參見這個鏈接。
-
Scikit learn庫中的非負矩陣分解用於從主持人/專家組成員的相關文本中提取關鍵詞。PyTextRank庫用於為最突出的主題短語進行權重評估。
-
我用SpaCy庫來匹配關鍵詞對應的主題以及候選人的具體回應。關鍵詞和主題的確定參見這裡。
-
文本分類模型BERT是在谷歌的CoLab GPU上訓練得到的,其末端是一個分類層,文末給出了Notebook鏈接。
-
可視化結果和輸出的圖表都是用Tableau製作得到的。
挖掘永不過時的話題
專家組成員以及主持人的存在使得找到每一次辯論的主題變得易如反掌。分析這些主題唯一的難點在於,有些術語的含義已然判若雲泥。舉例來說,「氣候變化」如今是個普通短語,但是在2000年總統辯論中,阿爾·戈爾卻用其特指「全球變暖」,所以我乾脆對每一次的辯論提取關鍵詞,然後將其按主題分組。在這些辯論中,一些主題總是反覆被觸及,諸如:稅收,環境和氣候變化,經濟,聯邦支出,醫療保健,槍支管制,移民,國防,石油與石油工業,公共教育,種族與歧視以及社會福利。
通過給每一場辯論中主持人和專家組成員的語句建立主題模型,並將其中的關鍵詞進行分組,我最終確定了這些主題詞彙。下面是一個奧巴馬和羅姆尼辯論主題詞的示例:
gas prices, specific examples, financial problems, the difference, american jobs, productive members, vast array, clear choice, quick response, red lines, other things, everyday living, your energy secretary, your energy, tax revenue, the biggest, the biggest misperception, own plan, his own plan, lower gas prices |
這裡,我使用PyTextRank簡化全文,並且只保留權重分數大於0.1的短語。主題建模很混亂,因為文本非常稀疏,而辯論主題的設計往往涵蓋了很多領域。相鄰主題之間的相關度很低,但突出的文字顯示了有關經濟和油價的討論的廣泛度。我使用SpaCy匹配模式將這些詞彙編碼為主題。根據主持人所用的詞彙,下面列出了與「社會福利」主題相關的匹配模式。
matcher.add(「Social Welfare」,None,[{「LOWER」:」social」},{「LOWER」:」security」}]) matcher.add(「Social Welfare」,None,[{「LOWER」:」housing」},{「LOWER」:」subsidies」}]) matcher.add(「Social Welfare」,None,[{「LOWER」:」minimum」},{「LOWER」:」wage」}]) matcher.add(「Social Welfare」,None,[{「LOWER」:」prevailing」},{「LOWER」:」wages」}]) matcher.add(「Social Welfare」,None,[{「LOWER」:」abnormal」},{「LOWER」:」poverty」}]) |
所有總統辯論的話題佔比均除以了對應候選人總數的佔比
得到這些主題關鍵詞後,我遍歷了所有辯論中的總統候選人回應,並計算了每個主題中匹配詞出現的頻率。從上圖可以明顯看出,多年來,經濟、稅收和聯邦支出等廣泛的國內主題構成了候選人回應的近50%。這些主題進一步催生了諸多有關國內政策的辯論。第二大主題是醫療保健(上圖中綠色部分),佔比13.8%。公共教育是討論涉及最少的話題,其百分比低於0.86%。
為了衡量每場辯論中實質性內容(而不是人身攻擊或對吵)的數量,我查看了候選人的回應與主題詞相匹配的頻率。當然了,匹配率肯定不會達到100%,因為選擇的這些關鍵字不可能涵蓋所有可能的辯論問題。但是,看看匹配程度對我們衡量辯論的質量多少還是有點用處的。
主題關鍵詞與候選人回應相匹配的效率,可以視作辯論含有多少實質性內容的指標(譯者註:可以該效率理解為匹配的頻次,上圖展示了美式民主辯論的式微,實質性討論總體在不斷減少)
與之後的辯論相比,早期的總統辯論包含更多的主題詞。1980年卡特與里根之間的辯論中回應的匹配度達到峰值(66%)。1980年至2012年之後的辯論有接近40%的平均值,範圍從33%到46%。最低匹配度的辯論則來自於2016年克林頓-特朗普和2020年特朗普-拜登。(譯者註:懂王的辯論導致曲線在2016年斷崖式下降)
比較最高和最低匹配度的辯論可以看出辯論的焦點有多寬或多窄。1980年的辯論在有關石油行業、整體經濟、社會福利、氣候變化以及種族/歧視的論題上進行了很好的討論。衛生保健(4%)和國防(7.2%)的覆蓋範圍較小。而最近的辯論中,經濟和醫療保健是討論的很大一部分(COVID-19可能會被着重強調)。在1980年,種族歧視和黑人失業這類種族相關的關鍵詞僅佔8%。而在2020年,這一比例上升為14%(在已有的辯論中佔比最高),而匹配的關鍵詞列表是:白人至上主義者、民權、黑人社區、西班牙裔和種族主義者。
BERT文本意識形態分類
BERT(Bidirectional Encoder Representations from Transformers)是一種用於自然語言處理的預訓練機器學習技術。 BERT預訓練模型可以與分類層組合以進行文本分類。BERT模型的關鍵創新在於它們具有雙向編碼器識別上下文的能力,而不僅是簡單的左右/右左單詞序列。這使得訓練過程中模型可以識別單詞的上下文信息,而不是僅將單詞串在一起的順序識別出來。
BERT是一個能夠對由數百個符號構成的長句進行文本分類的強大工具。句子的符號序列越長,訓練模型所需的資源就越多。我將總統候選人的回應語句析構成長度為192個符號的語塊。下面給出了經過預訓練的BERT模型,可從TensorFlowHub下載(譯者註:所謂「符號」,英文為token,是指句子中的單詞和標點):
# More details here: bert_layer=hub.KerasLayer(『 vocab_file=bert_layer.resolved_object.vocab_file.asset_path.numpy() do_lower_case=bert_layer.resolved_object.do_lower_case.numpy()#### is the Bert layer case sensitive? tokenizer=tokenization.FullTokenizer(vocab_file,do_lower_case) |
下面的代碼中,我造了一個TensorFlow輸入流,從而將輸入文本轉換為批輸入以進行多線程訓練和測試。最後一步是在BERT層之後添加一個分類器模型:
def create_model(): input_word_ids = tf.keras.layers.Input(shape=(max_tok_sequence,), dtype=tf.int32,name=」input_word_ids」) input_mask = tf.keras.layers.Input(shape=(max_tok_sequence,), dtype=tf.int32,name=」input_mask」) input_type_ids = tf.keras.layers.Input(shape=(max_tok_sequence,), dtype=tf.int32,name=」input_type_ids」) pooled_output, sequence_output = bert_layer([input_word_ids, input_mask, input_type_ids]) |
(譯者註:這裡就是在BERT的尾部增加了一個Dropout層與全連接層,全連接層輸出一個值,通過Sigmoid函數確保輸出在[0, 1]區間內)
手頭已有19位候選人,我將他們分別標記為共和黨(1)和民主黨(0)。 上述模型經過訓練,可以對每一場辯論回應進行分類。我僅將與關鍵詞匹配的數據用於訓練和驗證。而那些與關鍵詞不匹配的回應文本則用於對這些候選人進行意識形態分類:
分類器的輸出在0到1之間,0與1分別表示民主黨與共和黨意識形態
每位候選人將根據其辯論中的回應得到一個意識形態分類結果(這些回應的語句被劃分為多個符號長度為192的語塊)。分類結果的中位數表明了他們對自己所在政黨的支持程度。
分類結果的中位數可以反映出候選人的發言與其所在黨派黨綱的契合度
得分顯示,邁克爾·杜卡基斯(Michael Dukakis),吉米·卡特(Jimmy Carter),比爾·克林頓(Bill Clinton)和約翰·肯尼迪(John F. Kennedy)在民主黨候選人中排名最高,其中位數得分接近零(0表示民主黨意識形態分類結果)。尼克松,里根和麥凱恩的中位數得分均在0.95以上,與共和黨最接近。傑拉爾德·福特(Gerald Ford,屬共和黨)有點反常,因為根據他的辯論回應,他倒更像是個民主黨候選人,所以我就瞅了瞅那些導致他被模型分類為民主黨意識形態的相關回應語句。傑拉爾德·福特的回應包括大赦逃避兵役者和軍隊逃兵、解決世界饑荒問題,他還多次提及為了中東和平所需遵守的「道德原則」和「道德標準」。
(譯者註:傑拉爾德·福特是美國歷史上唯一一位未經選舉就當上總統之人,水門事件致使時任總統尼克松辭職,副總統福特就這樣當上了總統,不過只幹了兩年,就在連任競選中敗給了民主黨候選人卡特)
歷次辯論中與自己所在黨派的意識形態最接近的來自於奧巴馬有關公共教育和大學入學話題的相關回應,這是他與麥凱恩的第三次總統辯論中涉及到的。如果只看共和黨候選人的話,則由川普拔得頭籌,其與希拉里·克林頓的第三次辯論淋漓盡致地展現了川普作為一個共和黨人的風采。他談到了他計劃如何重新談判貿易協議、北約如何「買單」、及他將如何終止北美自由貿易協定。總的來說,在一些較長的發言中更有可能得到與意識形態有較高關係的回應語句,因為長句中有更大概率包含更多的黨綱關鍵短語。巴拉克·奧巴馬的回應包括「當地學區」、「公立學校」和「大學入學和可負擔性」。這與之前在Scattertext圖中看到的結果一致,「教育」這個詞在民主黨中得分很高。在唐納德·特朗普的聲明中,幾個得分較高的共和黨短語被反覆強調:「北美自由貿易協定」,「北約」,「國債」,「貿易協定」和減稅。
當然……還有諷刺和預示
你大可把這一章節看作是總統大選中的人類迷惑行為。但是再仔細一想,有些地方的確不能讓人完全無視。我發現針對傑拉爾德·福特的這個問題非常尖銳:
梅納德先生提問:「總統先生,你兩次差點成為刺客的槍下亡魂。可是,你仍然反對實質性的槍支管控。現在舉國約有4千萬槍支,而且這個數字還在以每年2.5%的比率不斷增長。令人感到可悲的是,這些槍支以自衛的名義被購買,卻最終用於對付親戚或者朋友。有鑒於此,為什麼你仍然反對實質性槍支管制?」
在喬·拜登和唐納德·特朗普最近的辯論中,一個非常具有挑釁性的言論讓許多人無比震驚。特朗普會接受選舉結果(如果輸了的話)並願意和平過渡權力嗎?在與希拉里·克林頓的第一次總統辯論中,他的回答倒是很明確:
「我的回答是,要是她贏了,我絕對會支持她的。」——川普
在與希拉里·克林頓的第三場總統辯論中,克里斯·華萊士再次提出了這個問題,他卻表示他的競選搭檔和女兒仍然會支持:
華萊士問道:「你最近一次在集會上警告說,這次選舉被操縱了,希拉里·克林頓正從你那裡竊取選舉成果。你的競選夥伴彭斯州長周日承諾,他,包括你在內——這是他的原話——『將絕對接受此次選舉的結果』。今天你女兒伊萬卡說了同樣的話。我想在今晚這個辯論台上再問你一次:你是否能夠做出同樣的承諾,你絕對絕對——先生,你絕對會接受此次選舉的最終結果嗎?」
幾乎像是2020年一個可怕的預兆似的,特朗普回答說
「我要跟你說,我到時候就會告訴你。要保持懸念,好不好?」——川普
這更像是一個類似於「萬聖節快樂啊」之類的回答,而不是一個令人感到踏實的「選舉日快樂」,所以我為該份代碼總結一些未來的發展方向。
-
文本二分類可以擴展為多分類,比如將辯論歸類至一系列主題中。
-
最高法院聽證會是否可以採用類似的路子呢?
-
他們是否言行一致呢?將辯論和演講中確定的主題詞與選舉後的投票與政策比較一下看看。
代碼
來自於總統辯論委員會的辯論稿
圖表鏈接
參考資料
Jason S. Kessler 「Scattertext: a Browser-Based Tool for Visualizing how Corpora Differ」 arXiv:1703.00565
Jason S. Kessler 「Visualizing thousands of phrases with Scattertext, PyTextRank and Phrasemachine」 Medium article
Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova 「BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding」 arXiv:1810.04805
AI研習社是AI學術青年和AI開發者技術交流的在線社區。我們與高校、學術機構和產業界合作,通過提供學習、實戰和求職服務,為AI學術青年和開發者的交流互助和職業發展打造一站式平台,致力成為中國最大的科技創新人才聚集地。
如果,你也是位熱愛分享的AI愛好者。歡迎與譯站一起,學習新知,分享成長。