陳黎明,黃瑞章,秦永彬,陳艷平
(1.貴州大學 計算機科學與技術學院,貴州 貴陽 550025;2.貴州大學 貴州省公共大數據重點實驗室,貴州 貴陽 550025)
新聞數據的爆炸級增長使得人們難以獲得總結性的信息,喪失對信息的全局把控[1]。因此對新聞事件進行動態(tài)追蹤并構建其發(fā)展脈絡是如今迫切需要解決的問題。事件追蹤是在后續(xù)新聞報道中辨認出給定事件所相關的報道[2]。脈絡構建是根據追蹤到的新聞來對事件發(fā)展進行梳理,以一定的形式,比如時間線、事件線索等方式來呈現事件的發(fā)展過程[3]。然而現有方法存在以下問題:①隨著時間發(fā)展,事件重心會發(fā)生漂移[4],在事件追蹤時容易遺漏相關新聞;②事件脈絡構建僅在時間以及內容相似度等層面做研究,沒有從全局的角度來進行脈絡構建,造成事件脈絡不連貫,整體性較差。
針對上述問題,本文提出了一種面向新聞事件的故事樹構建方法。首先在事件追蹤過程中,根據追蹤到的新聞的關鍵詞詞頻-逆類別頻率(term frequency-inverse category frequency,TF-ICF)和熱度對事件關鍵詞進行反饋更新。其次采用有主干和分支的故事樹結構來展現事件脈絡,并利用新聞熱詞來定位事件發(fā)展的關鍵節(jié)點,生成故事的主干結構。本文利用真實事件新聞數據集來實驗提出的面向新聞事件的故事樹構建方法,并基于用戶體驗來評價方法表現。實驗結果表明,該方法所構建的事件故事樹在可讀性、完整性上表現良好。
信息過載的問題日益凸顯,如何提高知識獲取的效率一直以來是一個熱點研究問題。事件追蹤作為傳統(tǒng)TDT的子任務,被廣泛用于獲取事件相關的信息。傳統(tǒng)的追蹤方法基于分類[5]和聚類[6]算法,但由于漂移現象的存在,因此已經不能滿足動態(tài)話題追蹤的需求。近年來,基于自適應追蹤的方法成為該領域的研究熱點。文獻[7]提出了一種基于動態(tài)閾值及分類器集成的自適應話題追蹤方法,旨在解決動態(tài)閾值和傳統(tǒng)分類器集成方式的不足。文獻[8]通過自動抽取出的話題相關特征詞條來描述話題中的事件信息,并且通過本體的不斷進化來進行話題自適應追蹤。文獻[9]提出了一種基于關鍵詞衰減指數的自適應追蹤方法,然而在新增關鍵詞權重上每次只增加固定的值,未考慮到新增詞的重要性信息。文獻[10]利用最小特征平均可信度閾值更新策略來完善話題模型。文獻[11]基于時間的分布屬性調整特征向量權重分配,實現模型的自適應學習更新。文獻[12]提出一種基于關聯(lián)語義網絡的話題追蹤方法,解決了無法詳細描述話題追蹤趨勢的問題。
構建事件脈絡是TDT領域衍生的新研究問題,旨在用一定的形式來展現事件的發(fā)展趨勢。目前有許多方法基于相似度來尋找子事件之間的聯(lián)系。文獻[3]基于內容相似度和時間距離計算新事件與已有事件的連接強度,將新事件連接到連接強度最大的節(jié)點。文獻[13]構造了一種結合文本相似度、時間相似度和實體相似度的多視圖屬性圖來表示文章之間的關系,并提出了一種社區(qū)檢測算法,對圖中的子事件進行分割和鏈接。文獻[14]先識別重要的事件,并根據語義相關性來捕捉它們之間關系。文獻[15]根據動態(tài)閾值的設定、相似度平滑、子主題動態(tài)增量策略等過程來進行事件演化分析。文獻[16]基于事件地點、人物、核心詞等相似度生成事件有向無環(huán)圖,然后從有向無環(huán)圖中構造最大生成樹,并用最大生成樹表示事件的分支。這些基于相似度的方法僅停留在關系分析上,未從全局的角度考慮到事件的發(fā)展結構是有規(guī)律的,同一發(fā)展階段的子事件描述的內容各不相同,基于相似度很難將它們聯(lián)系到一起。
此外,還有一些方法從其它角度來進行脈絡構建。文獻[17]從詞覆蓋的角度提出一種新聞脈絡鏈構建方法, 利用新聞的評論信息來定位新聞事件轉折點。文獻[18]提出了一種基于無參數生成模型的故事情節(jié)結構化表示和演化模式提取方法,并結合中國餐館過程(CRP)自動確定故事情節(jié)的數量。文獻[19]提出了一種基于神經網絡的方法來提取故事情節(jié)的結構化表示和演變模式。文獻[20]通過分析社交媒體中的文本、時間、圖像、評論、觀點、情感和用戶交互等多模態(tài)數據,感知事件并刻畫事件的關系,從而實現對事件的總結。
相比于上述的方法,本文方法更適用于新聞事件的追蹤與發(fā)展脈絡構建,從關鍵詞的角度出發(fā),對事件相關新聞進行動態(tài)追蹤,并根據新聞熱詞定位事件的關鍵發(fā)展節(jié)點,解決事件脈絡構建僅在時間以及內容相似度等層面做研究而造成脈絡不連貫、整體性較差的問題。
定義1 新聞(news):一篇新聞d由新聞標題、正文、發(fā)布時間組成。
定義2 子事件(subevent):子事件指涉及特定的時間和地點、相關人物的某件具體事情,由四元組
定義3 事件(event):事件由一個種子子事件以及與其直接相關的子事件組成。新聞事件通常會包含不同的子事件,反應的是事件的不同側面或者發(fā)展。比如“埃航波音客機墜毀”事件,它是由“埃塞俄比亞157人客機起飛6分鐘后墜毀”這個種子子事件以及后續(xù)的“救援”、“調查”、“停飛波音737MAX”、“索賠”等一系列高度相關的子事件組成。
定義4 故事樹(story tree):每顆故事樹S={branch1,branch2,…,branchn} 對應一個事件,由多個分支按時間先后順序連接而成。每個分支branch=
圖1展示了“孟晚舟被捕”事件對應的故事樹,該故事樹包含了20個節(jié)點,3個分支,其中分支上的每個圓節(jié)點代表了一個子事件,每個分支代表了該事件的一個發(fā)展階段,3個分支的根節(jié)點構成了樹的主干結構,展示了事件的發(fā)展過程。分支A 對應著“孟晚舟在加拿大被捕”初始階段的信息,分支B對應著“孟晚舟保釋”相關信息,分支C對應著“孟晚舟引渡”相關信息,該事件還在繼續(xù)發(fā)展,還會產生新的分支。由此可見,通過有主干和分支的故事樹來展現事件的發(fā)展脈絡,有助于用戶快速了解事件的主要信息,輕松掌握事件的發(fā)展過程。

圖1 “孟晚舟被捕”事件故事樹
給定一組新聞信息流 {D1,D2,…,Dt,…}, 其中Dt是時間窗口t內的新聞集合,本文的目標是:
(1)從Dt內提取事件相關新聞;
(2)將事件相關新聞聚類成子事件集合subevent_set={se1,se2…se|E|}, 并提取相關信息將子事件進行封裝為四元組
(3)將步驟(2)輸出的子事件組裝成故事樹S, 并進行可視化。
本文方法總體設計如圖2所示,主要分為4個部分。第一個部分是數據預處理,對于持續(xù)到來的新聞數據流,先過濾掉正文長度低于20的新聞,然后使用Hanlp工具包對新聞進行分詞和去停用詞處理。第二個部分是事件追蹤,包含了提取有故事偏向性的新聞關鍵詞、提取事件相關新聞、反饋更新事件關鍵詞3個步驟。第三個部分是子事件聚類,在提取出事件相關新聞后,使用流式聚類算法SinglePass聚類出子事件,并提取相關信息來封裝子事件。最后一個部分是故事樹構建,首先根據當前時間窗口內的新聞熱詞來定位事件發(fā)展的關鍵節(jié)點,判斷是否需要新建故事樹分支,即判斷故事是否發(fā)展到了一個新階段,其次是判斷故事樹中是否存在當前子事件,如果存在則合并子事件,否則查找該子事件在故事樹中所屬的分支,并更新故事樹。接下來,將詳細介紹后3個部分。

圖2 方法總體設計
事件追蹤階段,其主要目的是從大量的日常新聞中提取出事件相關的新聞,其流程如圖3所示。在每批待追蹤新聞數據到來時,其追蹤流程是一個循環(huán)處理的過程。首先,通過對事件關鍵詞進行加權的TextRank算法來提取有故事偏向性的新聞關鍵詞來作為新聞文本特征表示。其次是通過計算相似度來提取事件相關新聞。最后,判斷這一輪提取的新聞數量和上一輪提取的是否相同,相同則結束追蹤流程。否則計算本輪提取出所有新聞的關鍵詞TF-ICF和熱度,并根據TF-ICF、熱度和衰減指數來反饋更新事件關鍵詞,繼續(xù)下一輪循環(huán),直至提取出的新聞數量不再發(fā)生變化,這可以最大程度地將事件相關新聞提取出來。在接下來的小節(jié)里,將詳解介紹這些步驟。

圖3 事件追蹤流程
3.2.1 提取有故事偏向性的新聞關鍵詞
TextRank是一種常見的關鍵詞抽取算法,但該算法忽略了詞語本身的重要性信息。在該算法中詞語的重要性會影響相鄰節(jié)點間的影響力傳遞而導致關鍵詞抽取效果不佳。當對某個的特定事件進行追蹤時,隨著時間發(fā)展而變化的事件關鍵詞的重要性比其它詞語高,因此,本文對事件關鍵詞的權重進行了調整,使用加權的TextRank算法來提取有故事偏向性的新聞關鍵詞,提高事件關鍵詞在新聞中出現時被作為新聞關鍵詞提取出來的概率。
設Vi為給定文本中的任何一個詞語,則基于加權Text-Rank算法的權值迭代公式為
(1)
式中:d為調節(jié)系數,一般取0.85;In(Vi) 表示指向節(jié)點Vi的所有節(jié)點的集合;Out(Vj) 表示節(jié)點Vj指向的所有節(jié)點的集合。wji為節(jié)點Vj的詞語重要性影響力傳遞到節(jié)點Vi的權重,其計算公式如下
(2)
式中:I(vi) 表示節(jié)點Vi的重要性取值。設λ為對詞語進行加權的參數,本文中λ取2,則I(vi) 賦值如下

(3)

(4)
基于式(1)~式(4)進行迭代運算,當式(1)兩次迭代結果之間的差異非常小時停止迭代運算,該值一般取0.0001。然后按照大小對WS(V) 進行降序排序,選取前8個候選詞作為新聞文本關鍵詞。
3.2.2 提取事件相關新聞
通過式(5)計算追蹤的事件和新聞文本之間的相似度,其中KT為事件關鍵詞集合,KN為新聞文本關鍵詞集合。Jaccard相似度用來比較樣本集之間的相似性,Jaccard系數值越大,說明相似度越高。相似度大于閾值的新聞文本被判定為與事件相關,相似度低于閾值的則判定為與事件不相關
(5)
3.2.3 反饋更新事件關鍵詞
由于在事件追蹤過程中存在漂移現象,事件重心會發(fā)生變化,事件關鍵詞也隨之變化,使用初始給定的關鍵詞對后續(xù)新聞進行追蹤時效果較差。為了更全面準確地對事件進行追蹤,需要融入新的事件特征,對事件關鍵詞進行反饋更新。因此本文提出了融合關鍵詞TF-ICF、關鍵詞熱度以及關鍵詞衰減指數計算的反饋更新方法,TF-ICF和熱度旨在融入新的事件特征,衰減指數旨在對事件原始特征進行減弱。值得一提的是,事件最重心的詞并不會隨著時間的推進而消失,因為它一直出現在事件新聞中,在減弱的同時也增加了其權重。
TF-ICF被用來衡量詞語的重要程度,一個詞語的重要性與它在文檔中出現的次數成正比,但同時會隨著它在各個類別中出現的頻率成反比下降。例如 “繼續(xù)”這類詞,雖然它出現的頻率較高,但由于它出現在各類別的頻率也比較高,由此可以推斷出是一個常用詞,重要性較低。通過ICF的計算可以過濾掉這種詞頻很高但不重要的常用詞。TF是一種用于數據挖掘的常用加權技術,表示一個詞語在一篇文章中出現的頻率,在本文中表示詞語在事件新聞關鍵詞中出現的頻率。ICF是逆向類別頻率,由總類別數目除以包含該詞語的類別數目,再將得到的商以10為底取對數得到,在本文中ICF的類別由Kmeans預聚類得到。
設n(vi) 為詞語Vi在新聞關鍵詞中出現的次數,Ci為詞語Vi出現的類別,則TF-ICF的計算公式如下所示
(6)
(7)
tficf(vi)=tf(vi)*icf(vi)
(8)
此外,一個詞語的重要性還與其熱度有關。熱度代表了詞語被提及或被關注的趨勢。一個詞語的熱度越高,它出現的頻率相比于歷史時刻就會有明顯的增高趨勢。這種在使用頻率上發(fā)生較大變化的詞,稱之為熱詞,代表著事件有了新的發(fā)展,在更新事件關鍵詞時其重要性比較高。例如對于西安奔馳維權事件來說,“金融”以及“服務費”在2019年4月14日的新聞中頻繁出現,而在之前的事件新聞中從未出現,在融入新的事件特征時,考慮到它們反映了事件的發(fā)展情況,其權重要有所增加。
本文通過熱度分數來衡量一個詞語的熱度。設K為詞語個數,n(vi,tj)為詞語vi在時間窗口tj內的詞頻,g(vi,tj) 為詞語vi在時間窗口tj內的詞頻梯度,aver(g,tj) 為在時間窗口tj內所有詞語的平均詞頻梯度,n(vi,t1,t2,…,tj) 為詞語vi在全部時間窗口內的詞頻,aver(n,t1,t2,…,tj) 為在全部時間窗口上所有詞的平均詞頻,則詞語vi在當前時間窗口tj的熱度分數s(vi,tj) 計算公式如下所示

(9)
(10)
(11)
(12)
在每一輪提取出事件新聞后,通過以上方法計算提取出的所有新聞的關鍵詞TF-ICF值和熱度分數,將新的特征融入至事件模型,并根據關鍵詞衰減指數對原始特征進行減弱,具體的計算方法如下。
設當前時間窗口tj的事件候選關鍵詞向量為V(tj)=(v1∶w1,tj,v2∶w2,tj,…,vi∶wi,tj), 其中vi表示事件候選關鍵詞,wi,tj表示候選關鍵詞vi在時間窗口tj的權重。wi,tj計算公式如下
wi,tj=θ×wi,tj-1+c(vi,tj)
(13)
其中,c(vi,tj) 表示時間窗口tj內候選關鍵詞vi新增的權值,α和β為系數,分別取值0.4和0.6,θ為候選關鍵詞衰減指數,c(vi,tj) 的計算公式如下
c(vi,tj)=α×tficf(vi,tj)+β×s(vi,tj)
(14)
式中:熱度分數s(vi,tj) 是一個0-1的數,tficf(vi,tj) 經過單位化處理也是一個0-1的數。
通過式(14)對事件候選關鍵詞向量進行更新后,按其權重大小進行排序,挑選權重值排前8的候選關鍵詞作為事件新的關鍵詞,完成事件關鍵詞的一次反饋更新。
子事件聚類階段其主要目標是提煉新聞信息,將事件追蹤階段提取的新聞聚類成子事件,并提取相關信息來對其進行封裝,作為構建事件脈絡的節(jié)點。
SinglePass是一種增量聚類算法,簡單高效,其主要思想是將流式數據作為輸入,計算每一條新數據與已有類的相似度,相似度大于閾值則納入類中,否則新建一個類。本文使用SinglePass算法來對子事件聚類,聚類特征選取的是新聞標題TF權重、正文TF權重、關鍵詞TF權重,其中關鍵詞是在事件追蹤階段提取的有故事偏向性的關鍵詞。
通過聚類得到的子事件新聞集合由于易讀性差,無法直接用于故事樹構建,為了更直觀簡潔地在故事樹中展示事件的主要信息,接下來從這些新聞簇中提取信息來對子事件進行封裝,詳細的過程如下:
(1)將子事件新聞最早的發(fā)布時間作為子事件的發(fā)生時間Tse;
(2)將子事件新聞的關鍵詞集合作為子事件的關鍵詞Kse;
(3)將聚類得到的子事件新聞集合作為子事件News_set;
(4)新聞類文章的標題就是對文章內容的高度概括,而且在標題中出現次數越多的詞越與子事件有關,因此使用基于標題高頻切分的新聞熱點短語提取方法[21]來提取子事件的概要描述Dse。 該方法對同一子事件的多篇新聞,篩選出標題詞頻最大的前N個詞作為該子事件高頻詞集,使用高頻詞集來尋找每個標題的高頻切分邊界,并根據切分邊界對其進行切分,將切分結果作為候選短語集,并且最終只選擇一個最佳短語來描述子事件。
故事樹構建階段的目標是為新聞事件生成發(fā)展脈絡。新聞事件的發(fā)展是有一定規(guī)律的,一系列的關鍵節(jié)點推動著事件不斷往前發(fā)展,在某個關鍵節(jié)點下又有著描述不同方面的子事件。當事件到達一個新的關鍵節(jié)點時,這代表著事件進入了一個新的發(fā)展階段。在其未進入下一個發(fā)展階段時,會有描述該發(fā)展階段不同方面的子事件被報道出來。這些子事件涉及面較廣,內容差別較大,例如“孟晚舟被捕”事件初始階段有“被捕”、“各方回應”、“股價受影響”等子事件?;谙嗨贫鹊姆椒▋A向于將相似的子事件聚集到一起,無法捕捉到事件的這一發(fā)展規(guī)律,因此所構建的發(fā)展脈絡不連貫、整體性較差。根據新聞事件的這一發(fā)展規(guī)律,本文認為梳理新聞事件的發(fā)展脈絡時需要區(qū)分主干和分支,其中主干結構應該由事件的一系列關鍵發(fā)展節(jié)點構成,分支由各發(fā)展階段的子事件組成。
如何從大量的新聞數據中提取事件發(fā)展的主干結構是個難點。本文通過分析事件新聞關鍵詞的演變發(fā)現,當事件進入一個新的發(fā)展階段時,會頻繁提及某些詞,而這些詞在之前的新聞中幾乎從未出現,它們出現的頻率較之前有著異常的變化。因此,可以通過這些出現頻率有著異常變化的詞來定位事件發(fā)展的關鍵節(jié)點,生成故事樹的主干結構。在本文中稱這樣的詞為熱詞,熱詞由熱度分數計算得出,當一個詞的熱度分數大于設定的閾值0.6時,它就是一個熱詞,其中熱度分數計算在3.2.3節(jié)做了介紹。
故事樹構建的偽代碼如算法1所示。給定子事件集合subevent_set、 當前故事樹S、 新聞熱詞hotwords、 當前時間窗口的事件關鍵詞eventkeyword。 首先,判斷該事件的故事樹S是否存在,不存在則新建一顆故事樹,并為故事樹新建一個分支,將事件關鍵詞設為分支關鍵詞(行(2)-(4))。如果該故事樹存在,根據是否存在新聞熱詞來判斷是否需要創(chuàng)建新的故事樹分支(行(6)-(8))。然后,循環(huán)遍歷子事件集合,如果子事件相似度大于一定閾值則合并(行(10)-(12)),否則根據子事件關鍵詞是否包含故事樹分支的關鍵詞來尋找子事件所屬的分支(行(13)-(18))。最后,將分支的子事件按發(fā)生時間先后順序連接起來,將分支按時間先后順序連接起來,完成故事樹的一次構建過程(行(21)-(25))。
算法1: 故事樹構建算法
輸入: 子事件集合subevent_set={se1,se2…se|E|}
當前故事樹S={branch1,branch2,…,branchn}
新聞熱詞hotwords
當前時間窗口的事件關鍵詞eventkeyword
輸出: 更新后的故事樹Supdated={branch1,branch2,…,branchn}
(1)Arrange subevents ofsubevent_setin ascending order of occurrence time
(2)ifSis not exist then
(3) createS/*新建一顆故事樹*/
/*新建故事樹第一個分支并將事件關鍵詞設為分支關鍵詞*/
(4)S.add(newbranch(eventkeyword))
(5)else
(6) ifhotwordsis not null then
/*新建故事樹分支并將熱詞設為分支關鍵詞*/
(7)S.add (newbranch(hotwords))
(8) end if
(9) forseiinsubevent_setdo
/*如果子事件的標題余弦相似度大于0.7*/
(10) if title_consinSsim(sei,seinS)>0.7 then
(11) merge(sei,seinS) /*合并子事件*/
(12) end if
(13) for j=n to j=1 do
(14) ifse.KsecontainsS.branchj.Kbranchthen
(15)S.branchj.E. add(se) /*將子事件添加到分支*/
(16) break;
(17) end if
(18) end for
(19) end for
(20) end if
(21)forbranchkinS
(22) 將分支branchk的子事件最早發(fā)生時間設為分支時間
(23) 將分支branchk的子事件按發(fā)生時間先后順序連接起來
(24)end for
(25)將分支按時間先后順序連接起來
(26)returnSupdated
在本節(jié)中主要介紹事件追蹤實驗,本文使用爬蟲工具從各新聞網站收集了3個事件的新聞數據,將其標注為正例,此外還收集了事件同時間段的其它新聞,將其標注為反例,以此作為實驗的數據集。事件名稱以及對應的新聞數量、時間等見表1。實驗設置相似度閾值為0.1,衰減指數θ為0.8,時間窗口設置為天。

表1 數據集
實驗使用準確率P、召回率R和兩者綜合性能指標F值這3個指標進行量化考察,F值越高,事件追蹤性能越好。設TP為在追蹤結果中被判定屬于某事件且實際也屬于該事件的文本數量,FP為在追蹤結果中被判定屬于某事件但實際不屬于該事件的文本數量,FN為在追蹤結果中被判定為其它類別但實際屬于該事件的文本數量。
則準確率P、 召回率R和F值的計算公式如下
(15)
(16)
(17)
為了驗證本文方法在事件追蹤上的效果,選取基于SinglePass的追蹤方法以及Qi Y等[9]提出的方法作為對比實驗,實驗設置兩篇種子新聞作為對比方法的初始類心?;赟inglePass的追蹤方法選取的文本特征表示方法是TF-IDF。Qi Y等提出的方法引入了反饋更新事件關鍵詞的機制,每次調整關鍵詞權重時增加固定的值0.5。在表2展示了在所有時間窗口的平均追蹤結果。圖4~圖6分別展示了在單個時間窗口上對事件進行追蹤的統(tǒng)計結果。

表2 事件追蹤方法實驗結果

圖4 事件1追蹤結果統(tǒng)計

圖5 事件2追蹤結果統(tǒng)計

圖6 事件3追蹤結果統(tǒng)計
從表2的平均追蹤結果可以看出,本文方法在事件追蹤效果上整體優(yōu)于基于SinglePass的追蹤方法和Qi Y等提出的方法。結合圖4~圖6,可以看出在事件發(fā)展的前期,本文方法優(yōu)于基于SinglePass的方法,原因是本文在新聞文本特征上選擇了有故事偏向性的新聞關鍵詞,加大了事件關鍵詞出現在新聞中時被提取為新聞關鍵詞的概率,而SinglePass方法選取的是常規(guī)的TF-IDF文本特征表示方法,當事件關鍵詞在新聞中出現頻率較低時,這樣的新聞很難被追蹤到。
此外,從圖4~圖6可以看出,隨著事件的不斷發(fā)展,事件追蹤效果也會隨之下降。下降得最快的是基于SinglePass的方法,其原因是隨著時間的推移,SinglePass的類心特征逐漸變得稀疏,新的事件特征所占權重較小,導致后期聚類效果不理想。其次下降得較快是Qi Y等提出的方法,其原因是在反饋更新事件關鍵詞時,對關鍵詞新增權值的調整未考慮到詞語的重要性差別,而是統(tǒng)一增加固定的值,導致事件關鍵詞質量不佳,從而影響到后期的追蹤結果。雖然本文方法追蹤結果有所下降,但整體下降趨勢比較緩慢,在事件發(fā)展的后期,其追蹤結果明顯優(yōu)于另兩種方法,F值在86%左右,其原因主要是本文引入了事件關鍵詞候選向量,在反饋更新策略上做了改進,增加了關鍵詞TF-ICF和熱度計算而不是只增加固定的值。
通過以上分析可知,本文的事件追蹤方法提升了事件追蹤效果,在面對事件漂移的問題上取得了不錯的結果,能夠有效的對事件進行動態(tài)追蹤。
在本節(jié)中主要介紹事件脈絡構建實驗。實驗選取事件追蹤的3個事件進行脈絡構建,選取兩個方法StoryTel-ling[16]、StoryForest[3]來進行對比。
(1)StoryTelling:該方法基于事件地點、人物、核心詞等相似度生成事件有向無環(huán)圖,然后從有向無環(huán)圖中識別弱聯(lián)通分量,并為每個弱聯(lián)通分量構造一個最大生成樹,最后用最大生成樹表示故事樹的分支。
(2)StoryForest:該方法計算新事件與已有事件的連接強度,連接強度計算基于內容相似度和時間距離,將新事件連接到連接強度最大的節(jié)點,如果小于設定的閾值則連接到故事樹根節(jié)點。
(3)本文方法:采用有主干和分支的故事樹結構來展現事件脈絡,并利用新聞熱詞來定位事件發(fā)展的關鍵節(jié)點,生成故事的主干結構。
由于事件脈絡具有很強的主觀特性,比如可讀性、完整性等,因此本文基于用戶體驗來評價事件脈絡構建方法的表現。本文將3個不同方法生成的事件脈絡呈現給18位志愿者,并邀請志愿者對事件脈絡的可讀性和完整性進行評分。其中,可讀性是指事件脈絡易閱讀、易理解、邏輯連貫、展現形式生動;完整性是指事件脈絡完整地描述了事件的發(fā)展歷程。評分標準為:5(優(yōu)秀)、4(良好)、3(一般)、2(差)、1(很差)。評價結果見表3、表4。
從評分結果可以看出,本文采用有主干和分支的故事樹來展現的事件脈絡在可讀性和完整性上表現良好,在保證事件發(fā)展歷程被完整展現的同時,也考慮到了用戶的習慣,讓用戶更容易閱讀和理解。相比于StoryTelling和StoryForest方法,用戶更傾向于選擇本文方法生成的事件脈絡。

表3 基于用戶體驗的事件脈絡可讀性評分

表4 基于用戶體驗的事件脈絡完整性評分
圖7和圖8展示了本文方法為“茅臺袁仁國違紀”和“西安奔馳維權”事件構建的故事樹。從圖中可以看出,有主干和分支的故事樹在結構方面十分清晰。利用熱詞來定位事件發(fā)展的關鍵節(jié)點,生成故事樹的主干結構,可以讓事件的發(fā)展歷程一目了然。然而根據相似度來確定子事件之間聯(lián)系的方法,無法將同一發(fā)展階段講述不同內容的子事件聚集到一起,比如對于圖7中分支A的子事件,它們描述的都是事件初始階段的信息,但在內容描述上差別較大,基于相似度很難將它們聚集到一起,因此會陷入局部構建,缺乏整體性。雖然本文在故事樹的構建中沒有分析分支上子事件之間潛在的一些聯(lián)系,但是本文認為這是不必要的,因為當用戶看到以故事樹形式展現的事件發(fā)展脈絡時,可以很容易地人為分析出它們的聯(lián)系,不需要付出很大的努力。

圖7 “茅臺袁仁國違紀”事件故事樹

圖8 “西安奔馳維權”事件故事樹
本文提出了一種面向新聞事件的故事樹構建方法,這是一套完整的解決方案,針對用戶關注的特定事件,從大量的日常新聞中對事件相關新聞進行動態(tài)追蹤,以在線的方式將事件相關新聞組織成有主干和分支的故事樹,并利用新聞熱詞來定位事件發(fā)展的關鍵節(jié)點,幫助用戶輕松地了解事件發(fā)展演變整個過程。實驗結果表明,本文方法提高了事件追蹤的效果,所構建的事件脈絡在可讀性和完整性上表現良好。此外,熱點新聞事件的發(fā)生會引發(fā)大量的討論,這些評論信息也會對事件的發(fā)展起到一定的推動作用,為了更全面地展示事件信息,下一步擬將評論分析融入至故事樹構建中。