劉昱彤 吳 斌 白 婷
(北京市智能通信軟件與多媒體重點實驗室(北京郵電大學(xué)) 北京 100876)(北京郵電大學(xué)計算機(jī)學(xué)院 北京 100876)
古詩詞在中國古典文學(xué)中占有極其重要的地位.隨著數(shù)字人文的發(fā)展,使用計算語言學(xué)和統(tǒng)計學(xué)的方法輔助詩詞的研究已成為一種普遍趨勢.如今,關(guān)于詩詞的知識是碎片化的,原因是互聯(lián)網(wǎng)上可得到的詩詞知識,一方面來自詩詞本身,另一方面來自詩詞的解讀資料,比如詩詞的注釋、譯文、鑒賞等.將古詩詞中的詞語通過語義的關(guān)聯(lián),以知識的形式聯(lián)系在一起,是一種比較合理的將詩詞的碎片化知識聯(lián)系在一起的方式.因此,古詩詞領(lǐng)域的知識圖譜是將詩詞的碎片化知識進(jìn)行關(guān)聯(lián)、整合的必要手段.
現(xiàn)有的詩詞知識圖譜,如“唐詩別苑”[1]和“宋代學(xué)術(shù)傳承知識圖譜”[2].前者僅涉及到詩人社交網(wǎng)絡(luò)、詩人遷徙游歷、作品熱點地圖這3個方面,而后者僅涉及宋朝人物師承關(guān)系.它們僅僅從幾個特殊的方面來構(gòu)建詩詞知識圖譜,但是忽略了各個部分之間的內(nèi)部聯(lián)系.顯然,這些詩詞知識圖譜在內(nèi)容完整性、結(jié)構(gòu)合理性、條理分明性有所欠缺.關(guān)于詩詞的分析工作,如唐宋文學(xué)編年地圖[3]將詩人的時空軌跡可視化,也只停留在詩詞寫作地點和寫作時間的人工整理以及對人物軌跡簡單的統(tǒng)計分析上,并未涉及到詩詞中實體的識別和實體之間語義關(guān)聯(lián)的判定.為了解決以上問題,本文構(gòu)建了一個內(nèi)容覆蓋全面且層次結(jié)構(gòu)分明的古詩詞圖譜,通過從文本中挖掘詞語的語義關(guān)聯(lián),將古詩中的詞語用知識的形式組織起來.
現(xiàn)有的通用領(lǐng)域的中文知識圖譜,如《大詞林》、HowNet、CN-DBpedia等,對古詩中涉及到的詞匯覆蓋率極低,不能采用抽取子集的方式直接構(gòu)建古詩詞領(lǐng)域的知識圖譜.而常規(guī)的知識圖譜構(gòu)建過程對古詩詞領(lǐng)域并不完全適用,由于詩句不遵循語法規(guī)則,無法用實體識別、實體關(guān)系抽取等常用自然語言處理技術(shù)構(gòu)建.同時也無法將詩詞中的詞匯鏈接到現(xiàn)有百科,因為現(xiàn)有百科幾乎沒有收錄古詩詞的詞語.
為了構(gòu)建古詩詞知識圖譜,我們該如何找到古詩中的詞語,又該如何將詞語的語義之間建立聯(lián)系.這項工作面臨2個挑戰(zhàn):1)如何界定古詩詞的詞語,又如何準(zhǔn)確地挑選出古詩詞中出現(xiàn)的詞語.由于詞語構(gòu)成古詩詞圖譜的節(jié)點,準(zhǔn)確地將古詩詞中出現(xiàn)的詞語抽取出來是整個工作的基礎(chǔ).2)如何利用和融合互聯(lián)網(wǎng)的多種詩詞知識源來準(zhǔn)確地獲取詞語之間的關(guān)聯(lián).針對第1個挑戰(zhàn),為了保證詩詞詞語抽取的準(zhǔn)確性,一般采用人工標(biāo)注的方式,但人工標(biāo)注過于費時費力.因此,我們的解決方案是模擬人工標(biāo)注時參考詩詞注釋和詞典中詞語解釋的過程來自動獲得詩詞中的詞語.一方面,我們利用詩詞的注釋,因為注釋正是對不可再分的語義單元的解釋,獲取注釋條目就精準(zhǔn)地獲取了詩詞中的詞語;另一方面,我們利用古漢語的新詞發(fā)現(xiàn)方法[4-5]產(chǎn)生詩詞中的候選詞,然后在詩詞注釋條目和中文詞典中查找,若出現(xiàn),則該候選詞是詩詞中的詞語,否則該候選詞不是詩詞中的詞語.針對第2個挑戰(zhàn),我們?nèi)诤显娫~注釋和中文詞典中的詞語解釋,找到詞語與詞語之間的聯(lián)系,再利用人工構(gòu)建的古詩詞分類體系建立語義之間的聯(lián)系.
本文的主要貢獻(xiàn)有3個方面:
1) 提出了一種古詩詞圖譜的構(gòu)建方法,并利用該方法構(gòu)建了一個內(nèi)容覆蓋全面、包含多層詞語語義聯(lián)系的古詩詞圖譜.該圖譜刻畫了詞語的多個層級,以合理的結(jié)構(gòu)覆蓋了詩詞的各個方面;該圖譜從詩詞的注釋和詞語的詞典解釋入手,挖掘出詞語的語義關(guān)聯(lián).
2) 古詩詞圖譜可以對詩詞進(jìn)行各種不同維度的分析.相比于基于字的淺層數(shù)據(jù)分析,利用古詩詞圖譜可以從語義的角度從真正的意義上輔助文學(xué)研究.以唐詩為例,展示了古詩詞圖譜在詩詞分析上的應(yīng)用,證明了古詩詞圖譜在詩詞分析中的必要性.
3) 古詩詞圖譜適用于詩詞的各種推理和分析任務(wù).以判定詩詞的題材、分析詩詞的情感2個任務(wù)為例,說明了古詩詞圖譜的應(yīng)用價值.
近年來,隨著數(shù)字技術(shù)和數(shù)字媒體的不斷發(fā)展,人文學(xué)科結(jié)合數(shù)字技術(shù)的研究應(yīng)運而生.2011年Michel等人[6]在《科學(xué)》雜志上發(fā)表了基于百萬電子化圖書對文化進(jìn)行量化分析的論文,挖掘出1800—2000年的英文語言中所反映出的語言學(xué)和文化現(xiàn)象;2014年Schich等人[7]在《科學(xué)》雜志上發(fā)表了量化分析文化中心變遷的論文,他們利用超過15萬的名人的出生地點和死亡地點的信息,建立了跨度2000年的遷徙網(wǎng)絡(luò),用網(wǎng)絡(luò)科學(xué)的手段分析了歐洲文化中心的變遷.這些工作為數(shù)字人文這一新興的交叉領(lǐng)域?qū)W科提供了一個良好的開端.
數(shù)字人文在中國詩詞上的研究,近年來涌現(xiàn)出大量的工作.王兆鵬[3]搭建了唐宋文學(xué)編年地圖平臺,將詩人的時空軌跡分布信息可視化.新華網(wǎng)聯(lián)合浙江大學(xué)發(fā)布的“宋詞繾綣,何處畫人間”[8]平臺,對宋詞進(jìn)行可視化展示,包括宋代詞人游歷路線、宋代詞人生平及所處年代圖譜、《全宋詞》常見意象統(tǒng)計等.清華大學(xué)自然語言處理與社會人文計算實驗室搭建了計算機(jī)詩詞創(chuàng)作系統(tǒng)“九歌”[9],結(jié)合seq2seq神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和詩詞韻律實現(xiàn)了古詩自動生成算法[10-11].但是,以上關(guān)于詩詞分析的工作都是簡單地對詞頻進(jìn)行統(tǒng)計,尚未涉及到詩詞中詞語與詞語之間的語義關(guān)聯(lián).
中文通用領(lǐng)域的知識圖譜主要有《大詞林》、HowNet、CN-DBpedia,接下來分別介紹.《大詞林》[12]是自動構(gòu)建的基于上下位關(guān)系的大規(guī)模開放域中文知識圖譜.HowNet[13]是人工標(biāo)注的語言知識庫.在HowNet中,最小的語義單位被稱為“義原”.HowNet中的“義原”大約有2 000個.HowNet 基于“義原”體系,共標(biāo)注了數(shù)十萬詞匯的語義信息.CN-DBpedia[14]是復(fù)旦大學(xué)知識工廠實驗室研發(fā)并維護(hù)的大規(guī)模通用領(lǐng)域結(jié)構(gòu)化百科.CN-DBpedia主要是從中文百科類網(wǎng)站(如百度百科、互動百科、中文維基百科等)的純文本頁面中提取信息,經(jīng)過濾、融合、推斷等操作后,最終形成高質(zhì)量的結(jié)構(gòu)化數(shù)據(jù),供機(jī)器和人使用.
然而,通用領(lǐng)域的中文知識圖譜對古詩詞中涉及到的詞匯覆蓋率極低,不能夠直接用來分析詩詞的詞語語義之間的聯(lián)系.
關(guān)于知識圖譜的構(gòu)建方法,劉嶠等人[15]在《知識圖譜構(gòu)建技術(shù)綜述》一文中總結(jié),知識圖譜的構(gòu)建過程包括信息抽取、知識融合、知識加工共3個階段.其中,信息抽取包括實體抽取[16-18]、關(guān)系抽取[19-21]、屬性抽取[22-23];知識融合包括實體鏈接[24-25]、知識合并[26];知識加工包括本體構(gòu)建[27]、知識推理[28]、質(zhì)量評估[29].可見,常規(guī)的知識圖譜都是從抽取實體和關(guān)系、構(gòu)建“實體-關(guān)系-實體”三元組開始的.
然而,常規(guī)的知識圖譜構(gòu)建過程無法適用于古詩詞知識圖譜的構(gòu)建.原因是,詩句不遵循主謂賓的語法結(jié)構(gòu),可以從詩詞中抽取出詞語,但是利用現(xiàn)有的關(guān)系抽取方法無法提取出詞語之間的關(guān)系,也無法確定詞語之間表達(dá)的語義是否相關(guān).而且,無法利用各種百科中的實體信息,因為現(xiàn)有的中文百科尚未收錄古詩詞中的詞語.
詩詞領(lǐng)域的知識圖譜方面,主要的工作有:“唐詩別苑”[1],是關(guān)于全唐詩語義檢索的可視化平臺,實現(xiàn)了唐詩的語義檢索功能和知識圖譜的可視化(包括詩人社交網(wǎng)絡(luò)、詩人遷徙游歷、作品熱點地圖、詩人屬性4個方面).“宋代學(xué)術(shù)傳承知識圖譜”[2],從“中國歷代人物傳記數(shù)據(jù)庫”[30](China biographical database project, CBDB)中抽取宋代人物之間的學(xué)術(shù)傳承關(guān)系和部分親屬關(guān)系,用知識圖譜來探究宋代士人的師承關(guān)系.周莉娜等人[31]設(shè)計了基于唐詩知識圖譜的智能知識服務(wù)平臺KnowPoetry,提供唐詩領(lǐng)域的知識探索、時空軌跡、語義查詢等智能化知識服務(wù).
以上提到的詩詞領(lǐng)域的知識圖譜,是以詩人、詩歌為單位的,并未從詞語的角度對詩詞的知識進(jìn)行建模和分析.而詩詞語義的基本組成單元是詞語,若要對詩詞進(jìn)行更深層次的語義研究,對詩詞詞語的語義進(jìn)行知識上的關(guān)聯(lián)是無法避開的一步.此外,以上工作構(gòu)建的詩詞知識圖譜僅從多個角度包含了詩詞知識,圖譜涉及到的內(nèi)容不夠全面,圖譜的組織不夠有條理.
古詩詞圖譜G=(V,E),由點的集合V和邊的集合E組成.點的集合V={Vhier,Vdesc,Vanno},包含3種類型的詞節(jié)點,分別是古詩詞分類體系中的詞Vhier、描述詞Vdesc、注釋條目的詞Vanno.邊的集合E={Ehier-hier,Ehier-desc,Edesc-desc,Edesc-anno},包含4種類型的邊,分別是Vhier與Vhier之間的邊、Vhier與Vdesc之間的邊、Vdesc與Vdesc之間的邊、Vdesc與Vanno之間的邊.
古詩詞圖譜的構(gòu)建過程如圖1所示,分為節(jié)點的構(gòu)建、邊的構(gòu)建2部分.
Fig.1 The process of constructing classical Chinese poetry knowledge graph圖1 古詩詞圖譜構(gòu)建流程圖
2.2.1 古詩詞圖譜——節(jié)點的構(gòu)建
詩詞中出現(xiàn)的詞語構(gòu)成古詩詞圖譜的節(jié)點,所以準(zhǔn)確地抽取出詩詞中的詞語非常關(guān)鍵.若人工標(biāo)注詩詞中的詞語,當(dāng)判斷某個字串是否是詞語時,參考的資料一般有2個來源:1)查看詩詞的注釋,若某個字串包含注釋信息,那么該字串就是詞語,因為注釋是對不可再分的語義單元的解釋.2)根據(jù)常識、使用平時的積累來判斷某個字串是否是詞語,其本質(zhì)就是判斷該字串是否是現(xiàn)代漢語的詞語,這個過程可以用查詢中文詞典的方式完成.人工標(biāo)注的方式過于費時費力,所以本文模仿人工標(biāo)注的方式來自動獲取詩詞中的詞語.首先利用古漢語新詞發(fā)現(xiàn)算法中改進(jìn)的Apriori算法[4-5]產(chǎn)生候選詞,該算法可以不遺漏地挖掘出長度在2~K之間的所有可能詞語;然后搜索候選詞是否出現(xiàn)在詩詞注釋條目和中文詞典中,若出現(xiàn)則判定該候選詞為詩詞中的詞語,這一步模擬了人工標(biāo)注的過程.總的來說,這種方式全自動地、準(zhǔn)確地得到了詩詞中的詞語,即圖譜的節(jié)點.接下來對改進(jìn)的Apriori算法[4-5]進(jìn)行詳細(xì)說明.
算法1.改進(jìn)的Apriori算法.
輸入:原始語料D;
輸出:候選新詞的集合.
/*產(chǎn)生1-頻繁項集*/
① 1-候選項集C1={c1,c2,…};
② 統(tǒng)計原始語料中單個字的出現(xiàn)頻次,得到(字,頻次)的二元組集合S1={(c1,f1),(c2,f2),…};
③ for (ci,fi) inS1
④ iffi>支持度
⑤ 把ci加入1-頻繁項集L1;
⑥ end if
⑦ end for
⑧ 得到1-頻繁項集L1;
/*產(chǎn)生2-頻繁項集*/
⑨ forciinL1
⑩ forcjinL1
其次,要求在小型水電站工作機(jī)組的運行過程之中,隨時對進(jìn)行發(fā)電和電力傳輸?shù)脑O(shè)備進(jìn)行安全檢修和檢查工作,務(wù)必保證小型水電站發(fā)電機(jī)組的正常工作運行。具體的來說,在小型水電站發(fā)電機(jī)組的運行過程之中,有著很多的關(guān)鍵設(shè)備組份發(fā)揮著為發(fā)電設(shè)備傳輸電流并傳輸電力的作用,為了有效的保證小型水電站發(fā)電機(jī)組的正常工作運行,就需要保證這些設(shè)備可以有效的運行。針對這樣的情況,就需要對這些設(shè)備進(jìn)行隨時隨地的檢查,一旦出現(xiàn)油污或者損毀情況,就需要及時的采取有效的清污處理亦或者是采取相應(yīng)的打磨處理,務(wù)必保證這些設(shè)備處于正常的工作狀態(tài)當(dāng)中。
2.2.2 古詩詞圖譜——邊的構(gòu)建
古詩詞圖譜的邊刻畫了古詩詞中詞語的語義聯(lián)系,所以利用互聯(lián)網(wǎng)存在的多種知識源來準(zhǔn)確地獲取詞語之間的關(guān)聯(lián)非常重要.現(xiàn)階段關(guān)于詩詞詞語語義相似度的工作[32-33]只能挖掘出頻繁共現(xiàn)的詞,并認(rèn)為它們是相似的.但是,我們的目標(biāo)是準(zhǔn)確地將具有相同主題的詞相關(guān)聯(lián).比如西晉名將羊祜的典故有多種表達(dá):“羊公碑”、“峴山”、“征南”、“淚碑”,“羊公”,這些詞語之間是具有語義聯(lián)系的.利用完全無監(jiān)督的方法很難獲取到這樣的語義聯(lián)系,而詩詞的注釋和詞典的詞語解釋是對語義的權(quán)威釋義,利用詞語的權(quán)威解釋可以準(zhǔn)確有效地挖掘出詞語的語義聯(lián)系.因此,本文基于詩詞注釋和中文詞典中的詞語解釋,在相互關(guān)聯(lián)的詞語之間建立了聯(lián)系,但是,語義和語義之間仍然是不相關(guān)的.為了進(jìn)一步在不同的語義之間建立聯(lián)系,我們設(shè)計了古詩詞分類體系,以多層分類結(jié)構(gòu)將不同的語義有條理地組織在一起,從而形成完整的古詩詞圖譜.
如圖1所示,構(gòu)建古詩詞圖譜的邊可大致分為3個步驟:
1) 獲取和處理注釋信息.爬取“百度漢語”網(wǎng)站,獲取詩詞注釋.爬取“漢典”網(wǎng)站,獲取詩詞候選詞的注釋.然后將2部分注釋信息分別處理清洗,之后合并.
2) 構(gòu)建古詩詞分類體系.構(gòu)建關(guān)于古詩詞的分層體系,得到4棵根節(jié)點分別是“時間”、“地點”、“景物”、“人”的樹.
3) 構(gòu)建古詩詞圖譜.將注釋條目的詞通過描述詞關(guān)聯(lián)到詩詞分類體系的詞,得到古詩詞圖譜.
2.2.2.1 獲取和處理注釋信息
關(guān)于詩詞的注釋,我們爬取“百度漢語”[注]https://hanyu.baidu.com/網(wǎng)站來獲取.百度漢語的注釋示例如圖2(a)所示.在該例中,“黃鶴樓”、“孟浩然”、“廣陵”、“故人”、“煙花”、“唯見”是所需要的詞語,而“碧空盡”、“天際流”這樣的詞并不是我們所需要的.“碧空盡”中的“碧空”,“天際流”中的“天際”也是所需要的.因此,首先,我們用正則表達(dá)式把所有的注釋處理成(詞,解釋)的二元組形式,圖2(a)的例子就包含了14個這樣的二元組(除了圖2(a)展示的11個,還包含“盡”、“碧空”、“天際”).然后把所有詩的相同詞的注釋合并,以特殊符號“|”分隔.
關(guān)于候選詞的解釋,我們爬取“漢典”[注]https://www.zdic.net/網(wǎng)站來獲取.漢典中的詞語解釋示例如圖2(b),對于每個詞,我們爬取的是“解釋”和“國語辭典”2個部分.
最后,將百度漢語和漢典這2個渠道獲得的詞語解釋合并.
2.2.2.2 構(gòu)建古詩詞分類體系
董乃斌在《中國文學(xué)敘事傳統(tǒng)論稿》一書中提到“詩歌和其他各種文學(xué)作品一樣,都是要通過‘?dāng)⑹觥瘉肀磉_(dá)的.時間、地點、景物、人物、事件,包括作者內(nèi)心的感情,統(tǒng)統(tǒng)都得由作者或口頭或書面地敘述出來.抒情其實也是一種敘述,不過所敘的是感情或情緒,且主要是作者本人的感情或情緒而已.”[34]
具體而言,人處于特定的時間、地點,受到眼前景物的觸發(fā),再結(jié)合自身的背景和經(jīng)歷,會產(chǎn)生不同的心情、抒發(fā)不同的感情和人生感悟.所以本文設(shè)計的古詩詞分類體系是圍繞時間、地點、景物、人這4個方面展開的,如表1所示,受篇幅限制,只展示了部分分類體系.古詩詞分類體系是由我們邀請的3位古漢語文學(xué)專業(yè)的專家利用3天時間手工構(gòu)建的.由于構(gòu)建古詩詞分類體系涉及到詩詞的常識知識,且沒有現(xiàn)成的古詩詞領(lǐng)域常識圖譜,因此構(gòu)建過程必須人工參與.構(gòu)建完成古詩詞分類體系,就創(chuàng)建了Vhier和Ehier-hier.
Fig.2 Example of annotations in Baidu Chinese and Han Dian圖2 “百度漢語”和“漢典”的注釋示例
Table 1 Hierarchical Structure of Words in Classical Chinese Poetry
表1 古詩詞分類體系
Level-1Level-2Level-3Level-4Level-5時間節(jié)日、季節(jié)元宵、人日、端午、冬至、社日、春、夏、秋、冬……地點山、水、邊塞、建筑、名勝、行政區(qū)劃峰、湖、溪、河、池、西域、塞外、邊關(guān)、沙漠、亭、齋、臺、館、游覽勝地、名樓、河北、河南、湖北、湖南……景物天氣、日月星辰、植物、動物雨、霧、霜、日、月、星、樹、花、草、谷物、鳥、昆蟲、哺乳動物、冷血動物柳樹、桑樹、梅花、蘭花、兔絲、女蘿、飛蓬、粟、麥、粱、麻、黍、烏鴉、燕子、蝴蝶、蜜蜂、螞蟻、蟬、猿猴、狗、兔、蛇、龜、蟾蜍……人基本需求、基本屬性、知識儲備衣、食、住、行、玩、神話、歷史、心情、經(jīng)歷、品質(zhì)、人生大事、社會地位帽子、短衣、頭巾、酒、菜、飯、肉、被子、枕頭、床、轎子、馬車、船、書法、下棋、長壽、祥瑞、夏朝、商朝、西周、東周、喜悅、哀傷、送別、羈旅、孝順、守信、弱冠、登科、貧民、官宦……黃帝、唐堯、虞舜、伯夷、叔齊、姜子牙、召伯、周文王、周武王……
2.2.2.3 構(gòu)建古詩詞圖譜
古詩詞分類體系是古詩詞圖譜的一部分,本節(jié)講述如何將注釋條目加入古詩詞分類體系中,構(gòu)成最終的古詩詞圖譜.算法2描述了該過程.算法2的主要思路是:找到與古詩詞分類體系的葉子節(jié)點相關(guān)的若干個描述詞,在葉子節(jié)點和描述詞之間建立聯(lián)系,在描述詞之間建立聯(lián)系.對某個描述詞遍歷所有的注釋條目,若該描述詞出現(xiàn)在某注釋內(nèi)容中,則在該描述詞與該注釋條目之間建立聯(lián)系.
算法2.構(gòu)建古詩詞圖譜算法.
輸入:古詩詞分類體系Trees={Tree1,Tree2,Tree3,Tree4}、詞語解釋集合word_anno_set={(word1,anno_list1),(word2,anno_list2),…,(wordn,anno_listn)};
輸出:古詩詞圖譜G.
①G=Trees;
② fortreeinTrees
③ fornodeintree.leave_nodes/*node有多個描述詞:desc1,desc2,…,descm*/
④ foriinrange(m) /*對每個描述詞*/
⑤node′=Add_node(desci);
/*將desci作為節(jié)點加入圖G*/
⑥Add_edge(node,node′); /*在node
和node′之間構(gòu)建連邊*/
⑦ for (word,anno_list) inword_anno_set
⑧ ifdesciin ‘’.join(anno_list)
⑨Add_edge(node′,word);
⑩ end if
/*在兩兩描述詞之間構(gòu)建連邊*/
下面通過例子來解釋這一過程.如圖3所示,“風(fēng)”是詩詞分類體系中根節(jié)點為“景物”的樹的一個葉子節(jié)點,它的父親節(jié)點是“天氣”.與“風(fēng)”這一節(jié)點有關(guān)的描述詞有“狂風(fēng)”、“刮風(fēng)”、“大風(fēng)”.步驟1,在“風(fēng)”與“刮風(fēng)”,“風(fēng)”與“大風(fēng)”,“風(fēng)”與“狂風(fēng)”之間構(gòu)建1條邊.這一步驟的含義是同一事物有多個描述詞.步驟2,在“刮風(fēng)”、“大風(fēng)”、“狂風(fēng)”兩兩之間構(gòu)建1條邊.這一步驟的含義是事物的不同描述詞是等價的、地位相同的.步驟3,遍歷所有的注釋條目,分別找到這3個描述詞出現(xiàn)在注釋內(nèi)容中的注釋條目.比如,“狂風(fēng)”分別出現(xiàn)在了“沖風(fēng)”、“驚飆”、“驚風(fēng)”這3個詞的注釋中,那么,就將“狂風(fēng)”與“沖風(fēng)”,“狂風(fēng)”與“驚飆”,“狂風(fēng)”與“驚風(fēng)”之間各構(gòu)建1條連邊.這一步驟的含義是如果某個詞出現(xiàn)在了某條注釋中,就說明該注釋條目與該詞內(nèi)容相關(guān).
Fig.3 Example of the process of constructing classical Chinese poetry knowledge graph圖3 古詩詞圖譜構(gòu)建過程舉例
Fig.4 Statistics of number of poems’ words in classical Chinese poetry knowledge graph圖4 詩詞涉及的古詩詞圖譜的詞語數(shù)量統(tǒng)計
以唐詩為例,構(gòu)建古詩詞圖譜.在古詩詞圖譜的節(jié)點的構(gòu)建過程中,關(guān)于改進(jìn)的Apriori算法,K設(shè)置為3,支持度設(shè)置為5,低頻閾值設(shè)置為2.在古詩詞圖譜的邊的構(gòu)建過程中,“百度漢語”中可以檢索到的唐詩共40 531首,包含注釋信息的共1 330首,通過處理、清洗、合并后共得到7 668條注釋信息.通過改進(jìn)的Apriori算法產(chǎn)生的候選詞,在“漢典”中能夠找到解釋的共有18 589個.將“百度漢語”和“漢典”這2個渠道獲得的詞語解釋合并后,共得到21 907條詞語和與之對應(yīng)的解釋.最終,構(gòu)建的古詩詞圖譜共有6 619個節(jié)點、10 292條邊.其中,單個字節(jié)點有231個,2字詞節(jié)點有6 116個,3字詞節(jié)點有259個,4字詞節(jié)點有13個.
為了評測構(gòu)建的古詩詞圖譜的性能,對詩詞中涉及的古詩詞圖譜的詞語個數(shù)進(jìn)行統(tǒng)計,如圖4所示.統(tǒng)計的范圍是唐詩中的五言詩和七言詩,共40 210首,從圖4中可以看到,只有大約2 000首詩沒有包含古詩詞圖譜的詞語.大部分詩詞涉及的古詩詞圖譜的詞語個數(shù)在0~10之間.而大部分唐詩是五言或七言的律詩或絕句,也就是說大部分唐詩的字?jǐn)?shù)是幾十個字,因此,我們構(gòu)建的古詩詞圖譜的詞語覆蓋率是可觀的.
本節(jié)以唐詩為例,說明古詩詞圖譜在詩詞分析中的作用.
本節(jié)探究了季節(jié)、天氣、地點對詩人情感的影響.利用古詩詞圖譜,把與季節(jié)、天氣、地點、情感有關(guān)的詞分別關(guān)聯(lián)起來,從更廣的詞的范圍對“季節(jié)-情感”、“天氣-情感”、“地點-情感”進(jìn)行全面、具體地數(shù)據(jù)分析,從而得到更深層次的結(jié)論.
3.1.1 季節(jié)對詩人情感的影響
欲探究不同的季節(jié)對詩人的情感產(chǎn)生什么樣的影響,我們將統(tǒng)計描述季節(jié)的詞和描述情感的詞在詩中的共現(xiàn)關(guān)系.
對于季節(jié)Si,我們需要分別統(tǒng)計Si和詩人的9種情感(哀傷、失意、愁緒、喜悅、孤獨、恐懼、憤怒、怨恨、驚訝)之間的共現(xiàn)次數(shù),即季節(jié)Si和情感Ej共現(xiàn)的詩的個數(shù)(j=1,2,…,9).然后,計算情感Ej(j=1,2,…,9)對季節(jié)Si所占的比例:
(1)
其中,#(Si,Ej)表示季節(jié)Si和情感Ej共現(xiàn)的詩的個數(shù).
如果沒有古詩詞圖譜,在統(tǒng)計詩詞描述的季節(jié)時,我們只會檢驗“春”、“夏”、“秋”、“冬”這4個字是否出現(xiàn)在詩中.但是,有時詩中有關(guān)季節(jié)的表達(dá)卻不止這4個字,比如,“霜天”、“歸雁”、“玉露”、“紅葉”也同樣表明是秋天.在古詩詞圖譜中,“春”、“夏”、“秋”、“冬”是較為抽象的詞語,屬于古詩詞分類體系中的詞語,由它們向下延伸可以拓展出很多相關(guān)詞語.描述情感的詞同理,在古詩詞圖譜中,“哀傷”、“失意”、“愁緒”等也屬于古詩詞分類體系中的詞語.利用古詩詞圖譜對季節(jié)和情感共現(xiàn)次數(shù)進(jìn)行統(tǒng)計,可以得到更加全面、真實的結(jié)果.
圖5展示了4種季節(jié)中每一種情感所占的比例.從圖5可以看出,春、夏、秋、冬4種季節(jié)占比最高的情感分別是喜悅、哀傷、哀傷、哀傷.關(guān)于春天和秋天,這是符合常識的,春天萬物復(fù)蘇、生機(jī)勃勃,容易使人心情愉悅并產(chǎn)生積極向上的情緒;而秋天蕭索悲涼,萬物枯敗,容易使人聯(lián)想到自己的衰老和不濟(jì),產(chǎn)生悲傷的情緒.關(guān)于夏天和冬天,我們發(fā)現(xiàn),這2個季節(jié)的主要情感也是哀傷.而且,這4個季節(jié)中,哀傷、失意、愁緒、孤獨這4種負(fù)面情感占據(jù)了非常大的比例,而恐懼、憤怒、怨恨、驚訝占據(jù)比例很小.因此,我們可以得出結(jié)論,大部分詩詞表達(dá)的情感都是負(fù)面的,但是春天是容易讓詩人的情感轉(zhuǎn)變?yōu)榉e極的一個重要因素.
Fig.5 The histogram of the influence of different seasons on poets’ emotions圖5 不同季節(jié)對詩人情感的影響柱形圖
3.1.2 天氣對詩人情感的影響
欲探究不同的天氣對詩人的情感產(chǎn)生什么樣的影響,我們將統(tǒng)計描述天氣的詞和描述情感的詞在詩中的共現(xiàn)關(guān)系.
類似地,計算情感Ej(j=1,2,…,9)對天氣Wi所占的比例:
(2)
其中,#(Wi,Ej)表示天氣Wi和情感Ej共現(xiàn)的詩的個數(shù).
利用古詩詞圖譜可以發(fā)現(xiàn),描述“雪”的詞還有“飄素”、“玉蕊”、“天花”、“玉英”、“玉花”等.描述“雨”的詞還有“蹄涔”、“丁丁”等.描述“風(fēng)”的詞還有“摧折”、“長條”等.利用古詩詞圖譜進(jìn)行統(tǒng)計,比僅僅對詩詞統(tǒng)計“雪”、“雨”、“風(fēng)”、“露”、“云”這5個字更加全面.
圖6展示了5種天氣中每一種情感所占的比例.從圖6可以看出,哀傷、失意、愁緒、喜悅、孤獨仍然占比很大,恐懼、憤怒、怨恨、驚訝仍然占比很小,結(jié)合3.1.1節(jié)可以說明,前5種情感在整個唐詩集合中占比很大,后4種情感在整個唐詩集合中占比很小.接下來,通過比較在特定情感下5個代表天氣柱的相對高度來解析不同天氣對詩人情感的影響.
Fig.6 The histogram of the influence of different weather on poets’ emotions圖6 不同天氣對詩人情感的影響柱形圖
在圖6中,“哀傷”在“雨”這種天氣中的占比顯著高于“哀傷”在其他天氣中的占比,“喜悅”在“雨”這種天氣中的占比顯著低于“喜悅”在其他天氣中的占比.這說明了“雨”這種天氣相比于其他天氣,更加傾向于帶給人哀傷的情緒,換句話說,詩人更愿意用“雨”來渲染詩歌的悲傷氛圍.此外,“恐懼”在“云”中的比例顯著高于“恐懼”在其他天氣中的比例.“憤怒”在“風(fēng)”中的比例顯著高于“憤怒”在其他天氣中的比例.這說明了詩人更傾向于使用“云”這樣的天氣來表達(dá)“恐懼”的情緒,更傾向于使用“風(fēng)”這樣的天氣來表達(dá)“憤怒”的情緒.
3.1.3 地點對詩人情感的影響
欲探究不同的地點對詩人的情感產(chǎn)生什么樣的影響,我們將統(tǒng)計描述地點的詞和描述情感的詞在詩中的共現(xiàn)關(guān)系.
類似地,計算情感Ej(j=1,2,…,9)對地點Pi所占的比例:
(3)
其中,#(Pi,Ej)表示地點Pi和情感Ej共現(xiàn)的詩的個數(shù).
詩詞中關(guān)于地點的描述十分復(fù)雜,沒有統(tǒng)一的規(guī)則.比如典型的描述“邊塞”的詞語有“輪臺”、“磧西”、“樓蘭”、“龍城”、“北庭”等.若要對地點進(jìn)行覆蓋面全的統(tǒng)計,利用古詩詞圖譜是必要的.在古詩詞圖譜中,“邊塞”屬于古詩詞分類體系中的詞語,由“邊塞”可以拓展到“西域”、“塞外”、“新疆”、“邊關(guān)”、“塞北”、“沙漠”等,然后可以進(jìn)一步拓展直到底層節(jié)點為止.通過這樣的層級結(jié)構(gòu),完整而有條理地覆蓋了所有地點詞匯.對于“山”、“水”、“建筑”、“名勝”也是如此.
圖7展示了5種地點中每一種情感所占的比例.在圖7中,“哀傷”在“邊塞”中所占比例相比于“哀傷”在其他地點中所占比例是最高的,這說明了邊塞更容易讓人產(chǎn)生悲傷的情緒,原因是邊塞總是和戰(zhàn)爭、戍邊聯(lián)系在一起.“愁緒”在“水”中所占比例相比于“愁緒”在其他地點中所占比例是最高的,這說明古人總是將“水”和“愁緒”聯(lián)系在一起,比如李白的著名詩句“抽刀斷水水更流,舉杯消愁愁更愁”.“孤獨”在“山”中所占比例相比于“孤獨”在其他地點中所占比例最高,“山”帶給人的感覺確實是孤獨的.
Fig.7 The histogram of the influence of different places on poets’ emotions圖7 不同地點對詩人情感的影響柱形圖
唐朝分為初唐、盛唐、中唐、晚唐4個時期,本節(jié)將首先描述2個詩人之間寫作風(fēng)格相似度的度量方式,然后對同一時期詩人寫作風(fēng)格的相似度和相鄰時期詩人寫作風(fēng)格的相似度進(jìn)行度量,探究不同時期對詩人寫作風(fēng)格相似度的影響.
3.2.1 2個詩人之間寫作風(fēng)格相似度的度量
我們對寫作風(fēng)格的定義有2個維度,分別是題材和情感.關(guān)于題材,有“送別”、“羈旅”、“戰(zhàn)爭”、“田園”、“愛情”、“懷人”、“被貶”、“詠史”、“思鄉(xiāng)”、“山水”10種類別.關(guān)于情感,有“喜悅”、“憤怒”、“哀傷”、“愁緒”、“孤獨”、“恐懼”、“驚訝”、“怨恨”、“失意”9種類別.利用古詩詞圖譜,可以更加全面、準(zhǔn)確地統(tǒng)計詩詞中與題材和情感有關(guān)的詞語.
表示該詩人所寫的詩中與emotioni情感有關(guān)的詞語占全部與情感有關(guān)的詞語的比例.
然而,得到每位詩人寫作題材和情感的占比,對于分析時期的特點沒有太多價值,更有價值的是將占比從大到小排序.因此,每位詩人的表示由2個向量轉(zhuǎn)換成了2個有序列表,即Lpoet=(Ltheme,Lemotion),其中Ltheme=(theme1,theme2,…,theme10),Lemotion=(emotion1,emotion2,…,emotion9).通過度量2個有序列表的相似度,我們可以度量2個詩人寫作風(fēng)格的相似度.我們使用RBO(rank-biased overlap)[35]來度量有序列表的相似度.
3.2.2 同一時期詩人寫作風(fēng)格的相似度
利用古詩詞圖譜的信息,可以將時間和詩人寫作風(fēng)格這2個因素有效地聯(lián)系起來.而且,古詩詞知識圖譜包含的信息有多種維度且非常全面,足以支撐對同一時期詩人寫作風(fēng)格的相似性的探究.
對同一時期的兩兩詩人之間計算相似度后取平均,可以得到這一時期寫作風(fēng)格的相似程度.初唐、盛唐、中唐、晚唐,這4個時期寫作風(fēng)格的相似程度如圖8所示.
Fig.8 Trend of the similarity of writing style in different historical periods of Tang Dynasty圖8 唐朝不同時期寫作風(fēng)格相似度的變化趨勢圖
圖8中,這4個時期詩人寫作風(fēng)格的相似程度整體呈現(xiàn)上升趨勢,究其原因,是源于對前一時期和同一時期著名詩人寫作風(fēng)格的效仿.而從中唐到晚唐,寫作風(fēng)格相似程度降低,說明詩壇的徹底沒落導(dǎo)致對同一時期的效仿現(xiàn)象減少.
具體來說,初唐時期寫作風(fēng)格的相似程度是非常低的,也就是說,詩人的寫作風(fēng)格在初唐是多元化的,之后到盛唐、中唐,詩人的寫作風(fēng)格越來越趨于一致.晚唐時,相比于中唐時期,寫作風(fēng)格的相似程度有所下降.結(jié)合當(dāng)時的背景來看,這個結(jié)論是比較合理的.初唐是唐詩的起步發(fā)展時期,寫作風(fēng)格是多元化的,而后面的時期詩人的寫作就有了可參照的對象.盛唐時期是中國詩詞的最高峰,在這個時期之后,很多詩人都在效仿盛唐時期詩人的寫作風(fēng)格.比如杜甫就是一個典型的被后世效仿和追隨的對象.由于盛唐之后詩壇的沒落,在同時期十分出色的詩人也會被效仿.比如中唐時期,元和新體的2個詩派分別以白居易和韓愈為首,這2位詩人就是被追隨的對象.所以,從初唐到中唐,寫作風(fēng)格的相似程度呈現(xiàn)出上升的趨勢.然而到了晚唐,詩壇的徹底沒落,會導(dǎo)致詩人沒有可以追隨的同時期的詩人,所以寫作風(fēng)格的相似程度會呈現(xiàn)出下降的趨勢.
3.2.3 相鄰時期詩人寫作風(fēng)格的相似度
利用古詩詞圖譜中蘊(yùn)含的信息,可以將時間和詩人寫作風(fēng)格這2個因素關(guān)聯(lián)起來.而且,古詩詞知識圖譜覆蓋面全、具有多種維度的特點,使得對相鄰時期詩人寫作風(fēng)格的相似度進(jìn)行分析成為可能.
對2個相鄰時期的兩兩詩人之間計算相似度后取平均,可以得到這2個相鄰時期的寫作風(fēng)格的相似度.圖9展示了初唐-盛唐、盛唐-中唐、中唐-晚唐的相似度.
Fig.9 Trend of similarity of writing style in the adjacent historical periods of Tang Dynasty圖9 唐朝相鄰時期寫作風(fēng)格相似度的變化趨勢圖
從圖9可以發(fā)現(xiàn),隨著時間的推移,相鄰2個時期寫作風(fēng)格的相似度越來越高.這說明隨著時間的推移,效仿前一個時期寫作風(fēng)格的現(xiàn)象越來越顯著.
利用古詩詞圖譜對詩詞進(jìn)行數(shù)據(jù)分析,相比于只統(tǒng)計單字,可以得到更深層次、更有意義的結(jié)論.
古詩詞圖譜可以適用于各種關(guān)于詩詞的推理和分析任務(wù),下面在判定詩詞題材和分析詩詞情感的2個任務(wù)上進(jìn)行驗證.
針對判定詩詞題材和分析詩詞情感的2個任務(wù),模型結(jié)構(gòu)如圖10所示.模型由Embedding層、CNN層/平均池化層、圖注意力層、注意力層組成.首先,將詩詞內(nèi)容用BERT編碼,然后通過CNN層/平均池化層得到詩詞的更抽象的表示;將古詩詞圖譜用圖注意力網(wǎng)絡(luò)編碼,學(xué)習(xí)到每個節(jié)點的表示,然后抽取出詩詞包含的圖節(jié)點,用注意力機(jī)制把它們的表示做加權(quán)和.最后,將詩詞的這2部分表示拼接起來,接softmax分類器,用交叉熵?fù)p失函數(shù)來計算損失.
Fig.10 The model integrating classical Chinese poetry knowledge graph圖10 融合古詩詞圖譜的模型
4.1.1 Embedding層
本文使用谷歌開源的BERT[36]中文預(yù)訓(xùn)練模型初始化字向量.對于每首唐詩,將標(biāo)題和內(nèi)容輸入BERT模型,最大長度設(shè)為150.由于BERT中文預(yù)訓(xùn)練模型輸出的字向量的維度是768,所以每首詩經(jīng)過BERT預(yù)訓(xùn)練模型后,得到的表示的維度為(150,768).
4.1.2 CNN層/平均池化層
BERT預(yù)訓(xùn)練模型輸出字的表示將通過CNN層或平均池化層.接下來分別描述CNN層和平均池化層.
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)[37]可用于捕捉文本的n-gram特征.
x1:n=x1⊕x2⊕…⊕xn,
(4)
其中,⊕表示拼接操作.更一般地,xi:i+j指的是xi,xi+1,…,xi+j的拼接.
ci=f(w·xi:i+h-1+b),
(5)
c=(c1,c2,…,cn-h+1).
(6)
對于池化層,采用最大池化,對每個特征圖捕捉最重要的特征:
(7)
以上描述了通過1個過濾器獲得1個特征的過程.在常見的CNN模型中,用不同尺寸的多個過濾器獲得多個特征.
平均池化層采用bert-as-service[注]https://github.com/hanxiao/bert-as-service的平均池化策略,即每首通過BERT模型編碼的詩,對第1個維度(最大序列長度)取平均,這樣每首詩就表示成768維的向量,使得不同長度的詩全都編碼成相同長度的向量.
4.1.3 圖注意力層
圖注意力網(wǎng)絡(luò)(graph attention network, GAT)[38],能夠很好地學(xué)習(xí)圖結(jié)構(gòu)數(shù)據(jù)的節(jié)點表示.只需要提供圖結(jié)構(gòu)和節(jié)點的初始特征,給予適當(dāng)?shù)谋O(jiān)督信號,就能夠自動學(xué)習(xí)其他節(jié)點對當(dāng)前節(jié)點的重要程度,從而對當(dāng)前節(jié)點進(jìn)行更好的表示.圖注意力網(wǎng)絡(luò)的核心是圖注意力層.接下來,對圖注意力層的原理進(jìn)行詳細(xì)介紹.
然后,計算兩兩節(jié)點之間的注意力分?jǐn)?shù)eij:
(8)
接下來,通過softmax函數(shù)將注意力分?jǐn)?shù)eij進(jìn)行規(guī)范化,從而得到注意力權(quán)重αij,計算過程為
(9)
(10)
之后,還可以進(jìn)一步擴(kuò)展為多頭圖注意力層.把K個圖注意力層得到的節(jié)點表示進(jìn)行拼接,就得了新的節(jié)點表示:
(11)
將古詩詞圖譜的每個節(jié)點用BERT模型初始化特征,然后輸入多層GAT,得到新的節(jié)點表示.
4.1.4 注意力層
假設(shè)一首詩包含的圖節(jié)點的集合是N={n1,n2,…,nm}.從GAT層的輸出取出這些節(jié)點的特征{f1,f2,…,fm},通過注意力機(jī)制,對詩中提到的不同節(jié)點的重要度進(jìn)行學(xué)習(xí),以產(chǎn)生合理的表示.注意力層的公式為
ui=tanh(WAfi+bA),
(12)
(13)
(14)
這一層的參數(shù)是WA,bA,uA.
4.1.5 損失函數(shù)
(15)
4.2.1 數(shù)據(jù)集
為了評測判定詩詞題材和分析詩詞情感這2個任務(wù)的實驗效果,我們設(shè)計了一些規(guī)則自動地對詩詞進(jìn)行類別的標(biāo)注.關(guān)于判定詩詞題材任務(wù),標(biāo)注了“戰(zhàn)爭”、“送別”、“閨怨”、“懷古”、“田園”、“山水”、“思鄉(xiāng)”、“懷人”、“詠物”、“悼亡”共10種類別.關(guān)于分析詩詞情感任務(wù),標(biāo)注了“悲傷”、“愁緒”、“孤獨”、“怨恨”、“思念”共5種類別.關(guān)于這15種類別的標(biāo)注規(guī)則,詳見表2.數(shù)據(jù)集的規(guī)模詳見表3.
4.2.2 評價指標(biāo)
在涉及的所有分類實驗中,我們使用準(zhǔn)確率(precision,P)、召回率(recall,R)和F值(F-measure)作為每個類別的評價指標(biāo),使用宏平均值(macro-average)作為每種分類方法最終的評價指標(biāo),計算方法為
(16)
(17)
(18)
(19)
(20)
Table 2 Rules of Constructing Datasets表2 構(gòu)建數(shù)據(jù)集的規(guī)則描述
Table 3 Statistics of Datasets for Two Tasks表3 2個任務(wù)的數(shù)據(jù)集信息
其中,TP(true positive)表示將正類預(yù)測為正類的個數(shù),TN(true negative)表示將負(fù)類預(yù)測為負(fù)類的個數(shù),F(xiàn)P(false positive)表示將負(fù)類預(yù)測為正類的個數(shù),F(xiàn)N(false negative)表示將正類預(yù)測為負(fù)類的個數(shù),n是類別個數(shù).
4.2.3 超參數(shù)設(shè)置
在驗證集上對超參數(shù)進(jìn)行網(wǎng)格搜索,確定下來的超參數(shù)如表4所示.在判定詩詞題材的模型中,使用平均池化層;用2層GAT來學(xué)習(xí)古詩詞圖譜的節(jié)點表示.在分析詩詞情感的模型中,使用CNN層;用1層GAT來學(xué)習(xí)古詩詞圖譜的節(jié)點表示.GAT Heads表示每一層GAT的頭的個數(shù),GAT Features表示每一層GAT輸出的特征個數(shù),F(xiàn)ilters表示過濾器個數(shù),Kernel Sizes表示不同卷積核的尺寸.
Table 4 Hyper-Parameters of the Models表4 模型的超參數(shù)
4.3.1 剝離實驗
1) Rand.最基礎(chǔ)的模型是“隨機(jī)初始化字向量+平均池化層/CNN層+softmax分類器”,用“Rand”簡寫.
2) +BERT.為了探究BERT的影響,將隨機(jī)初始化字向量替換為BERT,變成“BERT+平均池化層/CNN層+softmax分類器”,用“+BERT”簡寫.
3) +BERT+GAT.為了探究古詩詞圖譜的影響,將其加入模型,變成“BERT+平均池化層/CNN層+GAT+softmax分類器”,用“+BERT+GAT”簡寫.
在判定詩詞題材任務(wù)上,加入BERT后,模型效果提升了14.61%,再加入GAT后,模型效果提升了5.72%.在分析詩詞情感任務(wù)上,加入BERT后,模型效果降低了1.86%,加入GAT后,模型效果提升了4.13%.實驗結(jié)果如表5所示,C(compare)列表示模型相比于Rand模型效果提升的大小.
Table 5 Results of Ablation Experiments表5 模型的剝離實驗 %
Note: The boldfaced numbers emphasize the performance of our model.
實驗結(jié)果表明:
1) BERT在判定詩詞題材任務(wù)上對模型效果有極大提升,而在分析詩詞情感任務(wù)上甚至起到了反作用,出現(xiàn)這種現(xiàn)象的原因是,BERT可以有效捕捉上下文的信息,包括文本的n-gram信息,在判定詩詞題材任務(wù)上,若使用“隨機(jī)初始化字向量+平均池化層”,無法捕捉到字與字之間的聯(lián)系,而加入BERT,就加入了字的上下文信息,所以加入BERT有極大提升.而在分析詩詞情感任務(wù)上,最初的模型是“隨機(jī)初始化字向量+CNN層”,CNN層本身就可以捕捉文本的n-gram信息,再加入BERT,BERT中包含的上下文信息就可能變成噪聲,影響模型的效果.
2) 古詩詞圖譜在2個任務(wù)上對模型效果均有較大提升,證明了古詩詞圖譜可以為詩詞的推理和分析任務(wù)提供知識,對詩詞的理解有幫助.
4.3.2 與其他方法的對比
本文選擇的對比方法如下,實驗結(jié)果如表6所示:
1) NB.胡韌奮等人[40]對唐詩題材自動分類的研究采用的方法之一.我們基于scikit-learn[注]https://scikit-learn.org/stable/,以TF-IDF作為文本特征,實現(xiàn)了多項式樸素貝葉斯分類器.
2) SVM.胡韌奮等人[40]對唐詩題材自動分類的研究采用的方法之一.我們基于scikit-learn,以TF-IDF作為文本特征,實現(xiàn)了線性核支持向量機(jī).
3) CNN.用1層CNN自動學(xué)習(xí)文本特征[37],然后接softmax分類器.共有2個變種:CNN-rand,CNN-pretrain.對于前者,字向量被隨機(jī)初始化,且在訓(xùn)練的過程中可被微調(diào);對于后者,使用在4萬首唐詩上預(yù)訓(xùn)練產(chǎn)生的字向量,不可微調(diào).
4) GRU.用1層GRU自動學(xué)習(xí)文本特征[41],然后接softmax分類器.共有2個變種:GRU-rand,GRU-pretrain.對于前者,字向量被隨機(jī)初始化,且在訓(xùn)練的過程中可被微調(diào);對于后者,使用在4萬首唐詩上預(yù)訓(xùn)練產(chǎn)生的字向量,不可微調(diào).
5) TextGCN.TextGCN[42]模型將文本語料建模成由文檔節(jié)點和詞節(jié)點組成的異質(zhì)圖,然后利用圖卷積神經(jīng)網(wǎng)絡(luò)(GCN)做半監(jiān)督文本分類.
實驗結(jié)果表明:
1) 我們的模型在判定詩詞題材和分析詩詞情感這2個任務(wù)上分別超過最好的基線模型2.64%和0.45%,證明了我們提出的模型的有效性.
2) 傳統(tǒng)的樸素貝葉斯和支持向量機(jī)分類器在這2個任務(wù)上具有可比的效果,比一些基于神經(jīng)網(wǎng)絡(luò)的模型效果還要好.
3) CNN-pretrain的效果在這2個任務(wù)上比CNN-rand高出2.98%和1.33%,GRU-pretrain的效果在這2個任務(wù)上比GRU-rand高出3.84%和5.17%,說明字向量的初始化對模型訓(xùn)練非常重要,使用與訓(xùn)練數(shù)據(jù)相同領(lǐng)域的大規(guī)模語料預(yù)訓(xùn)練字向量,能夠大幅提升模型效果.在判定詩詞題材任務(wù)中,GRU-rand和GRU-pretrain的效果分別高于CNN-rand和CNN-pretrain 0.57%和1.43%;在分析詩詞情感任務(wù)中,CNN-rand和CNN-pretrain的效果分別高于GRU-rand和GRU-pretrain 25.97%和22.13%.可以看出,對不同的任務(wù)和數(shù)據(jù),CNN和RNN有不同的偏好,在判定詩詞題材任務(wù)上,RNN的表現(xiàn)更好,在分析詩詞情感任務(wù)上,CNN的表現(xiàn)更好.
4) TextGCN在這2個任務(wù)上是表現(xiàn)最差的模型,由此可以看出,TextGCN對于詩詞這樣特殊的短文本無法達(dá)到很好的分類效果.
Table 6 Performance Comparison of Different Methods表6 不同方法的性能比較 %
Note: The boldfaced numbers emphasize the performance of our model.
本文提出一種古詩詞知識圖譜的構(gòu)建方法,并使用該方法得到一個內(nèi)容覆蓋全面、結(jié)構(gòu)層次分明、包含詞語語義聯(lián)系的古詩詞知識圖譜.利用古詩詞圖譜,可以從各種不同的維度上更好地分析詩詞.古詩詞圖譜對于詩詞的數(shù)據(jù)分析是不可或缺的,它能夠從語義的角度有效地輔助文學(xué)研究.另外,古詩詞圖譜能夠適用于古詩詞的各種推理和分析任務(wù)上,為這些任務(wù)提供必要的知識,從而使機(jī)器更好地理解詩詞.
該工作的不足之處在于構(gòu)建的古詩詞圖譜囊括的知識仍然比較局限,目前包含的知識僅包含詩詞注釋和中文詞典的詞語解釋.
未來工作中,我們將進(jìn)一步優(yōu)化古詩詞圖譜的構(gòu)建過程,盡可能地降低人工參與的程度.進(jìn)一步擴(kuò)大古詩詞圖譜的規(guī)模,使其囊括更加全面的古詩詞知識,比如歷朝歷代對著名詩人詩詞的解讀文字等.并且,將古詩詞圖譜擴(kuò)展到更加廣泛的應(yīng)用場景,比如在詩歌生成中引入古詩詞知識,使其更加符合人的意愿進(jìn)行創(chuàng)作.再比如利用古詩詞圖譜中的地名信息,分析古人一生的足跡并對古代的文化中心、歷史名勝進(jìn)行探究等.