在那張地圖上,他們相距并不遙遠
在那張地圖上,他們相距并不遙遠
7月25日15時,河南暴雨求助信息網(wǎng)站的頁面截圖。
當?shù)貢r間7月22日晚上,李天石團隊開第一次會議。
當?shù)貢r間7月22日7時,團隊成員在刪除“粉絲”“飯圈”相關(guān)的條目。
GitHub代碼托管平臺記錄下每位程序員的貢獻圖。坐標軸上顯示了隨著時間變化,代碼的改動數(shù)目。
東北女孩李天石在美國卡內(nèi)基梅隆大學攻讀博士學位。這個夏天,她和男友沈俊睿過著典型的“博六”生活,每天開組會、搞科研;4073公里外的華盛頓大學,博士生張明瑞最近正忙著暑期實習,在科技公司寫代碼。下班回家,他打開攢了好久的日劇劇集,發(fā)誓“今晚絕不加班”;11172公里外的北京,北京大學前沿計算研究中心的博士生蔣鴻達正忙著幫實驗室開展保研季的招生工作、推進手頭項目。
在7月里的某一天,這些年輕人并不知道,他們會因一場暴雨展開一次跨國合作。
李天石是在刷微博時,注意到河南的雨。她關(guān)注災(zāi)情實時動態(tài),點開熱搜詞條,看到大量求救信息。
“焦慮、擔心!彼貞,當時問自己,“我能做些什么?”
河南遭遇強降雨天氣,鄭州是輿論關(guān)注的絕對中心。但李天石注意到,當她點開一條鄭州雨情的信息時,就會在評論區(qū)看見被“淹沒”的聲音:“看看衛(wèi)輝吧”“鞏義請求救援”等。到了北京時間7月21日,微博“河南互助救援”話題下已涌入14萬條討論博文。求救信息繁亂、龐雜,熱度稍低的消息一瞬間就被信息的海洋吞沒。
李天石思考,能不能建一個網(wǎng)頁,將求助消息的地理位置提取出來,標注在地圖上,以二維的、扁平的圖像直觀地呈現(xiàn)災(zāi)情。
太平洋夏令時7月21日22時44分,她和男友在朋友圈發(fā)布了這一想法。
看到李天石的朋友圈,身在華盛頓、發(fā)誓“今晚絕不寫代碼”的張明瑞食言了。他掏出工作電腦,打開程序語言界面。北京的蔣鴻達則被導(dǎo)師告知:留美學生團隊正在針對河南災(zāi)情制作救援信息地圖,需要他的幫助。
就這樣,在不同時區(qū),4名初創(chuàng)成員開始搭建第一版救援地圖。
這支小分隊成立后5小時,網(wǎng)頁正式上線。
“這個項目更像一座橋!睆埫魅鹪诮忉尦绦蜻\行原理時這樣比喻,橋的一端是互聯(lián)網(wǎng)中海量的求救信息,另一端則是呈現(xiàn)在用戶面前的地圖。計算機會按程序指令,將網(wǎng)絡(luò)發(fā)布的求救信息中的地址提取出來,匯總到已有的地圖軟件后臺,地圖軟件會在需要救援的地方打上一個紅色的標記。流經(jīng)鶴壁的衛(wèi)河被暴雨灌滿,洪水漫上堤壩,村民發(fā)出了求救信息。機器獲取到救援信息,在地圖上標注紅點:“?h陳村北人工堤快要決堤,請求救援!請求救援!”
開發(fā)團隊將網(wǎng)頁鏈接發(fā)在朋友圈,有朋友幫忙轉(zhuǎn)到微博,希望能擴大受眾面。
隨著時間推移,信息流不斷匯聚到地圖上,紅色坐標顯示的是求救者位置,經(jīng)緯度精確到小數(shù)點后6位。那條標有河南拼音的網(wǎng)址出現(xiàn)在朋友圈、微博、科技論壇……地圖開始擴散。
李天石和她的團隊起初并沒有想到,這張地圖能引來很多人的關(guān)注!爱敵蹙拖胫阉畛鰜恚軒偷饺司秃茫瑐鞑ゲ婚_的話就當作一次練手。”事實上,就在上線的第二天,網(wǎng)頁就涌入了8萬多的瀏覽量。宣傳救援地圖的那條微博,因轉(zhuǎn)發(fā)量過大而被限流。救援地圖上線的當天,張明瑞接到了河南開封藍天救援隊的電話,他們希望能在救援地圖上發(fā)布消息,征集雨衣、膠鞋以及手電筒。
“程序已經(jīng)開始了它的生命!崩钐焓退膱F隊意識到,“在最初制作的時候,程序的走向完全靠開發(fā)者的意愿,但當更多的人了解和使用它時,它就不再完全屬于你,用戶的需求、想法決定了它的成長軌跡!痹诰仍貓D的界面中,李天石開出“版本日志”小專欄,用于記錄程序的更新歷程。
優(yōu)化信息篩選是最為緊要的。最初,計算機通過“河南”“救援”“暴雨”等關(guān)鍵詞在微博中提取信息。但四人小分隊很快發(fā)現(xiàn),這種粗篩的方式會讓不少無關(guān)信息混入其中。
“誤抓”最多的是明星救災(zāi)、捐款的內(nèi)容。張明瑞主要負責文本抓取和處理,程序上線初期,某些明星的名字一直占據(jù)他的電腦屏幕。
張明瑞說:“如果真正有需求的用戶在救援地圖中看到一則明星災(zāi)區(qū)救援的消息,他肯定就不想往下看了!彼氖滓蝿(wù)就是將這些無關(guān)信息剔除出去。
好在,明星的宣傳文案“有一套自己的話術(shù)”,計算機程序通過學習能夠識別并篩除相關(guān)內(nèi)容!拔依斫夥劢z的心理,自家愛豆做了好事,肯定希望擴散讓更多人知道,但占用救援信息傳播的通道來增加曝光量確實不妥!睆埫魅鹋c這類無效信息斗爭了小半天:“這是對救援標簽的污染!
地圖程序還在不斷迭代!熬仍畔⑹怯袝r效性的!遍_發(fā)團隊意識到這一點。在初代救援地圖中,求助的標識密布整個河南版圖,李天石在想,是否能在二維空間呈現(xiàn)的基礎(chǔ)上,增加時間篩選的維度,“救援隊能根據(jù)時間節(jié)點更快作出救援判斷,關(guān)注災(zāi)情的網(wǎng)友也能直觀地看到事態(tài)發(fā)展!弊罱K,他們通過增加“時間軸”的控件實現(xiàn)了這一需求。拉動時間軸,可以看到從最近2個小時到過去12小時,每一個小時內(nèi)所發(fā)布的信息。
李天石的團隊也更新了。曹禹是清華大學軟件學院的在讀博士生。救援地圖上線第二天,他申請參與到前端的“可視化開發(fā)”;博士生徐栩海是張明瑞的同學,他和自然語言處理方向的碩士生孫壬梁一起,共同負責數(shù)據(jù)標注及文本分類模型的搭建。
參與開發(fā)的遠不只團隊名單中的人。李天石將程序發(fā)布在論壇中,不少網(wǎng)友開始幫忙調(diào)試程序、提建議,還有人直接把寫好的代碼交給團隊,希望能整合進程序。
接受采訪時,李天石將網(wǎng)頁地圖左上角的信息列表圈了出來!霸具@個列表遮住了三分之一的屏幕,后來有網(wǎng)友幫我們加了一個折疊功能。”她指向列表右側(cè)一個淺藍色小箭頭,點擊,列表瞬間縮入屏幕左側(cè),“這是一個很小的功能改動,但卻給地圖呈現(xiàn)留出了更多空間!
還有網(wǎng)友給他們提交了代碼,能將獲取的實時數(shù)據(jù)自動搬運到文本識別的文件夾。“這是特別好的想法,起初我們需要隔段時間把機器獲取的信息復(fù)制、粘貼過去,這會很麻煩!崩钐焓榻B,當時的救援信息量不大,無法與網(wǎng)友提供的代碼進行匹配,但網(wǎng)友的思路給團隊帶來啟發(fā),“我們借用了他的腳本實現(xiàn)了實時的數(shù)據(jù)更新!
網(wǎng)頁操作的流暢度得到提升,救援信息篩選、提取的精度也不斷提高。彼時,救命文檔刷爆網(wǎng)絡(luò),張明瑞提出用共享文檔“飛書”輔助程序運行。開發(fā)團隊開始與其他志愿者團隊對接,將已審核的救援信息整合進入文檔,再供機器處理,在地圖上呈現(xiàn)。
隨著共享文檔的引入,團隊中加入了人工審核員的角色。文檔中,志愿者會根據(jù)信息的內(nèi)容打上“物資”“求助”等標簽,進行人工分類。人工的介入本不在李天石的計劃中,“我一開始是希望它完全自動化,但后來意識到,其實人在里面依然是重要的角色! 機器完成了諸如數(shù)據(jù)搬運、粗篩以及地圖標志等重復(fù)性工作,更為細致的分類工作需要人來完成。
“機器也能做類似的分揀,但準確度不夠。在時間有限且數(shù)據(jù)雜亂的情況下,求助于人是更好的選擇!睆埫魅鹗恰霸黾尤斯徍藛T”想法的提出者,審核員一欄留下了他的名字,“它還能形成一個回路,人對信息的標識結(jié)果會反饋給機器,機器通過學習能進一步優(yōu)化它們的識別!边@一次,機器和人配合完美。
截至7月30日,第九版救援地圖程序更新完畢。在一周內(nèi),地圖共收錄8560條有效信息,3.8萬個獨立賬號接入網(wǎng)頁,28萬次訪問……然而,這遠未到終點。
“我也想出一份力,但我不會寫代碼怎么辦?”救援地圖發(fā)布以來,開發(fā)團隊的私信框一直收到類似問題!爱敵绦蛎嫦蚋鼜V泛的群體時,你才會發(fā)現(xiàn),那些自己或者身邊人都認為很容易的東西,對別人而言是有門檻的!崩钐焓蠡跊]能將“降低技術(shù)門檻”這一條納入程序開發(fā)的考量。
“人工審核員”這一崗位,就因為技術(shù)門檻將不少熱心人士“卡”了出去。張明瑞曾經(jīng)和兩個志愿者團隊進行對接,對方希望協(xié)助團隊篩選、分類和審核的工作。然而,為了能讓機器讀懂人工分揀的結(jié)果,志愿者需要接受培訓(xùn),按照嚴格的格式進行信息處理!斑@需要一定的學習周期和成本!睆埫魅鹫f,“但時間緊迫,要優(yōu)先用最簡單、最易接受的方式。”志愿者團隊沒能真正加入,倒是他計算機系的幾名師弟參與其中。
李天石還想到了一個細節(jié)。程序最開始上線時,前端開發(fā)還未完善,打開網(wǎng)頁時會出現(xiàn)卡頓的情況。評論區(qū)有網(wǎng)友留言,“外地網(wǎng)友盡量不要點開,不要給服務(wù)器壓力,保持網(wǎng)頁流暢”。“真的不是因為這個。”李天石半是感動半是無奈地表示,“大家對技術(shù)細節(jié)不太了解,以為服務(wù)器壓力太大,其實是我們開發(fā)太匆忙,還沒優(yōu)化好!
“用更低門檻、更廣泛易懂的方法,讓大家使用這一程序,感受到程序的價值。” 7月31日晚,開發(fā)團隊開了個小會,“讓程序更友好,操作更簡單”將是他們之后的調(diào)整目標。
李天石的想法不止于此。“我想更多地去了解這種可視化功能在什么場景、對哪些群體是比較有用的。”雖然相隔萬里,她感覺自己也站在那場暴雨中,她的身份是一名關(guān)注災(zāi)情動態(tài)的網(wǎng)民,她需要的是直觀、實時的災(zāi)情動態(tài),“這也是我憑直覺開發(fā)程序的動因。”但在救援的過程中,還有更多方的力量,求救者、救援隊、志愿者,每一個群體都有他們的訴求。
她正在思考一個計劃,災(zāi)情結(jié)束后,她要去聯(lián)系志愿者與救援隊,摸清他們的工作流程,看看“哪些問題能夠讓機器介入并解決”。她還想看志愿者使用程序的過程。講到自己的專業(yè)領(lǐng)域,李天石有些興奮,“我會記錄下他們點擊了哪些功能,對哪些信息比較感興趣,包括光標會在哪些地方來回劃過。”這些內(nèi)容,能幫助她更好地把握程序優(yōu)化的方向。
救援地圖的開發(fā)者們相信,可視化技術(shù)會為這類事件帶來更多幫助。比如,中國留學生團隊在“一畝三分地”留學論壇中開發(fā)了“世界疫情實時動態(tài)”的網(wǎng)頁,以可視化方式實時呈現(xiàn)新冠肺炎疫情的分布與發(fā)展,它也成為美國疾控中心(CDC)參考數(shù)據(jù)的來源之一;國外一款名為CITIZEN的程序,能呈現(xiàn)用戶周邊的突發(fā)事件以及新冠肺炎疫情傳播情況,從而幫助用戶規(guī)避風險……目前,李天石和她的團隊也已將救援地圖程序“開源”,歡迎網(wǎng)友借用或者協(xié)助更新。
隨著河南災(zāi)情的緩解,網(wǎng)頁的訪問量也開始下降。撲在地圖上快兩周的李天石,需要把手頭上的科研任務(wù)趕一趕;張明瑞終于有時間把落下的日劇補上,停更的個人公眾號也恢復(fù)更新;蔣鴻達收到了好消息,論文被頂級學術(shù)會議收錄,上周四,他和實驗室的朋友聚在一起觀看東京奧運會乒乓球男單半決賽,為馬龍歡呼。
地圖上交疊密布的紅色標簽已變?yōu)榱阈巧⒙涞募t點。最近12小時內(nèi),唯一一條消息寫著“需要蔬菜、雞蛋2000斤、味精10袋”。李天石想,等到地圖上不再出現(xiàn)新的求助信息,他們這一階段的任務(wù)就完成了。
實習生 盧思薇 來源:中國青年報