郭 曉,陳艷平,唐瑞雪,3,黃瑞章,秦永彬
1.貴州大學 公共大數據國家重點實驗室,貴陽550025
2.貴州大學 計算機科學與技術學院,貴陽550025
3.貴州財經大學 信息學院,貴陽550025
謂語中心詞是中文句子中核心的語法單元,句子中的語法單位(如主語、賓語、狀語和補語等)都通過謂語中心詞進行關聯。因此,識別謂語中心詞可以有效解析句子的語法結構,清晰地理解句子的語義,快速捕獲句子的有效信息,為提煉句子的主要內容提供有效支撐。然而中文句子中通常存在多個動詞,由于中文詞語沒有形態特征,為謂語中心詞的識別帶來挑戰。例如在“貨物通過快遞站運輸至烏魯木齊”句子中“通過”和“運輸”都是動詞。但是“通過快遞站”用來表示運輸的方式,其中“通過”是非謂語動詞,而“運輸”才是句子的謂語中心詞。因此識別謂語中心詞,有助于劃分句子結構,理解語法成分和語義信息表達,從而支撐知識圖譜構建、摘要生成、機器翻譯等自然語言應用。
隨著深度學習的發展,目前多采用序列標注模型[1-2]來識別謂語中心詞。該方法通過輸出一條最大概率路徑,對輸入序列的每一個字標注一個類型標簽的方式進行識別。然而,由于謂語中心詞具有復雜的動詞結構,例如“持刀行兇的歹徒被捕獲歸案”,其中“抓捕歸案”為具有并列結構的謂語中心詞,采用傳統的序列標注模型,容易將“抓捕歸案”標注為“抓捕”和“歸案”兩個謂語中心詞,導致難以解析句子的語法結構。
最近,基于跨度[3-5]的方法在命名實體識別任務方面取得了不錯的效果。跨度是指句子中的字符子串。通過將給定句子序列按跨度進行劃分,枚舉句中所有的子序列,然后預測每一個序列的類型,可以在識別中有效利用面向跨度的全局語義特征。但是由于中文句子的謂語中心詞具有唯一性,正樣本只有一個,通過枚舉跨度的方式會產生大量的負樣本,從而導致嚴重正負樣本不平衡問題。另外,謂語中心詞及高度重疊的負例樣本之間共享相同的上下文,高度重疊的跨度語義相近,容易產生誤報。
針對現有方法在謂語中心詞識別中的不足之處,本文基于跨度提出了一種邊界回歸謂語中心詞識別方法。首先,通過BERT(bidirectional encoder representations from transformers)[6]得到句子中每個字的抽象語義表示,并利用BiLSTM(bidirectional long short-term memory)[7]獲取句子中的上下文語義依賴特征。其次,利用邊界識別方法,定位可能的謂語中心詞邊界。通過邊界組合生成跨度,從而減少負樣本數量,緩解謂語中心詞識別中的數據不平衡問題和降低計算復雜度。然后,通過跨度回歸模塊計算跨度邊界與謂語中心詞的偏移量[8],調整跨度邊界位置,提高跨度邊界的準確度。最后,在輸出端加入約束機制限制跨度數量,確保謂語中心詞的唯一性。
本文的主要貢獻如下:
(1)識別謂語中心詞在句子中可能的邊界。通過邊界組合生成跨度,從而減少跨度樣本中的正負樣本不平衡問題。
(2)使用跨度邊界回歸方法計算跨度與謂語中心詞的偏移值,更新跨度在句子中的位置,提高跨度識別中邊界的準確性。
本文提出的模型在謂語中心詞開發數據上進行驗證,在測試集獲得了84.41%的F值,有效提升了謂語中心詞的識別性能。
識別謂語中心詞是理解句子語義和劃分句子結構的關鍵。謂語中心詞在句子中起到組織主語、賓語和狀語等元素的作用。由于中文句子謂語中心詞結構復雜和一詞多義的現象,導致識別謂語中心詞變得非常困難。目前關于謂語中心詞識別的研究主要可以分為四類:基于規則的方法、基于統計的方法、基于規則與統計學習相結合的方法和基于深度學習的方法。
基于規則的方法中,李國臣等人[9]提出了利用主語和謂語的關系來識別謂語中心詞的方法。該方法包括使用謂語中心詞候選項的靜態語法特征和動態語法特征,通過主語候選項的連接使得句子結構清晰,然后判斷句子類型,從而識別謂語中心詞。穗志方等人[10]提出了一種漢語句子分析方法,即“骨架依存分析法”。這種方法依靠的是英語例句中的謂語中心詞來識別相應的漢語例句中的謂語中心詞。此類方法通過分析句子結構和語義規則來識別謂語,只適用于少數結構清晰和語義明確的語句,無法在大規模的數據集上實現謂語中心詞的自動識別。
基于統計學習的方法中,張宜浩等人[11]提出了基于支持向量機分類算法的謂詞自動識別方法。該方法通過信息增益和同義詞詞林進行特征構建。汪紅林等人[12]通過組合謂語的特征,使用最大熵分類器識別謂語中心詞。
基于規則與統計學習相結合的方法中,龔小謹等人[13]提出了一種規則和特征學習相結合的謂語識別方法。該方法通過固定搭配將字組合成一個整體,排除不可能成為謂語的詞,然后利用規則篩選出可能的準謂語,再利用特征學習識別出謂語。韓磊等人[14]提出一種詞法和句法特征相融合的方法,結合C4.5[15]機器學習和規則進行謂詞識別。首先利用句子的詞法信息和句法信息進行特征提取,使用規則進行詞法特征過濾,最后使用C4.5 進行謂詞識別。該方法通過人工構造的規則,很難考慮到所有謂語存在的形式和結構,模型的泛化能力差,不適用于大規模數據的識別。
基于深度學習的方法中,李婷等人[1]使用一種基于神經網絡的Attentional-BiLSTM-CRF中文謂語動詞識別模型。該模型通過注意力機制聚焦于句子的謂語信息,利用BiLSTM獲取上下文信息,最后使用CRF(conditional random field)[16]生成一條序列標注路徑,標注出謂語中心詞。黃瑞章等人[17]使用一種基于Highway-BiLSTMSoftmax網絡的深度學習模型。該模型利用多層BiLSTM獲取句子內部依賴,使用Highway[18]網絡來緩解梯度消失,最后通過softmax函數進行歸一化處理。靳文繁[19]使用多層堆疊的BiLSTM 網絡獲取句子的抽象語義依賴信息,并且引入Highway網絡連接模型中的每個層,然后使用邊框回歸的深度學習模型和多目標學習框架學習分類置信度和位置偏移量。但是謂語中心詞由漢字組成,復雜的詞語結構導致了謂語中心詞識別不完整的現象。
本文提出邊界回歸的模型主要由三個模塊組成,如圖1所示。從左到右分別為編碼模塊、邊界識別模塊和跨度回歸模塊。

圖1 邊界回歸模型Fig.1 Boundary regression model
首先,使用BERT 預訓練語言模型和BiLSTM 作為編碼模塊,將句子序列生成結合上下文的字符向量表示。使用邊界分類器識別出句子中謂語中心詞的邊界位置,并且生成不同的跨度。然后,通過跨度回歸器計算偏移量后更新跨度的邊界位置,再將跨度輸入跨度分類器進行識別。最后,通過約束策略,輸出唯一的跨度。各模塊分別詳細介紹如下。
假設輸入模型的句子為S={c1,c2,…,cn},其中ci表示句子中的第i個字,n是句子S的長度。通過BERT模型提取句子S中深層的語義特征信息,并且輸出融合全文語義的連續稠密向量Z={z1,z2,…,zn}。然后,將Z輸入BiLSTM來捕獲句子中的雙向語義依賴,生成句子的向量表示H={h1,h2,…,hn},其中hi∈Rd是字的向量表示,d表示字向量的維度。每個字向量的表示都融合了句子中的上下文特征和語義依賴。該過程的形式化表示如下:
如果直接枚舉所有的跨度進行跨度分類,會導致嚴重的數據不平衡和高計算復雜度的問題。因此,設計了謂語中心詞邊界分類器,通過識別出謂語中心詞的邊界,并將邊界進行組合生成跨度,從而減少負樣本的數量。
首先,使用邊界分類器,將句子中的每個字ci相應的向量表示hi輸入邊界分類器來預測成為邊界的概率,計算公式如下:
式中,MLP(multi-layer perceptron)[20]是由兩層Linear層和GELU[21]激活函數構成。
其次,將識別出的邊界進行組合,生成候選的謂語中心詞。假設邊界分類器預測出字符csi(1 ≤si≤n)為謂語中心詞的開始邊界,則需要以該字符的位置si作為跨度的開始邊界。然后,通過組合不同的結束邊界ei∈[si+1,si+2,…,si+m]生成跨度di=(si,ei)(1 ≤si≤ei≤n),其中di表示第i個連續的字符序列{csi,csi+1,…,cei},m為預先定義的最大跨度長度。若邊界分類器預測的字符cej(1 ≤ej≤n)為謂語中心詞的結束邊界,則需要通過組合開始邊界sj∈[ej-1,ej-2,…,ej-m]生成跨度dj=(sj,ej)(1 ≤sj≤ej≤n)。最后,將所有生成的跨度合并為候選跨度集D={d1,d2,…,dk},其中k是跨度的數量。
通過邊界識別生成的跨度減少了負樣本的數量,同時提高了跨度的質量。然而,很多跨度互相之間高度重疊,共享相同的上下文,導致識別出的謂語中心詞存在邊界不匹配的問題。因此,設計了跨度回歸器,通過捕獲跨度外部語義來更新跨度的位置,有效提升跨度的準確率。為了計算更新跨度的偏移量,對于每個跨度di∈D,將最大池化的跨度表示和跨度邊界外部的向量表示拼接起來,獲得跨度的向量表示。然后輸入跨度回歸器來計算跨度邊界相對于真實謂語中心詞的偏移量Δri,更新識別跨度在句子中的位置。其中,邊界偏移量的計算公式如下:
式中,MaxPooling[22]是最大池化操作,[;]表示拼接操作,Δri由跨度開始邊界的偏移量和跨度結束邊界的偏移量組成,W∈R3d×2,b∈R2,是可學習參數。
利用計算出的偏移值來更新跨度的開始邊界和結束邊界。計算如下:
式中,MaxPooling 是最大池化操作,[;]表示拼接操作,MLP由兩層Linear和GELU激活函數組成。
為了避免句子中謂語中心詞的跨度數量大于1 的現象,本文在邊界分類器后,通過添加約束條件,篩選預測概率值最高的跨度為謂語中心詞的位置。計算公式如下:
式中,為預測概率最高值。
本文采用多目標框架,同時識別跨度的類別和偏移量。總損失函數結合了邊界識別、跨度回歸和跨度分類的損失。對于邊界識別采用的損失函數為二分類交叉熵損失,損失函數定義如下:
式中,為真實值,為預測的概率。
跨度回歸的損失函數采用SmoothL1[23]函數,損失函數定義如下:
對于跨度分類損失采用Focal Loss[24]函數解決正負樣本比例失衡的問題。損失函數定義如下:
式中,wi為計算第i個跨度的權重,γ為Focal Loss 的調焦參數為跨度真實類別,為預測的概率。
最后,對邊界分類、跨度回歸和跨度分類的總損失計算如下:
式中,β(·)∈[0,1],是上述三個任務的超參數集。在訓練期間調整三個子任務的相對重要性。
實驗所使用的數據集來自于“中國裁判文書網”中的762 篇法院刑事判決書。在中文謂語中心詞識別領域還缺少公共的數據集支持,因此使用此數據集作為本文的訓練和評測模型的數據集。此數據集由法院刑事判決書的案情部分組成,且標注規范與Chen 等人[25]的標注規范相同。此數據集共標注了7 022 條句子,其中謂語中心詞有7 022個。謂語中心詞可以劃分為如下幾種類別。
(1)單謂語中心詞:謂語中心詞由一個及物動詞或非及物動詞組成,沒有修飾語和補語。此類的謂語中心詞,以詞典收率為準。此數據集中單謂語動詞有4 353個。
(2)復合結構的謂語中心詞:謂語中心詞具有重復結構且至少包含一個重復出現的動詞,例如“跌跌撞撞”“比劃比劃”等。此數據集中復合結構的謂語中心詞有24個。
(3)同義并列的謂語中心詞:謂語中心詞由表達相關語義的關聯動詞組成,或者由相同詞義類型的動詞組成,例如“抓捕/歸案”“驅車/行駛”等。此數據集中同義并列的謂語中心詞有272個。
(4)帶修飾或帶補語的謂語中心詞:謂語中心詞帶有修飾符、補語和事態標記的動詞,例如“(取)出“”(扭)開”等。此數據集中帶有修飾符的謂語中心詞有1 651個。
(5)其他特殊表達的謂語中心詞:謂語中心詞由其他名詞或者形容詞作動詞以及諺語、習語、成語和典故等充當句子的謂語中心詞,例如“心生不滿”“過河拆橋”等。此數據集中其他特殊表達的謂語中心詞有116個。
此數據集合以6∶2∶2的比例劃分為訓練集、驗證集和測試集。
實驗使用的評價指標包含準確率P、召回率R和測度值F,以此來評價該模型識別謂語中心詞的效果,評價指標具體公式如下:
式中,TP為實際為正例且預測為正例的數量,FP為實際為負例但預測為正例的數量,FN 為實際為正例但預測為負例的數量。
本文的邊界回歸模型在Python3.8 和Pytorch1.7.1的環境下進行實驗。使用BERT和BiLSTM將句子序列生成結合上下文的字符向量表示。邊界分類器由兩個Linear 層和一個GELU 激活函數構成,跨度回歸器是一個Linear層,跨度分類器也同樣由兩個Linear層和一個GELU 激活函數構成。實驗采用Adam[26]優化器。參數設置如表1所示。

表1 參數設置Table 1 Parameter setting
3.4.1 與其他模型的對比實驗
為了驗證模型的有效性,本文模型與其他四種模型在謂語中心詞的數據集上進行了對比實驗。所使用的其他四種模型分別為BiLSTM+CRF[27]模型、BiLSTM+Attention+CRF[1]模型、Highway+BiLSTM[17]模型、BERT+BiLSTM+CRF[28]模型。對比實驗結果如表2所示。

表2 不同模型實驗結果對比Table 2 Comparison of experimental results of different models
BiLSTM+CRF[27]為目前最常用的序列標注模型。此模型可以捕獲句子雙向的語義信息,可以計算整個標記序列的聯合概率分布,并選取全局最優輸出節點的條件概率。該模型的缺點是難以捕獲句子深層語義,只能學習句子中近距離的語義特征。對于長序列,依然無法很好地傳輸序列的遠點信息。因此,該模型很難準確地識別出謂語中心詞語的位置,導致性能偏低。
由李婷等人[1]提出的BiLSTM+Attention+CRF 模型在BiLSTM+CRF模型上添加了注意力機制。注意力機制彌補了BiLSTM對于遠點信息捕捉的缺失,自注意力機制沒有依賴字與字之間的順序,而是通過計算字與字之間的權重,從而捕獲全局與局部的關聯。此模型性能相比上一個模型有所提升。
由黃瑞章等人[17]提出的Highway+BiLSTM 網絡在訓練階段使用了預訓練的漢語維基百科向量字嵌入初始化。利用Highway 有效緩解了隨著模型深度加深而導致梯度消失的問題。使用多層BiLSTM 構成識別謂語中心詞的模型,Softmax輸出預測概率。相比上述兩個模型,該模型利用多層BiLSTM堆疊而成,使用Highway來解決梯度消失問題,并且有效地提升了謂語中心詞識別的準確度。
謝騰等人[28]使用BERT+BiLSTM+CRF 模型進行中文實體識別。本文將此模型進行了謂語中心詞識別,使用BERT-large預訓練模型代替了word2vec[29]方式,對輸入句子進行向量表示。BERT模型已經是在大規模語料基礎上訓練好的參數,在訓練時只需要在此基礎上更新參數,可以更好地捕獲詞語和句子的表示。使用BiLSTM來獲取上下文的語義依賴,最后使用CRF輸出預測的標簽序列。
本文使用的邊界回歸模型,F值達到了84.41%,相比BERT+BiLSTM+CRF模型的F值提高1.7%,表明了本文方法的有效性。本文模型選用BERT和BiLSTM作為編碼模塊,可以更好地捕捉語句和詞語的關系,并且能夠獲取雙向語義依賴。使用邊界分類器識別邊界,然后以邊界生成跨度,可以使得跨度與謂語中心詞高度重疊,并且避免了枚舉跨度產生的大量負例而造成的分類干擾。其次,依靠邊界生成的跨度,可能與謂語中心詞存在偏差,通過跨度回歸器,動態調整跨度的邊界可以有效地提高跨度的準確率。該模型通過結合邊界識別和回歸的優勢,將謂語中心詞的識別通過先確定所在句中位置,再動態調整跨度的方法,可以有效地識別出謂語中心詞。
3.4.2 邊界分類的影響
為了驗證邊界分類的準確性對識別謂語中心詞性能的影響。本文選用識別開始邊界方法、識別結束邊界方法以及同時識別開始和結束邊界方法進行了對比實驗。在測試集上的實驗結果如圖2所示。
識別開始邊界方法只單獨識別謂語的開始邊界字的位置,然后作為跨度的開始位置生成候選跨度集。識別結束邊界方法則是只識別結束邊界字的位置并生成候選跨度集,而開始和結束邊界同時識別則是將兩者同時生成跨度組成候選跨度集。開始和結束邊界同時識別的方法相比只識別開始邊界方法在測試集的實驗結果的F值提高了0.66 個百分點,并且與只識別結束邊界方法在測試集的F值提高了0.3 個百分點。該實驗驗證了對不同邊界分類的準確性會提高生成跨度的質量,從而提高識別謂語中心詞的性能。
3.4.3 跨度生成策略的影響
為了驗證跨度生成方式對識別謂語中心詞性能的影響,本文選用三種方式進行對比實驗。其中一種為枚舉跨度方法。另外兩種是通過識別的邊界篩選跨度方法:邊界過濾跨度方法和邊界生成跨度方法。
邊界過濾跨度方法采用的是枚舉所有的跨度。以識別出的邊界字為中心,將跨度開始邊界位置大于等于邊界且結束邊界位置小于等于邊界的跨度組成候選跨度集。邊界生成跨度方法是以識別為開始邊界字的位置作為跨度的開始邊界,從預設的長度集合中選取不同位置的結束邊界組成跨度。然后以識別為結束邊界字的位置作為跨度的結束邊界,以同樣的集合,選取不同的開始邊界組成跨度,再將兩者生成的跨度去重,生成候選跨度集。在測試集上的實驗結果如表3所示。
經統計枚舉跨度的數量是邊界生成跨度數量的13倍,并且通過添加邊界識別模塊篩選的跨度可以有效防止非謂語動詞的干擾。邊界生成的跨度相比枚舉的跨度在測試集上的實驗結果F值提高了0.30個百分點,驗證了邊界識別模塊的有效性。后兩種方法是依據邊界篩選跨度的不同策略。雖然兩種方法都減少了跨度的數量,但邊界過濾方法的跨度數量仍然是邊界生成跨度數量的兩倍,并且邊界過濾跨度方法篩選出的跨度與真實謂語中心詞的重疊率較低。因此通過識別邊界篩選候選跨度集的方法,選用跨度生成方式更為合適。邊界過濾跨度與邊界生成跨度方法相比,邊界生成跨度方法在測試集的實驗結果的F值提高了0.10 個百分點,證明了邊界生成跨度方法比邊界過濾跨度方式更加有效。
3.4.4 消融實驗
為了驗證邊界回歸模型的有效性,本文設計了消融實驗,“-邊界識別”表示去掉邊界識別模塊,“-跨度回歸”表示去掉跨度回歸模塊。在測試集上的實驗結果如圖3所示。

圖3 消融實驗Fig.3 Ablation experiment
模型去掉邊界識別模塊后,從圖3可以看出會導致模型F值下降0.30個百分點。邊界識別模塊在模型中用于生成跨度,確定謂語中心詞位置。去掉邊界識別模塊,會枚舉所有的跨度,無法避免非謂語動詞的干擾并且生成大量的負樣本,導致正負樣本不平衡。
模型去掉跨度回歸模塊后,從圖3可以看出模型F值下降0.29 個百分點。跨度回歸模塊在模型中用于捕獲更多的語義信息,提高跨度準確性。去掉跨度回歸模塊后無法捕獲其他語義動態調整跨度的邊界,降低了跨度的準確性。因此邊界識別模塊和跨度回歸模塊在本文的模型中必不可少。
3.4.5 運行時間分析
本文模型通過邊界識別模塊可以降低計算量,減少運行時間。因此在測試集上進行運行時間的測量,實驗結果如表4所示,其中“-邊界識別”表示去掉邊界識別模塊。

表4 運行時間的實驗結果Table 4 Experimental results of running time
經實驗表明,去掉邊界識別模塊的模型與包含邊界識別模塊的模型在同一塊20 GB 的P40GPU 上使用測試集進行測試,去掉邊界識別模塊要比包含邊界識別模塊的運行時間長80 s,并且包含邊界識別模塊的模型F值提高了0.30 個百分點。其原因是邊界識別模塊會減少大量的負樣本,提高跨度的重疊率。
本文提出了一種邊界回歸的方法應用于謂語中心詞識別的任務。利用邊界識別生成跨度可以解決正負樣本不平衡問題并且降低計算量。結合回歸方法通過捕獲跨度外部語義調整跨度的邊界位置,可以提高跨度的準確性。該模型在裁判文書生成的數據集上取得了較好的實驗效果,證明了該模型識別謂語中心詞的有效性。此外,通過識別謂語中心詞可以抽取裁判文書的關鍵案情信息,以便后續的案件分析,從而能有效支撐罪名預測、法條推薦、輔助量刑等智能化輔助審判工作。該模型對邊界分類的準確性有待提升,邊界識別不準確將導致產生的跨度與謂語中心詞的偏離較大,進一步提高識別邊界的準確率是下一步的重點研究工作。