Capturing  and  Analyzing  Liquid  Content

文章名稱:

Zamith,  R.  (2016).  Capturing  and  Analyzing  Liquid  Content, Journalism Studies, DOI: 10.1080/1461670X.2016.1146083  

(作者Zamith為美國馬薩諸塞大學阿默斯特分校新聞系助理教授)

導讀人:區國強 2016/3/30


原作摘要:

  對想要深入探討數位內容的研究者來說,會遇到方法論上的新挑戰。這些挑戰包括如何處理數位內容(尤其是線上內容,online  content)數量龐大和易變(mutable)的本質。本文探討一種「凝結」(freeezing)和分析數量龐大的「液態」內容的運算取徑(computational approach);該取徑透過結合免費軟體,並且在消費級硬體就能運作。本文將透過分析21個新聞機構在約兩個月時間的12萬5千張網站首頁截圖,討論此運算取徑的優缺點。

關鍵字:algorithmic  content  analysis;  computational  content  analysis;  liquid  news;  online  news; research methods; social science; Web analysis 


本文架構 

內文大意:

目錄

一、前言


近年社會科學出現運算的轉向,雖不代表完全取代其他研究方式,卻能讓研究者處理各種數位媒體內容。對傳播研究者說,如何自動化/半自動化地蒐集和分析富於變化又持續變動的「液態」內容,例如線上新聞,也是方法上的挑戰。


二、背景


  過去研究提出,線上新聞有三種特色:互動性(interactivity)與立即性(immediacy)。


互動性指使用者能在即時的被中介的環境中參與修改內容與形式的程度(“The extent to which    users  can  participate  in  modifying  the  form  and  content  of  a  mediated  environment  in  real time”;Steuer,  1992)  。互動性也指內容法消費者被賦予額外的控制能力(additional control),包括對新聞內容進行評論、篩選內容,選擇是否要播放影片,以及放大某新聞圖片等。另外,互動性也促使線上新聞媒體整合整合使用者產製內容與透過各種方式提供使用者參與,成為其重要特色。


立即性指內容生產者創造或更新內容,與消費者看到內容之間,不會出現延遲(the absence of a delay)。立即性也有關線上新聞消費者對線上新聞的期待,認為內容每次進入某網頁時,都能得到最新的內容。Tumber (2001)說,新聞(journalism)已經出現變化;它越來越不是一種產品,而更是一個過程,被以即時與公開地被看見的過程(less a product than a process, witnessed in real time and in public) 。


 互動性、立即性,加上集體性(collectivity),激發了許多研究者對液態(liquid)、流動(  fluid)或動態(dynamic)新聞學之探討。其中,新聞網站的首頁雖然不必定是消費者進入瀏覽新聞的起始點(primary  point),但卻仍是重要研究對象,因為它仍是新聞機構在網路上的重要頁面,並提供了閱聽人參與到新聞過程之中(例如,協商新聞優先性;

communicating  news  priorities)。但新聞網站首先也不是「已完成的」(finished)、「靜態的」(static)研究對象,事實上在當今不斷重組、混搭、持續(remixes,  mashups,  and continuous edits)編輯的媒介生態中,將新聞網站想成是最後的、靜態的研究對象之想法也是要被質疑的預設。


 但我們又要如何捕捉這種持續浮動狀態的動態物件(dynamic objects)呢?


1. 凝結數位內容


為了研究這些動態物件,我們必須先去「凝結」它們。過去主要有三種方式:(1)製

作內容的螢幕截圖(screenshot);(2)把動態對象進行轉檔(例如轉為PDF);(3)或透

過下載網頁原本的來源碼(source code)來重建網頁(to “mirror”page)。


 就(1)「製作內容的螢幕截圖」來說,雖然仍精確地呈現網站當下的樣貌,但其缺點是會漏掉網站還可往下/上滾動檢視的部分。Widholm(2016)曾表示發明了一種新的應用,可完整地擷取網頁內容,但卻沒有說明這應用是否能用於各種作業系統;而且,它把互動物件(interactive object)轉為平面照片(flat images;例如,把某headline的url轉為一張jpeg照片,而非原本url),也喪失了這些互動物件資料。


(2)「把動態對象進行轉檔」雖保製作出網頁的印刷本(printable  version),保留大量資訊,但卻又失去了原本網站的美學元素(aesthetic  elements;區:「版面」元素與配置),包括原本不同大小的字體都被統一為同一大小的字體。


 (3)「透過下載網頁原本的來源碼來重建網頁」大多是透過瀏覽器本身「網頁儲存」功能進行,也可透過HTTrack或WebCopy工具來製作,其優點是可以擷取大量網站動態物件內容(包括字體大小),但這方法有時候會遺漏掉某些資訊而無法真正複製出原本網站的外貌(區:以Mac的Safari為例,可儲存網頁資料,但無法復原原本網站「外貌」)。


2. 運算方式分析首頁(computationally analyzing homepages)


 電腦作為快速與可靠的資料蒐集工具,卻也有使用門檻(difficult  to  use)和其結果效度經常會被質疑的情形。因此,若內容的潛在意義(latent  meanings)是研究者關注對象,那集合人工與自動方法可能更適合。不過,若要觀察網站的變化(例如,增加或減少了某些元素),那麼運算方法則更適用。


 過去研究處理液態性時,多透過蒐集和儲存網站的HTML與JavaScript資料進行。HTML與JavaScript也提供研究者半結構化的資料(semi-structured  data),例如HTML語法中,<h1>指出了內容為最重要的頭條(</h1>表示結尾), “class”與“sytle”亦可用來辨認出所用字體的大小與風格。Sjoyaag與Stavelin(2012)提出,這些指標/選擇器(selector)可幫助研究者精確地辨認和擷取出網頁文件的特色。


三、個案研究


 本文將展示一個自動化擷取液態文件(liquid  documents),並對這些具結構性特色的液態文件進行編碼之過程;本文將針對兩個月中21個新聞機構的網頁,進行間隔15分鐘一次的資料蒐集與分析。這些機構是美國50大新聞機構。分析單位為出現在時間上新聞網站中特定位置的個別新聞報導(individual item)。


 我們將探討其人氣與重要性。「人氣」以「最常被瀏覽的新聞」作為判準;「重要性」則透過新聞報導在網頁中的相對位置來判斷。


 (本研究資料原始碼可參考:http://www. rodrigozamith.com)


1. 凝結首頁

資料以15分鐘為間隔進行蒐集。若研究者擔心會有資料遺漏的話,可把間隔時間縮短,但這也增加資料數量的問題。


 一般來說,讓某網頁「復原」(也就是透過擷取下來的資料,經過瀏覽器處理,可回復原本樣貌)可採取三個方式:


 (1)人工手動擷取(但耗費大量時間與人力);

 (2)以HTTrack之類的工具來擷取(但若遇到網頁是用諸如JavaScript寫成的話,這些網頁經常還經常需要使用者以滑鼠點選來啟動(retrieve)網路出現某些內容(區:e.g.  聯合報網站?),而這是HTTrack工具無法蒐集到的資料);


 (3)研究者寫程式(本案例:Python  scripts)同時抓取原網頁原始碼(source  code)和拍攝螢幕截圖。在抓取資料時,並會透過其他工具(本案例:Selenium  framework)進行一般的網頁瀏覽器的控制,模擬原本的瀏覽過程/順序;像是許多網站經常要跑一下才能完整地出現所有網站內的內容(另外,也包括一些網站要經過一些時間後,網站上的廣告才會消失),Selenium就可用來強迫資料抓取工具先給予兩分鐘緩衝時間,等它都load完後再開始抓取資料,並也可透過寫程式針對特定網頁進行某些點選動作(例如,點選「最常被瀏覽新聞」欄,或點選某URL)再來抓取HTML原始碼資料。這些資料被自動化命名,並加上UTC時間和日期標籤,組織在特定目錄中。至於拍攝螢幕截圖,是為了幫助評估抓取網頁的程式效能與準確性之用;本文所用Selenium  framework可讓研究者將完整首頁擷取一張保留其原本解析度的全尺寸的圖片(full-size image)。


Notes: 

Selenlium IDE 是一個 FireFox 瀏覽器外掛,安裝後可以透過它來錄製瀏覽器的操作動作,並成為測試腳本,當然也可以對腳本進行回放與匯出。此外  Selenium  IDE 還支援許多  Extension,可以擴充功能,像是畫面截圖、Highlight  等等。(http://blog.toright.com/posts/4268/持續整合-透過-selenium-實現自動化測試.html)


本案例所寫程式自動化地在約兩個月區間內(2014/10/18-12/20)每十五分鐘抓取一次網站資料。共擷取了126743頁面(snapshots);資料大小方面,HTML原始碼約40.5G,螢幕截圖約610.5G。


 硬體資訊:a  dedicated  Linux  server  with  a  quad-  core,  3.1  gigahertz  AMD  processor,  16 gigabytes of RAM, and 1.5 terabytes of hard drive space, and running only free or open-source software.


2. 編碼:人氣(Popularity)與重要性(Prominence)


雖然本案例的新聞網站並沒有統一的樣式(layout),但都採取內容管理系統(content management  systems),其結構大致相沒有太大的差異。不過,在以Python  scripts蒐集資料時,仍要按照不同網站特別處理,寫不同的程式。每一張snapshot中,Python的BeautifulSoup library會被用作把原始碼轉為「可導向物件」(navigable  object),而讓特定的元素會按照其屬性被置某位置。舉例來說,有了navigable  object,程式便能輕易地將一個“div”元素和特定“id”屬性結合一起,並把所有在此 “div”的heading elements(e.g. h1, h2)置於特定位置。

每個script會先根據結構屬性的預設定(predefined  sets  of  structural  attributes)來辨認出特定snapshot所使用的layout。例如,若在某新聞網頁上的snapshot的原始碼中,找到某“div元素中含有一個關於  “big-story  clearfix  two”的  “class”屬性,那這第一次出現的layout變化(variation)會成為後續的步驟。同樣的,若找到某“div元素中含有一個關於  “big-story clearfix  topic-two”的  “class”屬性,那第二次的layout也會依此步驟進行。(區:應指透過predefined sets of structural attributes來辨別某特定layout的樣子,再找出該網站結構中會屬於新聞內容並且會變異的地方。)

 為確認只有新聞報導會被編碼(而非其他非新聞內容),研究者會先辨認出哪些URL無關新聞。例如,在Plain-Dealer該新聞媒體網站中,若一個URL是新聞內容,會有/(YYYY)/(MM)/ 、.html或/news/article/。

本研究操作化「人氣」方式:根據某新聞內容出現在「最常被瀏覽的新聞」上的次數來評斷。

本研究Script能辨認出「最常被瀏覽的新聞」在網頁上的位置,並擷取該位置上(按照原來順序)的所有相關連結。


「重要性」則指新聞內容在網頁上的相對位置;最顯見的位置會被認為是重要性比較高的新聞。本研究採用F-shape來判斷新聞顯著位置,也就是重要性的高低會根據新聞內容在頁面上「從左到右」和「從上到下」來排序。本研究亦根據新聞照片大小與字體大小來作為判斷新聞內容重要性根據。另外,重要性亦可根據預設的selector來找出。(本研究根據不同新聞網站layout會採取不盡相同的判斷方法。)


 最高人氣、最顯要項目,以及所有超連結會擷取被添加到第三個暫時性的Python清單物件中(third  temporary  Python  list  object),並結合為一個獨自的URL。透過賦予每個URL內項目分數(例如,若某新聞在重要性排第二,給2分、若沒有出現,給0分),這些URL之間可就人氣和顯要程度進行比較。


所有的URL會存在MySQL資料庫中。雖然有研究者提出存檔為CSV比較好,也有人會選擇使用NoSQL或Hadoop,但本文認為MySQL比較穩定、能同時處理多重步驟(multiple transaction;也就是,可同一時間分析不同的內容)、也比較容易進行篩選等,因此本研究認為MySQL是比較好的檔案儲存紀錄系統。


3. 驗證已編碼的資訊(Verifying Coded Information)

若給予電腦一組特定的指示(a given set of instructions)後,電腦能完美地可靠地執行編碼,因此並不需要透進行編碼者間信度的評估,而這也是運算取徑有別於傳統內容分析的地方。(區:應指,不管哪一台電腦,只要是同樣編碼指示,結果都一樣。)


不過,為了確保演算法能正確地進行編碼,本研究經過多次反覆測試與對程式進行修正。本文參考Sjøvaag和Stavelin(2012)建議,當我們程式遇到登錄失敗時(log  failures),會把這存到另一資料庫中,並會根據這些出問題的資料來調整我們的演算法。演算法經過多次修後,本研究亦隨機抽出1050個snapshot(共21新聞機構,每機構共50個,合共1050個snapshot)進行檢查。


4. 清洗資料與產生新資料集(Cleaning Data and Generating New Datasets)

最後共13077079(1300萬!)個項目被編碼並輸入到資料庫中。每個項目包含以下資料:URL,發行者、時間日期(UTC和媒體當地時間)、顯要位置、人氣程度。

之後,研究者清洗資料雜訊,這些雜訊會因不同媒體機構而有所不同。例如,Denver Post網站上會有少量一年前的報導;這些報導表面上看不見,但卻隱藏在原始碼中。另外,有些網站會用symbolic  URL,也就是同一項目會出現不同的URL(儘管共享了同樣的unique identifier)。像是一個字串為ci_26749631的URL中,在某案例中是加上  /business/  ,另一案例中卻被加上/popular/ 。本研究會透過運算發訪將這種URL簡化為同一字串。


 由於本研究採用MySQL方式,因此資料可輕易和有效地被過濾和結合。透過Python script,我們可輕易地評估每個項目或網頁的液態性,包括在顯要位置中的每個項目之停留時長、人氣維持時間,以及不同snapshot中新聞項目的人氣和重要性排名。這些資料也可轉為MPlus和AMOS等更普遍使用的軟體的結構等式(structrual  equation)。此外,若原資料檔案太大,電腦RAM不夠時,這些資料也可轉為較小的檔案,以R等軟體進行分析。


四、討論

 透過本研究工具,可探討重要大眾傳播問題,例如,Zamith的研究就發現美國各新聞機構在「最常瀏覽新聞」和新聞項目在「最常瀏覽新聞」上有不同的狀態,因此儘管不同媒體的「最常瀏覽新聞」表面上很類似,卻不太能用作比較之用。另外,這也顯示了許多新聞機構的編採議程(editorial  agendas)和讀者的有很大不同;而新聞人氣經常沒有反映在新聞的顯要位置上(或,位於顯要位置的新聞往往不是人氣旺的新聞)。

 不過,新媒體技術出現,例如FB,有不同的閱讀設計(例如,FB往下滑時,會出現新內容),未來要如何處理這些資料也是難題。

 另外,使用Selenium可協助研究者只能透過列印螢幕(print  screen)與螢幕截圖(screen grab)來蒐集資料,提供更能被檢測、跨平台的方法。這些螢幕截圖也在驗證演算法與對網頁的美學特徵(aesthetic features)上有寶貴的價值,並甚至可成為人工編碼員分析的資料。

 不過,使用Selenium也有很大的運算成本,比起HTTrack方式的硬體需求來得大(在本研究中,同時處理21個新聞網站時,幾乎耗盡了所有CPU效能與RAM記憶體)。如何發展更「輕量」工具將是未來研究方向。

 本研究參照Sjovaag等(2012)建議,透過使用selector來從HTML頁面中辦認資料位置和擷取資料。Python和BeautifulSoup  library在執行語法分析(syntactical  analyses)時也有很好表現,能有效地辨認出重要性的區域以及選擇出相關項目。此外,不同新聞網站的Layout其實只有些微差異,因此研究者只需要撰寫相對小量的電腦程式就能準確地分析大量資料。另外,本研究結合Python和BeautifulSoup library,能在一天之內擷取和分析出一千三百萬個項目。

 但本研究缺乏一個「黃金標準」(gold  standard)來比較本演算法的編碼方式(coding decision)也是本研究限制。但本研究透過錯誤登錄機制(error-logging mechanisms)能幫助修正演算法設計,讓研究者能以最少的資源獲得最佳結果。

 如前所述,研究者在評估資料時,要注意原始資料中移常情形,例如symbolic  URL路徑之使用。本文也認為,儲存在MySQL資料庫比存為CSV更好。

最後,儘管運算取徑需要撰寫程式,但許多免費或開放源程式、資料庫與架構(open-source programs, libraries, and framework)可協助研究者製作更好的程式。在本研究中,透過結合Pyhton、Selenium、Firefox、BeautifulSoup、錯誤登錄與電腦輔助驗證(error-logging  and computer-aided  verification  )工具,讓我們在消費級硬體和有限人力資源條件下,就能處理大量液態內容的蒐集與分析。


討論問題:


1. 「人氣」與「重要性」作為探討互動與立即性之指標是否足夠和合理?

2. 若要探討互動性,新聞網站vs.社群媒體哪個比較好?

3.  以運算取徑進行內容分析的信效度問題~從編碼信度變為演算法效度?


延伸閱讀:

Crawford, Kate, Mary L. Gray, and Kate Miltner. 2014. “Critiquing Big Data: Politics, Ethics, 

Epistem- ology.” International Journal of Communication 8 (June): 1663–1672. 

Deuze, Mark. 2008. “The Changing Context of News Work: Liquid Journalism for a Monitorial 

Citi- zenry.” International Journal of Communication 2 (July). http://ijoc.org/index.php/ijoc/ article/

view/290. 

Sjøvaag, Helle, Eirik Stavelin, and Hallvard Moe. 2015. “Continuity and Change in Public Service 

News Online.” Journalism Studies: 1–19. doi:10.1080/1461670X.2015.1022204. 

Zamith, Rodrigo. 2015a. “Deciphering ‘Most Viewed’ Lists: An Analysis of the Comparability of 

the Lists of Popular Items.” Paper presented to the Communication Theory and Methodology 

Division of AEJMC, San Francisco, CA. 

Zamith, Rodrigo. 2015b. “On Click-Driven Homepages: An Analysis of the Effect of Popularity on 

the Prominence of News.” Paper presented to the Newspaper and Online News Division of AEJMC, 

San Francisco, CA. 

Zamith, Rodrigo, and Seth C. Lewis. 2015. “Content Analysis and the Algorithmic Coder: What 

Computational Social Science Means for Traditional Modes of Media Analysis.” The ANNALS of 

the American Academy of Political and Social Science 659 (1): 307–318. doi:10. 

1177/0002716215570576. 

Widholm, Andreas. 2016. “Tracing Online News in Motion.” Digital Journalism 4 (1): 24–40. doi:

10. 1080/21670811.2015.1096611.  (已導讀過)


摘要Capturing and Analyzing Liquid Content導讀.pdf