吉娜燁,廖龍飛,閆燕勤,俞定國,張 帆
(1. 浙江傳媒學院 智能媒體技術研究院,浙江 杭州 310018;2. 浙江大學 軟件學院,浙江 杭州 310058)
當下,新聞自動寫作逐漸成為研究熱點之一,國內外有很多媒體和機構通過研究新聞自動生成技術發布了自己的寫作機器人。2014年美國洛杉磯時報的機器人Quakebot[1]在地震發生后的三分鐘自動生成和發布了災難新聞的報道。騰訊財經是中國第一家使用新聞寫作機器人的媒體,他們開發的Dreamwriter[2]根據算法在第一時間自動生成稿件,瞬時輸出分析和研判,一分鐘內將重要資訊和解讀送達用戶。2015年11月新華社開始嘗試使用新聞自動生成技術來進行寫作,他們的“快筆小新”[3]能快速地生成一篇財經類的新聞。在2016年的里約奧運會上,今日頭條通過使用Xiaomingbot[4]寫稿機器人來實現奧運賽事新聞的自動生成。由此可見,新聞自動寫作技術有著非常廣泛的應用場景,但由于新聞種類繁多,且涉及到多個不同學科領域的交叉,現在還處于探索階段。
當前新聞自動生成技術主要有三大發展方向,分別為模板式、抽取式、生成式[5]。結合模板的新聞生成方式是新聞生成技術中最為成熟的方法,它需要針對新聞中不同的內容自動選擇對應的新聞模板生成新聞文本。新聞模板的構建一般由人工完成,這能在一定程度上保證生成新聞的質量。最近幾年來出現了一系列在體育新聞這一特定類別新聞領域自動寫作的代表性研究。Xu等[6]通過使用文本摘要算法從足球賽事文字直播中抽取重要句子來生成足球新聞。陳玉敬等[7]針對NBA文字直播數據中籃球比分變化特點,提出了一種籃球賽事新聞生成方法。Zhu等[8]基于條件隨機場, 結合正向關鍵詞和反向關鍵詞, 抽取足球直播文本中的關鍵句, 自動寫作足球賽事新聞戰報。此外,針對足球新聞的自動寫作,出現了一系列使用卷積神經網絡技術自動生成新聞腳本的方法[9-12],此類方法本質上屬于抽取式或生成式的自動文摘法。
目前關于知識圖譜的相關研究已經非常普遍,國內外也有很多大型的開源知識圖譜庫,如Wikidata[13]、Freebase[14]、DBpedia[15]、CN-DBpedia[16]等。在運用方面,知識圖譜最典型的應用是輔助搜索引擎提高搜索質量,如國外谷歌公司的Google Search,百度公司的“知心”。此外,知識圖譜也可以運用到問答系統中,增強回答結果的精度。除搜索引擎和問答系統的應用外,最近也涌現了各種知識圖譜在其他領域的研究探索,如情報學領域[17]、農業旅游領域[18]、藥物發現領域[19]等。與新聞相關的知識圖譜方面的研究和應用也有許多,例如,宋卿等[20]針對知識圖譜技術在新聞領域中未來的應用分析;文獻[21]嘗試使用知識圖譜來對新聞的真假進行檢測;文獻[22]應用知識圖譜可以很好地提升文本摘要的效果。
綜上所述,知識圖譜在許多不同的領域均可發揮很大的作用,但應用于新聞自動寫作的研究鮮有。此外,現有的大型開源知識圖譜庫基本都是通用型知識圖譜,這些知識圖譜庫往往“廣度”有余而“深度”不足,未包含更加深層次的信息,無法直接應用到特定領域中。所以針對NBA賽事新聞自動寫作的特定應用,需要構建特定的知識圖譜庫,才能更有效地發揮作用。而知識圖譜具有知識的檢索方式,非常適合結合模板來自動生成新聞。此外,知識圖譜能夠為新聞受眾提供更加條理化的信息,結構化的實體知識使得新聞不再流于表面描繪,若以可視化的形式呈現新聞背后的知識,可豐富自動寫作的新聞文本,傳達更多的信息,提供新聞的深度閱讀。
本文根據NBA賽事新聞本身所具有特點,構建了一個反映新聞要素的NBA賽事知識圖譜(1)NBA賽事知識圖譜已公開發布在http://www.openkg.cn/dataset/basketballkg,提出了一種結合知識圖譜的融合模板、抽取和生成多種模式的新聞自動寫作方法。如圖1所示,本文首先根據爬取的籃球相關領域知識信息,定義體現新聞要素的實體、屬性和關系,構建了一個專有的NBA賽事知識圖譜。接下來提出了一種關鍵事件抽取(Key Event Extraction, KEE)算法,建立用關鍵事件以凸顯賽場趨勢的描述模板庫來生成新聞的初稿。最后使用知識圖譜補充背景常識信息并突出新聞描述重點,從而生成新聞的終稿。結合NBA賽事知識圖譜,本文工作可以深度挖掘球員、球隊、比賽等背景信息,并為用戶呈現豐富多樣的可視化新聞,支持深度閱讀。

圖1 本文方法概覽圖
本文通過構建NBA賽事知識圖譜,來補充缺失的比賽常識和背景等信息,輔助體育新聞的生成,讓生成的新聞稿件質量更高。本文構建的NBA賽事知識圖譜屬于特定領域知識圖譜,其中的實體類定義為籃球賽事中的三個重要概念,分別為“球隊”“球員”和“比賽”。對于各實體,定義了輔助NBA賽事新聞生成需要用到的基本信息,例如,“球隊”實體,定義了“名稱”“別名”“分區”等屬性。在屬性定義的基礎上,定義了突顯新聞特點的實體之間的關系,包含“當前效力”“交手”“歷史交手”“參與比賽關系”這四種關系。根據從虎撲籃球網站(2)https://nba.hupu.com以及百度百科上爬取的相關數據,我們構建了一個能體現NBA賽事新聞特點的知識圖譜,統計數據如表1所示。該NBA賽事知識圖譜中節點的總數目有5 893個,其中,現役球員節點數量有620個,退役球員節點有3 407個;球隊節點數量有30個;抽取的比賽場數由1985年起到2019年一共有43 510場,需要用到的比賽節點數量為1 836。

表1 知識圖譜結果統計
為了生成相關NBA賽事新聞,本文提出了一種KEE算法,該算法從比賽的文字直播數據中抽取關鍵事件,再根據NBA賽事新聞特點制定新聞模板,針對KEE算法提取的關鍵事件生成新聞初稿。在用KEE算法寫作的初稿基礎上,本文結合構建的NBA賽事知識圖譜,對初稿內容進行補充完善,從而得到更高質量的新聞結果。
文字直播中,每一條數據都記錄著球場上發生的一個事件,但是這些單獨的事件并不能都出現在生成的新聞中,需要進行概括后選擇其中關鍵的事件生成新聞內容。而關鍵事件的獲取,需將文字直播分段,概括出不同時間段發生的關鍵事件,從而提煉新聞要素。
因比賽中關鍵事件發生時往往伴隨著分差的改變,故本文通過分析分差變化趨勢對數據進行分段。對文字直播數據中的每一條信息L,可用五元組(quarter, time, team, event, score)表示。其中,quarter指當前的節數,time是本節剩下的時間,team是發生事件的球隊,event是發生的事件,score是發生事件后的分數。記主隊a與客隊b在NBA籃球比賽中某一節時刻t的比分之差為dif(t),可用直播數據中t時刻的比分值(score)表示如式(1)所示。
dif(t)=scorea,t-scoreb,t
(1)
其中,時刻t∈{t0,t1,…,tn},可得所有時刻的得分差序列集合{dif(t0),dif(t1),…,dif(tn)}。這里以主隊視角進行描述,分差為正時代表主隊領先,反之,負分差代表主隊落后。為了獲得一節NBA賽事中新聞受眾感興趣的發展過程和趨勢,需從求得的分差結果中進一步分析分差波動頻率和幅度。
本文構造了一種基于關鍵時間點的分段方法來權衡分差的波動頻率和幅度。因一節NBA比賽中分差達到最大的時刻和分差達到最小的時刻均為這節比賽的一個轉折點,故我們將這兩個時刻定義為此節比賽的關鍵時間點,分別用key_time1和key_time2表示,具體如式(2)、式(3)所示。
接下來需要根據兩個關鍵時間點判斷其所在區間: 如果關鍵時間點出現在這節比賽前六分之一的時間,則將這節比賽開始時間t0作為關鍵時間點;如果出現在這節比賽的后六分之一的時間,則將這節比賽結束時間tn作為關鍵時間點。故key_time1和key_time2可表示如式(4)所示。
(4)
以下將分為dif(key_time1)-dif(key_time2)>8和dif(key_time1)-dif(key_time2)≤8這兩種關鍵時間點的分差情況對該節比賽的整體趨勢進行判斷。當比分差距>8時,則該節比賽分差波動幅度大,可以看作關鍵時間點前后差別大。此時這節比賽適合按照時間點切割為三段,對應賽場上的形勢,概括為下幾種情況:
(1) key_time1>key_time2,dif(key_time1)>0,dif(key_time2)<0: 先“擴大優勢”后“被反超”再“縮小劣勢”;
(2) key_time1
(3) key_time1>key_time2,dif(key_time1)<0:先“縮小劣勢”后“擴大劣勢”再“縮小劣勢”;
(4) key_time1 (5) key_time1>key_time2,dif(key_time2)>0:先“擴大優勢”后“縮小優勢”再“擴大優勢”; (6) key_time1 當比分差距≤8時,則該節比賽分差波動幅度較小,賽場形勢偏向拉鋸狀態,此時可將該節比賽作為整段來處理,具體分為以下三種情況: (1) dif(key_time2)>10:最小分差大于10且分差變化幅度不大,賽場形勢概括為主隊“穩穩領先”; (2) dif(key_time1)<-10:最小分差小于-10且分差變化幅度不大,賽場形勢概括為主隊“穩穩落后”; (3) dif(key_time1)>0,dif(key_time2)<0:分差在0分左右變化,賽場形勢概括為兩隊“膠著”。 除了上述一般情況以外,還有少量特殊情況,更適合將一節NBA比賽劃分為兩段。綜合以上各類情況,我們將一節比賽分段為如表2所示的一些情況,分別對應賽場主隊和客隊的比分趨勢,有助于后續的新聞生成。 表2 NBA賽事分段及趨勢概括(部分) (1) 得分類別: 得分類別包括文字直播中的“兩分球進”“三分球進”“罰球命中”。 (2) 打鐵類別: 打鐵類別包括“兩分不中”“三分不中”。 (3) 籃板類別: 籃板類別包括“進攻籃板”“防守籃板”。 (4) 犯規類別: 犯規類別包括“投籃犯規”“個人犯規”“進攻犯規”“惡意犯規”“技術犯規”等。 (5) 失誤類別: 失誤類別包括“傳球失誤”“出界”“丟球”等。 (6) 陣容調整。 (7) 暫停。 以住的語文課堂教學方式都比較單一,教師在講臺上講課,學生被動接收,課堂上很少有信息的交流,都是教師一直的“灌輸”,教師講什么學生只能被動地增收。這樣一來學生自主學習的能力就會被弱化,沒有交流,一些不同的意見和觀點也會被一致化,即只有教師教的才是對的。這樣的教學結果也可想而知。 接下來將相關的信息存儲到上述對應的類別中,按照事件描述特征(表3)從所有事件中轉換各類事件eventt,抽取關鍵事件E*,定義為五元組E*=(player,team,action,result,time),其中,player, team指的是動作的施加者和他的球隊;action是具體的動作,大多為基本事件;result是動作發生后的比分;time是動作發生的時間。 表3 NBA賽事關鍵事件(部分) 本文提出的基于關鍵時間點進行關鍵事件抽取的算法(KEE算法)如下: 算法1 基于關鍵時間點抽取關鍵事件的算法 完成上述新聞關鍵事件的抽取后,需要對關鍵事件進行描述才能成為一篇新聞報道的部分內容。為滿足關鍵事件的描述需要,我們構建了對應的模板,表4給出了部分關鍵事件描述模板。 表4 關鍵事件描述模板(部分) 續表 除了上述定義的關鍵事件需要在新聞中涉及之外,對一節比賽整體發展趨勢的描述也可作為新聞的一部分,比賽趨勢描述模板如表5所示。 表5 趨勢描述模板(部分) 生成新聞時一般需要結合兩類模板才能使最后生成的新聞效果好。具體的做法是,在趨勢模板中對應分段隨機選擇關鍵事件進行插入,生成的結果示例如下: “比賽開始,鵜鶘稍微占據主動,領先76人2分左右。然而之后76人不僅扳平了比分,還取得領先,領先最多達16分,喬爾-恩比德一人砍下13分,是球隊的首要功臣。首節比賽打完,76人領先鵜鶘15分。” 目前生成的新聞初稿包含了這場NBA比賽的流程和關鍵事件描述。雖然生成的初稿能夠涵蓋這場比賽的基本信息,但是依然存在著兩個較大的缺陷: 一是比賽背景信息不全;二是未體現新聞描述重點。為了解決這兩個問題,增加新聞的生成質量,將使用到第1節構建的NBA賽事知識圖譜來輔助新聞生成。 2.3.1 背景常識補充 NBA賽事知識圖譜中蘊含的如球員之間的交手記錄、球員最近狀態等背景常識信息可以對賽事新聞內容進行補充,可通過直接查詢或推理得到。圖2為對陣雙方圣安東尼奧馬刺和金州勇士這兩隊查詢得到的勝負關系,據此補充新聞中的背景信息,可表達為“圣安東尼奧馬刺對陣金州勇士62勝38負”。 圖2 球隊歷史勝負關系示例 除了從知識圖譜中直接獲取事實之外,還可根據實體及關系進行推理,得到更豐富的背景信息。例如,可從知識圖譜中查到球隊A和球隊B近期的交手比賽時間、最終得分等信息,如果球隊B最近與A交手都輸了,則可推理得到“球隊A對陣球隊B占據明顯優勢”。再如,針對單個球隊圣安東尼奧馬刺,可查詢得到該球隊最近的狀態信息(圖3),可知該球隊最近十場比賽的情況。若球隊最近十場比賽都贏了,則可推理出“十連勝”“狀態火熱”。 圖3 球隊最近比賽結果示例 2.3.2 新聞要素增強 NBA賽事新聞若要獲得讀者的青睞,除了上述平鋪直敘的賽況描述之外,還應增強新聞描述要素,突出讀者關注的明星球員的發揮或是最近表現出色的球員。在本文構建的知識圖譜中,每個球隊至少有一個領袖球員、多個明星球員。以此類球員為重點對比賽進行描述并對這些人的數據進行追蹤和匯總,將使得新聞更為生動,更具有話題性。圖4為知識圖譜中查詢到的洛杉磯湖人隊的領袖球員和明星球員,獲取他們的所有“得分事件”“籃板事件”“助攻事件”,生成匯總數據,可得到如下的一段球員表現新聞報道: 圖4 球隊明星球員示例 “在湖人方面,領袖球員勒布朗-詹姆斯得到17分13籃板5助攻,明星球員凱爾-庫茲馬19分6籃板,布蘭登-英格拉姆14分2籃板2助攻,極大地幫助了球隊。” 為了生成相關NBA賽事新聞,首先需要編寫爬蟲爬取相關比賽的文字直播數據,然后對爬取的數據進行數據預處理。本文用來生成新聞的數據為簡潔文字直播數據(3)處理后的文字直播數據已公開發布在https://github.com/conniemy/BasketballNews,雖然不包含事件細節的描述,但是涵蓋了整場比賽的發展流程,且具有規范性。表6為一段簡潔文字直播例子。在簡潔籃球文字直播數據中,每一條信息都可以由五元組=(quarter, time, team, event, score)表示。這里事件event的種類是固定的,一般包括“暫停”“失誤”“籃板球”“得分”“打鐵”“陣容調整”和“犯規”七種情況,并且事件都是獨立的,前后事件沒有必然的聯系。 表6 簡潔文字直播示例 本文選取虎撲籃球網站中NBA比賽對應的文字直播數據作為數據源,每場比賽至少由4小節構成。首先根據文字直播對數據進行分段,依據KEE算法結合模板庫進行NBA 賽事新聞的自動寫作。我們根據虎撲網一場比賽的文字直播數據(4)https://nba.hupu.com/games/playbyplay/156270自動生成一篇賽事新聞稿,如圖5所示。 圖5 賽事新聞初稿示例 在此基礎上,本文結合NBA賽事知識圖譜來增強上述新聞稿的生成質量,在上述結果的基礎上可以得到如圖6所示的賽事新聞稿,橫線部分突出展示了結合知識圖譜生成的新聞內容。對比兩則新聞可以直觀地看出,結合知識圖譜的新聞稿質量明顯更高,知識圖譜所帶來的信息補充效果明顯。 圖6 賽事新聞終稿示例 在對比實驗方面,本文使用了利用卷積神經網絡(CNN)自動生成足球新聞的方法[9-10,12]作為對比實驗,因上述工作均未公開足球文字直播數據集和源碼,故評測采用了Bi-LSTM+CNN[23]方式在本文公開的籃球文字直播數據集上進行了實驗,以下簡稱CNN方法。 我們隨機選取了最近一個賽季的50場NBA比賽,分別自動生成了CNN新聞稿、采用KEE算法的新聞初稿以及KEE算法結合知識圖譜的新聞終稿,分別進行了主觀評測和自動評估。 3.2.1 主觀評測 我們邀請了20名評測人員參加新聞質量主觀評價。這20名評測人員中有4名是一線體育新聞記者,10位NBA籃球愛好者,6位僅對NBA賽事有所耳聞的普通人。首先進行新聞整體質量的評價,評判標準分為優秀、良好、及格、較差四個級別。不同人群針對摘要法新聞稿的評價結果如圖7所示,針對KEE法新聞初稿以及KEE法融合知識圖譜的新聞終稿的評價結果分別如圖8、圖9所示。 圖7 CNN法新聞稿整體評價結果 圖8 KEE法新聞稿整體評價結果 圖9 KEE法融合知識圖譜的新聞稿整體評價結果 評估結果表明CNN新聞稿整體的優秀率和良好率最低,KEE法次之,而優秀率和良好率在KEE法融合知識圖譜之后有了明顯提升(對NBA愛好者而言,優秀率從17.80%提升到41.60%;對專業記者而言,良好率從39.50%提升到52%)。綜上,相對于CNN方法,本文融合知識圖譜生成的新聞更讓人滿意。我們的方法雖然不能達到專業的新聞水平,但是能基本滿足人們的閱讀需求,尤其是NBA愛好者亦即該領域新聞的直接讀者的需求。 為了更加全面地體現新聞質量,并對比出知識圖譜應用之后的優勢,我們設定了如下5個主觀評價指標: 表達流暢性、內容清楚程度、信息豐富程度、寫稿自然程度(是否有明顯的機器痕跡)、閱讀體驗感。各指標分別設置為1~5分,其中,5分為最符合該指標,1分為最不符合該指標。評測者事先不知道哪個新聞是哪種方式產生的,根據自己的主觀感受分別打分。 表7統計了20名評測人的打分平均值(結果保留到小數點后兩位,四舍五入),可以看出,CNN方法在大部分情況下比KEE方法評分略高;但KEE方法結合知識圖譜后,每個指標評分均有所提升,特別是“內容清楚程度”和“信息豐富度”上的提升比較明顯,這是由于知識圖譜的應用增加了生成新聞稿的背景信息和新聞描述重點。 表7 主觀評價指標評分(平均值) 3.2.2 自動評估 除了上述直觀的閱讀體驗評測外,我們還使用了ROUGE作為自動評估方法,使用ROUGE-N的F1作為評價指標,主要考察文本生成結果的充分性和必要性。自動評估采用的數據集來自從虎撲上爬取的494場籃球比賽的互動文字直播數據,一共58 745個句子,采用半自動的標注方法對句子進行了標注。評估數據集中,340場比賽43 211個句子作為訓練集,154場比賽15 534個句子作為測試集。 本文分別比對了隨機選取的50場NBA比賽由文字直播數據自動生成的CNN新聞稿、采用KEE算法的新聞初稿以及KEE算法結合知識圖譜的新聞終稿,以同一賽事在虎撲上由專業記者撰寫的賽事新聞作為優質參照數據。表8是3種方法在同樣ROUGE環境下在評估數據集上的評測結果。可以看出,本文提出的KEE方法實驗結果略高于經典的文摘式CNN方法,相對而言更貼合人工撰寫的新聞稿件,不像文摘式那么機械。KEE+KG方法的結果最優秀,這表明結合知識圖譜生成的最終新聞稿,可以讓NBA賽事新聞內容更為豐富,閱讀性大大增強。自動評估的結果與主觀評測的結果基本貼合,表明了本文融合知識圖譜的自動寫作方法的有效性。 表8 與CNN法新聞稿的自動評測對比 本文自動生成的融合知識圖譜的NBA賽事新聞最后將呈現在網站頁面上,并可應用知識圖譜中的其他背景知識來豐富新聞文本的呈現。常見的NBA賽事新聞頁面通常包含有新聞報道的文本、比賽圖片或者比賽視頻(圖10)。但是這樣的新聞呈現方式過于單調,并且讀者無法獲取新聞之外的額外信息。我們對新聞文本的部分關鍵詞進行了標記,點擊標記文本即可通過“彈窗”的方式補充展示背景知識。其中,球員或球隊的背景知識呈現采用力導向圖的形式(圖11),從第1節構建的知識圖譜庫中獲取球員、球隊實體的屬性,讓用戶可以快速了解該球員或球隊。 圖10 NBA新聞呈現頁面 圖11 生成新聞信息補充展示(球隊背景常識) 此外,新聞中涉及如背景事件一類的新聞要素的深度解讀,采用如圖12所示的標簽形式呈現。本文實現的結合知識圖譜的NBA賽事新聞呈現,通過讀者的交互式點擊,可以讓其獲得除本場比賽報道外更多的背景知識,極大地增加了讀者的閱讀體驗。 圖12 生成新聞信息補充展示(新聞要素增強) 本文提出了一種融合知識圖譜的NBA賽事新聞的自動寫作方法。首先基于關鍵時間點對比賽進行分段,接下來獲取比賽的趨勢描述。在此基礎上,本文根據籃球比賽的特點,定義了一些關鍵事件和與其對應的描述模板,用于新聞初稿生成。為了解決初稿中存在的背景信息缺失和賽事新聞要素描述不明等問題,使用構建的NBA賽事知識圖譜輔助新聞終稿的生成,從而提升生成新聞的質量。該方法生成的新聞稿件表達流暢、內容清楚、信息豐富、以假亂真度高、閱讀體驗感良好。此外,本文構建的知識圖譜還有助于NBA賽事新聞報道的深度可視化呈現。 下一步工作將在NBA賽事知識圖譜中引入更加豐富的賽事知識,構建更多的實體和實體之間的關系,增強知識圖譜輔助新聞生成的效果。同時在新聞模板中增加更多的描述模板和特殊事件,以期獲得更高質量的NBA賽事新聞。


2.2 關鍵事件的描述



2.3 融合知識圖譜的新聞內容生成



3 實驗結果與分析
3.1 數據預處理

3.2 NBA賽事新聞自動寫作結果與分析







3.3 結合知識圖譜的NBA賽事新聞呈現



4 總結與展望