大數據文摘出品
來源:medium
編譯:朱科錦
時值七夕,本文作者Darien Mitchell-Tontar想用一個特殊的方式度過,他用自然語言處理(NLP)分析了二戰期間他的祖父母之間的往來信件,給了自己一次重新認識祖父母的機會。文摘菌在感嘆還能有這種操作的同時,也被撒了滿滿一口狗糧~
不信你就繼續看下去~
祖父在我五歲時就去世了,我對他的印象很模糊,除了封面圖這張模糊的照片,這是他在美國陸軍擔任醫療官時的留影。
直到幾年前,我的姑姑打出了300多封我的祖父Silvio Tontar在第二次世界大戰期間寫給祖母Annette的信。我也因此獲得了一次重新認識我祖父的機會。剛好我正在學習自然語言處理,我想看看我是否可以使用文本數據來感受他的情況。
比如他什麼時候開心(如果他有開心的時刻的話)?他什麼時候不高興?隨著時間的流逝,他的語言習慣如何變化?我的目標是使用數據科學更輕鬆地回答這些問題,而不需要一遍又一遍地重複閱讀這些信。
我的祖父母,這張照片是在我祖父被派往國外之前拍攝的。
數據
所有數據內容是我的祖父在1942年5月13日至1945年11月10日擔任美國陸軍醫療官期間寫的310封信。我的祖父母於1942年2月結婚。祖父在西南太平洋地區,主要是澳大利亞,紐幾內亞,菲律賓,度過了三年半的軍旅時光。在他們投降後,祖父離開他海外生活的最後一站,日本,返回了家鄉。
在這段時間裡,我的祖父從未忘記過對他最重要的事情:我的祖母。我很佩服他給她寫信的堅持,以及他一直以來積極的生活態度(更多內容見下文)。
絕大多數信件的書寫時間間隔很短,最長只有20天。
如你可見,他在整個戰爭期間都設法以固定周期寫信。可以想像,寫信對他來說是很治癒的,更何況信是他與妻子和家裡其他人聯繫的唯一方式。
情緒分析
在清除文本數據之前,我想從原始文本中獲取儘可能多的信息。情緒分析法就可以實現這個目標。我想看看我是否可以用他的話來理解他在戰爭中的感受。為此,我使用了VADER情緒分析法,該方法給每一小段文字打出四個得分指標。正極性,中性和負極性分別代表文本中積極,中性和負面情緒的比例。而總分是用于衡量文本情感的歸一化加權單個度量:
1.積極情緒:總分 > = 0.05
2.中性情緒:(總分 > -0.05)和(總分 <0.05)
3.負面情緒:總分 <= -0.05
首先,我製作了一張積極情緒和負面情緒隨著時間變化的圖。
每封信中使用的正面詞彙和負面詞彙的百分比
我的祖父在戰爭期間情緒平靜地令人驚訝。儘管情感分數之間的差距在戰爭末期開始逐漸減少,但他的語言始終更加積極。儘管他可能已經受夠了,並且很想回家。
看完這張圖後,我對峰值的數據很感興趣。我按正極性等級對信件進行排序,發現最積極的信是類似下文這樣的短明信片:
1944年5月5日,紐幾內亞
親愛的,
一切都很好。我感覺很棒。我遊了泳還曬了日光浴。
愛你的,
Silvio
這封簡訊讓我覺得很溫暖,正極性得分高也就不足為奇了。
我決定按總分排序來看看是否可以找到更長的信。這是他得分最高的信的節選。寫於1942年9月6日,澳大利亞:
…我感覺事情要發生改變了。讓我告訴你一件事,我沒有剛離開家時那樣悲觀了。親愛的,你好嗎?當你收到這封信時,熱天氣將會過去,你會享受秋天的。我正在朝著春天和炎熱的天氣前進。親愛的,不用擔心我。我感覺很好,胃口好,吃得很好。如果我有你在這裡陪我,我會很高興的…
這封信相當樂觀,而且寫於他出國初期。從情感分析入手,我可以閱讀更多信件並從中看到共同的主題,從而提高自己的專業知識。
即使我的祖父情緒低落,他仍然保持樂觀。這是他負面得分最高的一封信,寫於1944年7月7日(在比雅克戰役期間),南太平洋:
…我毫不誇張地說,在距我十碼的半徑範圍內,有十二枚以上的炮彈爆炸,其中一些炮彈離我很近,以至於我身上沾滿了灰塵。機關槍和步槍子彈在離我只有幾英尺遠的地方繼續發出可怕的嘯叫聲,有時他們離我只有幾英寸遠。有一天,一群子彈就在我頭皮邊擦過。我一整天都在被襲擊,兩個小時內就有兩次襲擊,他們不斷地將彈丸降落到我附近,我能毫髮無傷的活下來真的是個奇蹟。我真的很幸運…
那段摘錄甚至不是最糟糕的部分。在其他時候,他談論自己是如何失去希望,對戰爭失去信心並質疑戰爭的目的。但是,在信的結尾卻恢復了樂觀。和上文來自同一封信:
…我現在吃的很好。我有水喝。我每天可以洗個澡。我之前可是好幾個星期沒有洗臉和刮鬍子!聞起來就像只臭鼬!這是一個悲傷的故事。但這就是生活。我現在感覺很好,非常非常愛你。我現在甚至有時間做夢,做長長的白日夢,夢到以後我回家見你的場景。哦對了,我愛你。
我是你的,
Silvio
在了解了這麼多信件的信息以後,我可以進行更深入的分析了。
探索性數據分析
自然語言處理的一個常見起點是從語料庫中刪除最常見的單詞。這是因為它們沒有為你提供有關每個文檔的最有價值的信息。我想知道是什麼使每封信或信集合與眾不同,以便最終從中提取含義。
除去最常見的單詞和其他一些通用的單詞之後,我製作了單詞序列,追蹤他在信中使用的語言並將其與正極性相匹配:
按季度(每三個月)收集的信函中最常見的單詞
我喜歡這種視覺效果,它本身就是一個故事。它顯示了他整個服役過程中的共同主題。你可以看到他的季節性問候,也可以看到他在戰爭開始時也許更放鬆一些,可以在他的感覺和他所使用的詞之間建立聯繫。還有,後期的信件好像反映出祖父預感到了戰爭將要結束。
一個有趣的歷史事實是,上面提到的比雅克戰役發生在1944年5月27日至1944年6月22日之間,而我祖父的部隊在這場戰鬥中受到了沉重打擊。你可以看到他的正極性從1944年6月開始下降。
這是一個非常酷的視覺效果,它向我們介紹了很多有關信件的內容,接下來,我想更深入地研究並嘗試提取出他的作品中出現的一些主要的重複出現的主題。
主題建模
主題建模是一種無監督的機器學習算法,可使我們將特徵從數千個(在本例中為數千個單詞)減少到少於十個。然後,我們可以查看每個「主題」中最突出的詞並進行解釋,因此這種方法被命名為主題建模。這是一種無監督的算法,因為文本文檔在開始時就沒有被分配到主題標籤。這與我上一個項目相反,在上一個項目中,每個美國縣都被標記為「有風險」或「沒有風險」,我訓練了帶有這些標籤的模型。在這裡,我們基本上是根據我們的分析推斷出自己的標籤。
幾乎關於所有文本數據都正確的一件事是,文本非常混亂。我採取的一些清理數據的步驟是:
1、預處理:刪除標點符號,將所有單詞都變為小寫,刪除不重要的單詞(在我的情況下,刪除位置名稱和祖父母的姓名,因為幾乎每封信都提到了這些名稱)。
2、合理化:將詞的變形形式組合在一起,以便可以將它們作為單個項目進行分析(例如,「行走」和「走路」對於我們而言基本上是相同的)。
3、過濾字母,使它們僅由名詞和形容詞組成。在運行初始模型後,這使我能夠提取更多含義。
清除文本後,我幾乎已經準備好去擬合模型了,但是這裡的主要問題是計算機傾向於使用數字。
使用術語,頻率-逆文檔頻率或TF-IDF,我們可以將文本語料庫轉換為數據框,其中每一行是一個文檔(在這種情況下為信件),每一列是一個單詞。這些條目是TF-IDF值,我們可以將它們視為一個單詞在一封信中的重要性的權重。TF-IDF的優點在於,它還考慮了單詞在所有字母中出現的次數,這樣做可以降低這些單詞的重要性,因為它們對於確定獨特,抽象的主題並貢獻沒有多大價值。
最後進入令人興奮的部分。我使用非負矩陣分解(NMF)對字母進行聚類,結果如下:
主題1:
戰爭,醫院,期待,醫療,海外,結束,新聞,任務,軍官,變化
主題2:
聖誕節,圖片,早上,去,晚餐,冷,高爾夫,玩,人,溫暖
主題3:
聯合電報,西聯電報,西聯電報,聯合,通塔,電報,舊金山
主題4:
日本,島嶼,本土,菲律賓,雨,菲律賓島,敵人,戰役,濕,登陸
主題5:
船,海,陸,颱風,平靜,今晚,庫爾,早晨,海灣,島嶼
主題6:
生日,妻子,心愛的人,快樂,心愛的妻子,記得,感覺,能夠
我鼓勵你自己考慮這些主題,看看是否同意我對以下主題的解釋:
主題1:職責
主題2:舒適度/規範化
主題3:金錢(他經常寄錢回家)
主題4:內在衝突/鬥爭
主題5:海上旅行
主題6:浪漫
進一步研究這些主題的一種好方法是查看它們在信件中的出現頻率如何隨著時間變化。
信件主題根據時間的變化。信按照季度分組。
如你所見,旅行的主題在服役開始和結束時都比較普遍。在他服役開始之初,諸如「值班」和「浪漫」之類的話題更為常見,而「內在衝突/鬥爭」和「職責」之類的話題在尾聲更常見。
讓我們再看一些信的摘錄,這些都是最能體現每個主題的片段(我省去了「金錢」和「海上旅行」)。
主題1:值班,來自1945年7月31日
…我已經在海外呆了很長時間了,我得到了軍功。我想帶著榮譽回家,帶著清醒的頭腦回家。另一種方式是等待和期盼。我很健康,自從參軍以來就沒有浪費一天,我可以扮演「精神病」或「瘋子」的角色來逃脫軍役。我不屑這種做法……
主題2:舒適度/規範化, 1942年10月19日
…我打了高爾夫球,但我打得很糟糕。你能想像我和一個曾經的冠軍一起玩嗎?我在高爾夫球場遇見了他。他邀請我加入他的小組。保羅不能來,他很忙。我不僅和他打高爾夫球,他還邀請我去他家吃飯,然後睡覺……
主題4:內在鬥爭/衝突,1945年4月9日
…我乘著一艘顛簸的小船航行,我一直不停的嘔吐直到肝臟排出的黃色膽汁也從我的嘴中吐出來。我好慘…
…我聽到一些子彈在空中飛來,但沒有一個落在我附近…
…地形是另一個麻煩。這是個崎嶇不平的山脈。我不得不在陡峭的山上上下爬。我不得不在河流和小溪深處涉水。我被雨淋濕了,還不止一個晚上下半身濕著在雨中睡覺…
…我見過許多菲律賓人,聽到他們在日本統治下的可怕經歷,人民衣衫襤褸…
這封信很有趣,因為它涉及到他所面對的幾種不同類型的困難。疾病,危險,以及他來信中常提到的原住民所遭受的待遇。
主題6:浪漫, 1943年4月18日
…你還記得我從行駛中的汽車向你招手嗎?你站在窗戶旁邊,我可以看到你的眼淚。整整一年過去了,看看我現在的位置,我在離你很遠的叢林中。我問自己「他們會讓我遠離我心愛的妻子多長時間啊」,一年時間太長了…
我知道我在挑選我的文章,但是這些主題使我更容易挑選信件,而且我認為他們在按「主題」解析信件方面做得很好。
我和祖父
結語
在開始這個項目之前,我知道祖父是個偉大的人,但是現在我終於明白了為什麼。我的祖父冒著生命危險,忍受了三年半的苦難,以保護數百萬他不認識的人安全。這就是我撰寫此博客時我們的醫護人員為我們所有人所做的事情。這些人的特殊之處超出了我的表達能力範圍,為此,我認為以祖父的話而不是我的話作為結論是合適的,因為他是英雄,但卻不自知。我們可以從他和他這樣的人那裡學到很多東西。
1943年4月18日(與上文來自同一封信)
…很高興知道當我從死亡中救出一個人時,我會讓一個我從未見過且永遠不會見的人變得非常高興。這種感覺沒有錢可以買到。它可以部分彌補醫生所經歷的苦難和不適。我很高興並願意盡我所能。我希望他們可以考慮一下讓我休息一下,讓我儘快回家,與世界上最好的女士,我心愛的妻子在一起…
吃完了這篇來自上個世紀的「狗糧」,是不是也想趕緊找到自己的「靈魂伴侶」?那麼,什麼樣的特質會影響你的戀愛能力?
這裡有一份評估指數幫你測一測。
數據來自哥倫比亞大學的一份研究,整個實驗的數據收集於一個線下快速相親的實驗,參與者被要求參加多輪與異性進行的快速相親,每輪相親持續4分鐘,在4分鐘結束後,參與者雙方會被詢問是否願意與他們的對象再見面。只有當雙方都回答了「是」的時候,這次相親才算是配對成功。
在8000多次試驗後,研究組總結了一份指標,通過幾個簡單的特徵來評估你的「一見鍾情指數」。
正式開始實驗之前,我們需要尋找一個簡單好用方便上手的工具,這裡推薦一波阿里雲的PAI-DSW探索者版,它對於個人開發者是免費的,登陸即可使用,還有神秘獎品贈送哦。
接下來,我們就通過這個工具來一起探索人性的奧秘,戳海報二維碼,走進兩性關係的神秘空間
相關報道:
https://medium.com/@darien.pmt/metis-weeks-6-8-569f9aa752e2
文章來源: https://twgreatdaily.com/zh-hk/icdfJnQBURTf-Dn5-7iV.html