芝加哥為解決警察瀆職官司在兩年中花費了納稅人多少錢?答案是5300萬美元。本着對公共資金負責的目的,《芝加哥記者報》在2016年發表了題為《為瀆職買單》的系列報道。他們的團隊整理了數百份法院文件信息,調查每筆錢到底是怎麼花的,花在了哪位警員身上。不僅如此,為了方便公眾獲得相關信息,他們與非營利新聞機構INN(Institute for Nonprofit News)合作,建立了一個網頁應用程序來呈現數據。在這個過程中,他們積累了更有效處理大量信息的經驗。以下,深度網為你編譯《芝加哥記者報》數據編輯與INN設計主管的分享。
研究
這個想法源於2012年的一份調查,該調查着眼於芝加哥警察捲入的多起官司。我們認為,通過公布警方接收的投訴、達成庭外和解的案子數量以及被告情況,可以幫助公眾監督警察和民選官員,讓他們對警方瀆職行為負責。
對於《芝加哥記者報》而言,這是一個很合適的項目,畢竟自1972年起,這份報紙就採用數據驅動的方式,調查芝加哥的種族和貧窮問題。我們懷疑警方瀆職情況在黑人或拉丁裔為多數的社區中尤其突出,後來通過數據證實了這一猜測。
在研究的早期階段,我們發現查找案件並非難事。通過芝加哥法律部門發布的案件裁決和庭外和解所涉及的賠款清單,我們找到了2012至2015年間關於警察瀆職的官司,最後篩選出655件官司,可以用來查找投訴信和其他文件。
我們專門僱傭了三名研究員來通讀每一宗官司的材料,再將關鍵信息按照以下四個類別製成表格:案件、警察、受害者、款項。
這個項目展示了數據庫規範化的好處。由於每起訴訟可以有多個被告,涉及多名官員和數筆款項,我們將各類數據劃分在不同的表格中,並建立鏈接,來避免錄入冗餘信息。這個方法不僅為我們省下來大量時間,而且保證了一致性和準確性。
最後,我們得找出投訴所提及的具體警官姓名,從而查找到他們涉及的案件和相關賠款。這一步很棘手,因為法律投訴中的姓名常常要麼不完整,要麼拼錯,並且不一定會有警察編號。
《芝加哥記者報》本來可以利用信息雜亂的被告人名單獲得一份規範化的警員名單,如果你曾經使用過數據清洗工具,比如說OpenRefine的話,就知道該如何操作。但是因為以下種種原因我們並未這麼做:我們需要切斷姓、名、中間名或其組合;警察在其職業生涯中可能有許多個編號;我們想要把服役日期也納入考察。
所以我們採取了另外一種方法:《芝加哥記者報》根據《美國資訊自由法案》向芝加哥警察局索取了幾十年來完整的警員名單。我們將數據上傳到“Django對象關係行數據映射組件(object-relational mapper)”中,並編寫算法,根據被告的姓名、編號以及服役日期等信息匹配涉案警員。如果算法可以高度確定性地鎖定被告人,那麼它就為記錄警察信息的表格建立起外鍵關係。
我們能夠自動完成85%的匹配,並建立起一個簡潔的網頁讓人們去了解餘下的信息。我們沒有更改任何源數據,並仔細審核每一次數據庫更新,這樣我們就可以返回並手動驗證我們建立的每個關係。
我們把這一份警察匹配表上傳到了GitHub網站上,以便其他記者或者研究員查看。
開發過程
當《芝加哥記者報》的團隊在努力將警察與具體官司相匹配、最終確定數據庫的結構時,非營利新聞研究所(INN)的技術團隊則忙於構建一個獨立的新聞應用程序,將數據公開。
我們開發的應用程序有兩個部分。一部分是介紹性的敘述頁面,展示記者拍攝的照片和調查的主要發現;另一部分則是應用程序的主要功能,允許用戶過濾655條訴訟,搜索個別警察的名字或編號。
最初,我們將注意力放在更加複雜的獨立應用軟件上,而且我們在設計的時候還設立了幾個目標。我們希望:
1.顯示市財政為處理警察瀆職案件所支付的費用。
2.使用戶能夠簡單地識別涉案人員,以及每宗案件的指控罪名。
3.允許人們輕鬆地運用這項程序,並分享信息。
4.確保更新數據的過程簡單直接。
我們與記者報團隊合作完成線框圖,在進行視覺設計期間,我們開始為應用程序開發自己的JSON模式和後端進程。
我們使用Tarbell(《芝加哥論壇報》靜態網站生成器)進行快速啟動及運行。通過利用簡單的谷歌表格整合功能,Tarbell提供了簡易的內容管理系統,並且有一個內置的發布工作流程,將準備好的文件上傳到Amazon S3(“亞馬遜簡易儲存服務”)。我們決定用Backbone作為前端的數據綁定框架。
在開發過程中還要解決一些有趣的技術問題。第一個是,我們希望用戶能夠通過社區位置而不是特定地址過濾訴訟案件,以便他們識別在住址或工作地點附近發生的警察瀆職事件。現有數據沒有一個“社區”字段,因此項目的主要開發人員Ryan Nagle根據《芝加哥先驅報》的Django邊界服務編寫了一個自定義腳本,將個人地址與芝加哥市地理信息系統中的社區和區域相匹配。
另一個具有挑戰性的部分是具有Mad-Lib風格搜索的結果區域(譯註:Mad-Libs是一種計算機算法,其方法是在預先設計好的句子架構中填入名詞、動詞等來產生有意義的內容),它需要一個複雜的Underscore.js模板,以確保每個搜索選擇組合的語法和標點符號都是正確的。
我們開始通過寫句子來開發這個功能。第一步是造一個基本句子,使其能描述每個可能結果:
Example: “A case resulted from an incident.”
下一步是往這個句子中添加一個用戶可以選擇的所有可能字段:鄰域、主因、賠款金額和一些標籤。
使用上面的范句,並使字段保持它們在用戶界面(UI)的順序,我們得到的第一個完整句子是:
“One case in South Deering resulted from an incident of excessive force that cost Chicago $0-$3000 and was tagged traffic stop and false report.”
(譯:“發生在South Deering(譯註:芝加哥市最大社區)的一個案件涉及執法暴力,芝加哥政府為此花了0到3000美元。案件被標記為交通中斷和虛假報道。”)
這樣的句子不清楚,難以理解,且不夠靈活。我們需要重新排列字段,以便利用標籤和開支金額來描述案例,用主要原因和所涉社區來描述事件。我們還必須考慮不同數量的結果,並相應地調整措辭。在我們對完整句子結構的靈活性感到滿意後,我們開始一次刪除一個選項,並調整模板中的邏輯,使句子格式說得通。
當然會有一個更加程序化的方法來處理這個問題,但在上述事例中,我們主要依靠人工測試來確保句子結構在儘可能多的案例中都適用。
發布
2016年6月,《芝加哥記者報》發表了《為瀆職買單》的完整系列報道,同時我們仍在繼續收集芝加哥警察瀆職行為的數據。我們希望這個應用程序可以成為芝加哥民眾、記者、項目支持者乃至所有對治安管理問題感興趣人群的一個重要信源。
編譯/梁晨昱
編輯/Ivan Zhai,梁思然
相關閱讀:
本文首刊於Source網站,深度網獲授權轉載。
Matt Kiefer是《芝加哥記者報》(The Chicago Reporter)的數據編輯,該非營利性報紙“自1972起調查種族和貧窮議題”。他之前是Better Government Association的《美國資訊自由法》研究員。該機構同樣位於芝加哥,在使用調查技術問責領域表現突出。
Julia Smith是非營利新聞機構INN(Institute for Nonprofit News)的設計主管。她負責為本機構的成員組織制定采編項目,並幫助新聞網站搭建與維護開源博客WordPress框架下的Largo系統。在此之前,她曾獲2015年Knight-Mozilla研究基金,在調查性報道中心(Center for Investigative Reporting)任研究員。