魏靜,岳昆,段亮,王笳輝
(云南大學 信息學院;云南省智能系統與計算重點實驗室,昆明 650500)
民間文學是指民眾在生活文化和生活世界里傳承、傳播、共享的口頭傳統和語辭藝術,是中華文化的重要組成部分.民間文學包括神話、民間傳說、民間故事、韻文的詩歌等體裁的民間作品.傳統的民間文學神話詩歌多以文本為載體,或以口頭傳唱的方式講述神話故事,不易開展后續的研究和保護工作.隨著大數據和人工智能技術的快速發展和不斷普及,數字媒介成為民間文學傳播的重要載體,是民間文學文本保護和傳承的重要方式[1-2].將民間文學文本與自然語言處理相關技術結合,以揭示神話故事蘊含的內在特征,建立對文本數據的整體認知,有助于研究者和民間文學愛好者對民間文學文本的了解和學習,為民間文學數字化提供了新型的技術支撐.
關系抽取(relation extraction,RE)是從文本中識別出實體,抽取實體間的語義關系,旨在將非結構化的文本數據轉化為結構化數據[3].利用關系抽取對民間文學文本進行數字化處理,其處理結果可應用于民間文學文本中的詩歌修復,民間文學的領域知識圖譜構建等實際應用.民間文學與新興領域技術結合,增加民間文學的受眾群體,有利于發揚和傳承民間文學工作.此外,補全民間文學中詩歌的缺失部分,彌補了人員能力有限的缺陷,更大程度上確保了民間文學文化遺產的完整性.
民間文學文本以詩歌為載體,具有以下特點:(1)文本指示代詞多,實體關系常由指示代詞體現,在指示代詞之間容易隱藏實體間的真實關系,是實體間關系識別的重要影響因素.(2)民間文學文本有著豐富的語義表達,在一段簡單的文本描述中包含多個實體-關系三元組,且同一實體不只存在一種關系,可見如何處理關系重疊和實體重疊是民間文學文本關系抽取模型需要解決的問題.綜上所述,民間文學文本有著指示代詞較多,實體重疊和關系重疊的特點,故面向民間文學文本的關系抽取模型應具有更善于獲取文本語義特征,實體與關系之間的交互信息特征及處理和利用文本中指示代詞信息的能力.
但目前的方法[4-15]或是偏向較為寬泛的領域或是面向如醫學、生物學等特定領域.若直接將模型遷移到民間文學文本關系抽取任務中,不能真正解決民間文學文本代詞多、實體關系重疊帶來的問題.
根據上述民間文學文本特點及當前實體關系抽取方法的研究進展,本文提出一種基于指代消解的民間文學文本關系抽取模型CR_RSAN.針對文本中指示代詞較多、易造成實體關系不明的問題,引入指代消解[16]方法,通過不斷學習文本中每個詞語和可能存在的先行詞的特征,計算文本中所有詞的關聯分數,得到指示代詞及其對應實體的位置信息.在此基礎上,設計指示代詞替換算法,將指示代詞和其對應實體進行替換,使實體關系明朗,幫助模型獲取到更多的實體關系.
針對文本實體關系重疊的問題,本文采用序列標注的方式來獲取實體間關系.經指示代詞替換之后的文本比原文本有更強的實體關系表現力,故根據替換后文本中實體的位置分布信息,在BIESO標注方法結合新編碼H和T[9]的基礎上,調整頭實體和尾實體的編碼位置,將指示代詞替換后提供的有效信息與實體關系間的交互信息用序列標注的方式結合,提高模型獲取語義特征的能力,將實體關系的重疊問題轉化為序列標注問題,以提高模型關系抽取性能.
在民間文學文本上的實驗結果表明,CR_RSAN在精確率、召回率和F1值上均優于現有模型.
在早期的研究中,基于核函數的關系抽取方法,需要大量的人力來標注數據,且特征提取中存在誤差,影響實體間關系的抽取效果[17].目前基于深度學習的實體關系抽取方法成為研究關系抽取的重要方式[18],一些方法[19]將實體命名識別和關系抽取任務分開進行,造成實體識別任務出現的錯誤累積到關系抽取任務中,影響了關系抽取的效果[3].
為了緩解實體命名識別任務造成的錯誤累積,研究者們相繼提出將實體命名識別和關系抽取聯合進行的方法.KATIYAR等[4]通過共享編碼層特征表示聯合提取實體和關系,但實體識別任務和關系抽取任務是單獨解碼,這導致實體與關系之間的交互信息易被遺漏.為了利用該信息,研究者們設計了不同的標記策略.ZHENG等[5]提出采用端到端的模型直接對實體-關系三元組建模,但該模型無法解決關系重疊問題.ZENG等[6]通過復制機制(copy mechanism)生成后續的兩個對應實體的關系,解決了關系重疊的問題,但抽取結果不完整.WEI等[7]提出二進制標記的方法解決相同實體對之間包含多重關系的問題,但對語義較為復雜的文本數據,該模型學習特征的能力有限.YAN等[8]提出將神經元劃分,但其劃分規則忽視了實體特定區域中與關系特征的相關信息.YUAN等[9]提出改進BIESO標注,將關系信息作為先驗知識,減少模型對無關實體的關注,解決了實體關系重疊的問題,但忽視了某些關系發生的真正主體.
在醫學領域,寧尚明等[10]采用多通道注意力機制與卷積神經網絡相結合,但是將實體識別任務與關系抽取任務分開進行,忽略了兩者之間的依賴.LI等[11]采用共享雙向長短記憶網絡編碼層,XUE等[12]采用共享BERT模型[20]的編碼,實現實體命名識別任務和關系抽取任務的參數共享,但兩個任務分開解碼忽略了實體與關系之間的交互信息.在文學領域,秦川等[21]利用主題、模板信息和押韻信息實現秘密信息的隱藏,YI等[22]提出利用分解子空間進行對抗訓練以區分不同風格的詩歌.
基于上述研究,現有的關系抽取模型側重于研究如何利用實體信息、關系信息和實體與關系之間的交互信息以提高模型性能,但是抽取結果不盡如人意,特征信息不能完全利用,同時未對文本數據中的指示代詞進行處理,若直接將這些方法遷移到民間文學文本關系抽取任務中,并不能真正解決指示代詞帶來的問題.LEE等[16]提出一種端到端的指代消解方式,把文本中的所有詞語視為潛在實體,通過學習指示代詞與先行實體之間的相關性,確定指示代詞與先行實體的位置關系,解決文本中指示代詞與對應實體的指代問題.因此,針對民間文學文本指示代詞多,實體關系重疊的特點,將指代消解和關系抽取相結合給民間文學文本關系抽取任務提供了新思路.
設民間文學文本為D,實體-關系三元組表示為(eh,rs,et)(eh,et∈E,rs∈R),E和R分別表示實體集合和關系集合.

模型主要包括輸入層、指代消解、指示代詞替換,序列標注和實體關系聯合抽取.
(1)輸入層:原始的民間文學文本作為模型的輸入.
(2)指代消解:對輸入的文本數據進行詞語劃分,學習和計算每個詞及其先行詞的關聯分數,識別文本數據中存在的指示代詞及其對應實體.
(3)指示代詞替換:按照指示代詞替換算法對文本數據中的指示代詞進行有效替換.
(4)序列標注:根據(3)中的替換結果制定新的序列標注方法,生成不同關系下的文本標注序列.
(5)實體關系聯合抽取:利用基于關系的注意機制生成每個關系特定的文本表示,提取當前關系下存在的頭尾實體.
以句子“九隆將身一縱跳上毒龍龍頭,他雙手舉起長刀迎頭就砍”.為例,CR_RSAN的總體架構圖如圖1所示.句子經過輸入層進入指代消解部分,得到指示代詞“他”和對應實體“九隆”的位置信息,利用該信息將文本中的指示代詞進行替換生成新的文本,輸入到實體關系聯合抽取模型RSAN中,得到文本中包含的實體-關系三元組(九隆,敵對,毒龍)和(九隆,動作,長刀).

2.2.1指代消解
民間文學文本中包含較多指示代詞,而指示代詞會影響實體關系確定,因此利用指代消解方法獲取指示代詞對應的實體信息,有助于后續任務發現隱藏的實體間關系.指代消解的基本原理是:將文本D進行分詞,分詞后的文本表示為Dp={p1,p2,…,ph}(h≤n),pi(1≤i≤h)表示第i個位置上的詞,計算任意兩個詞的關聯分數(即代表相同事物的可能性),關聯分數高的詞語視為它們的指代相同,從而得到文本中的指示代詞與對應實體的位置信息.
2.2.1.1詞特征表示

∝t=F(st),
(1)
(2)
(3)
(4)
START(pi)和END(pi)分別表示詞pi開始位置索引和結束位置索引,ρ(pi)表示詞pi的長度大小.
2.2.1.2關聯分數計算
本文采用打分制來確定指示代詞和其真實實體的位置信息.設pi的可能先行詞為pj(1≤j≤i),pi和pj之間的關聯程度越強說明pj是pi的先行詞的可能性越大.故采用關聯分數來表示詞之間的關聯強度.
將詞的向量表示gpi通過前饋神經網絡Fo得到其對應的數值形式scoreo(pi)用于后續計算;通過式(6)計算詞pj是詞pi先行詞的分數scorea(pi,pj);通過式(7)計算詞pi和詞pq之間的關聯分數score(pi,pj),即認為詞pj是詞pi的先行詞,并且詞pj和詞pi同時存在才有關聯的可能[16].通過計算詞pi與先行詞的關聯分數得到每個先行詞與其關聯的可能性,可能性最大的先行詞視為詞pi的指代實體,最后得到文本中指示代詞m和其對應實體mh的位置索引.φ(pi,pj)表示詞pi和詞pj之間的距離.
scoreo(pi)=Wo·Fo(gpi),
(5)
scorea(pi,pj)=Wa·Fa([gpi,gpj,gpi°gpj],φ(pi,pj)),
(6)
score(pi,pj)=scoreo(pi)+scoreo(pj)+scorea(pi,pj).
(7)
2.2.2指示代詞替換算法
指示代詞使實體間關系不明顯,若能將文本中的指示代詞換成其對應實體,能幫助模型獲取更確切的語義信息,提高實體關系抽取任務的性能.通過指代消解獲取文本中指示代詞與其對應實體的位置關系,利用該信息對指示代詞和其對應實體進行有效替換.
本文將民間文學文本中出現的指示代詞分為有效指示代詞和無效指示代詞.若文本數據中指示代詞對應的實體是同一文本中實體-關系三元組中的頭實體或者尾實體,則表示該指示代詞與實體關系的確定有影響,將該指示代詞視為有效指示代詞;若文本數據中指示代詞對應的實體不是實體-三元組中的頭實體或者尾實體,則該指示代詞視為無效指示代詞.
如圖2所示,情況二中實體間關系通過指示代詞所在的短句體現和表達,將該指示代詞替換成其對應實體,能增強實體與實體間關系的表現,有利于實體間關系抽取.

根據指示代詞的分類,本文制定以下替換規則:若文本D中代詞m對應的實體mh是民間文學文本中關系三元組(eh,rs,et)包含的頭實體或尾實體,則將文本D中的代詞替換為對應實體,否則對文本不作處理.根據不同的實體關系同一個句子采取不同的替換策略,算法1給出了指示代詞替換的具體步驟.
算法1 指示代詞替換
輸入: 文本D,(eh,rs,et),(m,mh)

1. IFmh=ehORmh=etailTHEN
2. IFmh=ehTHEN

4. END IF
5. IFmh=etTHEN

7. END IF
2.2.3序列標注
YUAN等[9]將{H,T}并入BISO標注中作為實體標注的后綴,分別表示頭實體和尾實體,與實體無關的用O表示.針對民間文學文本代詞多、關系重疊的特點,本文在標注方法上做以下改進:
(1)未經過指示代詞替換的文本,則對文本數據首次出現的頭實體和尾實體進行BISO實體標注,并分別以H和T作為后綴,其他與首尾實體無關的部分用O表示.
(2)經過指示代詞替換的文本數據分為以下兩種情況:①若指示代詞替換成對應實體的位置位于替換前文本中頭實體首次出現和尾實體首次出現的位置之間,則對指示代詞替換后的實體和文本中首次出現的尾實體進行BISO實體標注,并分別以H和T作為后綴,剩余部分用O表示;②若指示代詞替換成對應實體的位置不在替換前文本中頭實體首次出現和尾實體首次出現的位置之間,則對文本數據首次出現的頭實體和尾實體進行BISO實體標注,并分別以H和T作為后綴,其他與首尾實體無關的部分用O表示.圖2為本文制定的序列標注方法的示例.

(8)
(eh,r,et)=DECODE(S).
(9)
本文實驗使用的數據集來自云南大學文學院提供的《千瓣蓮花》《娥并與桑落》《傣族民間故事選》和《云南少數民族古典史詩》等書籍資料,共計30萬字左右,指示代詞占比約為4.28%,整理得到1 154條數據.CR_RSAN的訓練部分包括了指代消解和關系抽取,故數據集應包含兩部分的模型訓練輸入,數據集中每條數據采用如圖3中實例的標注方法,其中,cluster表示文本中指示代詞的位置索引,subtoken_map表示文本詞語劃分情況.

將數據集按照6∶2∶2劃分為訓練集、驗證集和測試集.數據集中包含18種關系,每種關系對應的數量情況如表1所示.

表1 關系類型及數量情況Tab. 1 The type and quality of relations
本文選取RSAN,Bias,PFN和CasRel模型與CR_RSAN進行性能比較.
Bias[5]:將BIESO標注與{1,2}(1,2分別表示實體1和實體2)相結合生成新標簽序列,并將聯合抽取模型轉換為一個序列標注問題的方法.
CasRel[7]:提出采用聯級二進制的方法標注數據,將關系抽取任務從關系分類轉換為主體向客體映射的方法.
PFN[8]:將神經元分割成兩個任務分區(實體分區和關系分區)和一個共享分區,任務分區相互獨立,共享分區保證實體信息和關系信息的交互的方法.
RSAN[9]:一種新型標注方式,將頭實體和尾實體信息{H,T}標注進標簽中,保留實體與關系之間的交互信息的方法.
本文采用精確率(Precision,P),召回率(Recall,R)和F1值作為方法模型的評價指標.用TP表示預測為真,實際為真的樣本數;FP表示預測為真,實際為假的樣本數;FN表示預測為假,實際為真的樣本數;TN表示測試為假,實際為假的樣本數.

實驗平臺使用Windows 10操作系統,配置為8核Intel i7-10700K處理器與32 GB內存,NVIDIA RTX 3070顯卡.所有模型基于Python和Pytorch構建.
為了驗證CR_RSAN的有效性,將CR_RSAN與RSAN,PFN,Bias和CasRel模型進行性能比較,其對比結果如表2所示.

表2 模型的性能對比Tab. 2 The comparison of model’s performance
由表2可知,CR_RSAN引入指代消解,將文本數據中的指示代詞根據相應算法進行替換,加強模型獲取語義特征的能力以及含有當前關系類型的實體對之間的聯系,使性能顯著提升,與RSAN模型相比精確率提高了2.96個百分點,召回率提高了1.69個百分點,F1值提高了2.31個百分點;與Bias模型相比精確率提高了6.61個百分點,召回率提高了7.34個百分點,F1值提高了7.91個百分點;與CasRel模型相比精確率提高了12.06個百分點,召回率提高了12.29個百分點,F1值提高了12.54個百分點;與PFN模型相比精確率提高了13.39個百分點,召回率提高了14.29個百分點,F1值提高了14.98個百分點.以上實驗結果,驗證了CR_RSAN模型的有效性.
本文經指代消解之后,采用改進的序列標注方法對文本標注,為了驗證改進后的標注方法的有效性,現將采用原有標注方法rr_origin和CR_RSAN模型進行比較,其對比結果如表3所示.

表3 序列標注方法對比Tab. 3 The comparison of sequence labeling method
由表3可知,改進后的序列標注方法結合了指示代詞和對應實體之間的替換信息,使產生關系的兩個實體能被標注,幫助模型獲取實體間更明確的和貼切的語義信息.與采用原有標注方法的模型相比,采用改進后的序列標注方法的精確率提高了0.6個百分點,召回率提高了0.41個百分點,F1值提高了1.31個百分點.由此可見,改進后的序列標注方法對模型性能的提升作用.
對民間文學文本關系抽取可以快速了解文本中人物、事件之間的聯系,方便研究者和民間文學愛好者快速建立對文學作品的整體認知.使用CR_RSAN和不加指代消解的方法RSAN分別對民間文學文本進行關系抽取,以此展示兩種方法在關系抽取過程中的差別,如圖4所示.


本文提出一種基于指代消解的關系抽取模型CR_RSAN,用于民間文學文本的關系抽取任務.通過指代消解,獲得指示詞和對應實體的位置信息并對文本中的指示代詞進行替換,并在RSAN模型標注方式上進行調整,將實體-關系抽取轉換為標注問題.實驗證明,模型在精確率、召回率和F1值方面都有顯著提升,這也證明了CR_RSAN在民間文學文本關系抽取任務中的有效性.
但是模型的精確率,召回率和F1值均還有待提高,通過實驗發現,該模型能很好地判斷文本中含有什么關系,但是在抽取滿足當前關系的實體對時會出現多字和少字的情況,因此降低了模型的精確率.在后續工作中,繼續從數據集和模型優化著手,設計質量較高的數據集以及探索其他模型,學習其他模型的優點來改進模型,提高模型性能.