![]()
江西地名研究
關注我們,獲取更多地名資訊
摘要:由于中文詞語缺乏明確的邊界和大小寫特征,單字在不同詞語下的意思也不盡相同,較于英文,中文命名實體識別顯得更加困難。該文利用詞向量的特點,提出了一種用于深度學習框架的字詞聯合方法,將字特征和詞特征統一地結合起來,它彌補了詞特征分詞錯誤蔓延和字典稀疏的不足,也改善了字特征因固定窗口大小導致的上下文缺失。在詞特征中加入詞性信息后,進一步提高了系統的性能。在1998年《人民日報》語料上的實驗結果表明,該方法達到了良好的效果,在地名、人名、機構名識別任務上分別提高1.6%、8%、3%,加入詞性特征的字詞聯合方法的F1值可以達到96.8%、94.6%、88.6%。
關鍵詞:命名實體識別;深度學習;神經網絡;機器學習;詞性
1 引言
命名實體識別(named entity recognition,NER)是自然語言處理(natural language processing,NLP)的一項基礎任務,它的重要作用是從文本中準確地識別出人名、地名、機構名、時間、貨幣等信息,為機器翻譯、自動文摘、主題發現、主題跟蹤等高級NLP任務提供實用的信息。最初的NER主要采用的是基于規則的識別,通過領域專家和語言學者手工制定有效規則,識別出命名實體。這樣的方法僅適用于簡單的識別系統,對于復雜的NER,要求規則之間不能產生沖突,因此制定規則會消耗人們大量的時間和精力,且領域遷移性欠佳。因此,隨著技術的發展,越來越多的人們采用機器學習的方法來完成NER任務。
近年來,研究者們把NER任務規約為一種序列標注任務,對于每一個輸入的字,判斷其標簽類別,根據最終的類別標簽判定命名實體的邊界和類型。例如,在“SBEIO”策略中,S表示這個字本身就是一個命名實體,B表示該字是命名實體的開始,I表示該字位于命名實體的中間位置,E表示命名實體的結尾,O表示該字不屬于命名實體的一部分。序列標注任務有許多適用的機器學習方法,例如,隱馬爾科夫模型(hidden markov models,HMM)、最大熵馬爾科夫模型(maximum entropy markovmodels,MEMM)、條件隨機場(conditional ran-dom fields,CRF)等。這些學習方法需要研究者手工提取有效的語法特征,設定模型的模板進行識別,因此特征模板的選擇直接影響NER的結果。Zhou和Su提出使用四種不同的特征去提高HMM在NER的性能。Borthwick等利用了MEMM和額外的知識集合,例如姓氏集,提高了NER標注的準確性。Lafferty等提出CRF用于模式識別和機器學習,后來McCallum和Li提出了特征感應的方法和Viterbi方法,用于尋找最優NER序列。在中文NER領域,存在著一些問題,例如系統的自適應性不強、網頁數據復雜、簡稱機構名識別困難。陳鈺楓提出使用雙語對齊信息來提高NER性能和雙語對齊結果,可以有效提高中文NER的自適應性。邱泉清提出使用CRF模型對微博數據進行命名實體識別,利用知識庫和合適的特征模板,取得了良好的效果。本文使用深度神經網絡進行NER,可以提高系統的召回率,有效提升系統的自適應性。
機器學習方法需要提取文本特征,如何高效地表示文本的語法和語義特征,是NLP領域亟需解決的問題。近幾年,word2vec的提出吸引了無數NLP愛好者的目光。它可以將詞語表示成一個固定長度的低維向量,這個向量被認為具有一定的潛在語義信息,近似詞語之間具有一定的向量相似性,詞向量之間還可以進行加減操作,獲得詞語之間的語義聯系,例如等式“國王—男+女=王后”成立。因此,使用詞向量作為輸入特征,可以更自然地展示語言的潛在信息,而且不需要手工設置特征模板,對于NER的識別具有一定的積極意義。可以把詞向量作為深度神經網絡的輸入,執行許多NLP任務。深度神經網絡是一個用于挖掘潛在有用特征的多層神經網絡,網絡的每一層的輸出是該語句的一種抽象表示,層級越高,表示的信息越抽象。語言本身就是一種抽象的表達,因此采用基于詞向量的特征表示,利用深度神經網絡進行命名實體識別,可以有效地提高NER的性能。
相較于西方語言如英語的NER,中文命名實體識別顯得更加困難,因為中文詞語沒有明確的邊界信息和首字大小寫信息。因此,分詞錯誤的漫延和信息缺失會大大降低NER的準確率。中文的字和詞都具有其特定的語義信息,相同的字組成不同順序的詞語之間的語義可能差別很大,而且由于詞典的不完備性,識別過程中會出現很多的未登錄詞造成識別的錯誤,自然地,基于字的命名實體識別方法被提出。但是,基于字的NER也有其自身的局限性。一方面,由于窗口大小的限制,導致無法獲得更多的有用信息;另一方面,中文詞語具有其特殊的含義,字也有它本身的意義,僅使用字的NER系統無法高效關聯出字詞之間的聯系。因此,我們考慮使用字詞結合的方法進行NER。詞性是詞語的重要屬性,詞性可以表達更加抽象的詞語特征,因此在NER中加入詞性特征可以為系統提供更多的有用信息,幫助分類算法進行分歧判斷。因此,我們提出將詞性信息加入特征向量中,該方法可進一步提高中文命名實體識別系統的性能。
本文的主要工作如下:(1)我們提出將深度神經網絡應用于中文命名實體識別,該方法可有效提高中文NER的性能;(2)我們利用字向量、詞向量的特點,提出了將字詞聯合的方法用于深度神經網絡的中文NER系統;(3)我們方便地在深度神經網絡中加入了詞性信息,進一步提高了系統的識別性能。
本文的組織結構如下:第一節介紹了引言及相關工作;第二節主要介紹了深度神經網絡的結構和訓練方法,詳細介紹了字向量、詞向量和字詞結合向量三種輸入特征的表示;第三節對比了不同窗口大小和隱藏節點個數情況下,在字向量、詞向量和字詞聯合向量作為輸入特征時,DNN在中文NER上的實驗結果;最后一節是本文的結論。
2 深度神經網絡
命名實體識別任務可以被抽象為輸入的每一個字進行“SBEIO”標簽預測的問題。傳統的標注方法是人工選擇一組適合該任務的特征模板,標注結果的好壞依賴于特征模板的質量。因此,研究者需要學習和掌握語言學知識和領域常識,這會消耗大量的時間、財力和精力。Collobert等提出了一種深度神經網絡(deep neural network,DNN)結構,普遍適用于許多NLP標注任務。DNN可以訓練一套低維詞向量用于詞語的特征表示,它不再需要人工設計一個特殊的特征模板,最重要的是詞語的向量之間具有潛在的語義關系,因此使用詞向量可以提高任務的召回率。除此之外,DNN可以很方便的加入額外的特征信息。所以,我們選擇深度神經網絡結構進行中文NER任務。
DNN是一個多層的神經網絡,它的結構如圖1所示。第一層是輸入層,它主要負責將輸入窗口的字或者詞進行詞向量的映射,所有出現在字典中的字或者詞都有一個固定長度的低維向量,這些向量被存放在Lookup表中,當輸入窗口產生新的字詞后,輸入層將對這些字詞進行向量映射,將其按順序進行組合,獲得該窗口下的窗口向量,窗口向量作為DNN第二層的輸入。第二層是一個標準的神經網絡,它具有兩個線性層和一個位于中間的非線性層。第三層是采用Viterbi算法實現的輸出層,它主要負責對輸入的句子進行最優標簽序列的搜索。
![]()
2.1 詞向量特征
我們定義一個字典DC和一個詞典DW,所有字向量均保存在字向量矩陣中,所有的詞向量均保存在詞向量矩陣中,其中和分別表示每個字向量和詞向量的維度,|DC|和|DW|分別表示字典和詞典的大小。
給定一個中文句子c[1:n],這個句子由n個字組成,經過分詞以后,這個句子可以被分為m個詞語。我們使用映射函數和,如式(1)、式(2)所示 。
![]()
其中的第列。是在字典中的字典序,是在詞典中的詞典序。
2.1.1 字特征
假定中文句子c[1:n],首先我們抽取每個字的特征向量作為深度神經網絡的輸入。對每一個字,最簡單的方法是直接使用作為的輸入特征,但是每個字的上下文對于這個字所表達的意義具有重要的作用,因此應該盡可能地使用上下文為提供更多的信息。由于句子的長短不一,為了適應不同長度的句子,使用滑動窗口的方式進行字特征的提取是合理的。
我們定義字窗口大小為,然后按照從左到右的順序滑動窗口,對于每一個字,它的輸入特征定義為:
![]()
如果出現字不在字典中的情況或者超邊界,我們將其映射為一個固定的向量,在實驗中我們為每一維數值均設定相同的歸一化向量。
字特征向量作為神經網絡模型的輸入,需要經過兩次線性變換和一次非線性變換g(·)抽取特征。我們采用sigmoid函數作為非線性變換的抽取函數:
![]()
假設NER的標簽種類用表示,則神經網絡的輸出是一個||維的向量。例如,使用“SBEIO”策略則輸出層包含五個節點。這個輸出向量表示對滑動窗口中字,預測每個標簽的概率。我們可以對每個字按照如式(5)進行概率預測。
![]()
其中,和
是訓練參數,是預設定的隱藏層的節點數。
2.1.2 詞特征
類似字特征,我們定義詞特征窗口為,對于詞,它的輸入特征可以簡單定義為:
![]()
詞向量的表示還有一個優點,就是可以方便的添加新的特征。例如,對于詞語可以添加詞性特征,對于單字可以添加姓氏特征等。由于命名實體的構成依賴于外部語言環境,詞性信息可以很好地對詞語進行抽象,進一步發現語句的結構聯系,所以我們在詞特征中加入詞性信息,進一步提高NER的性能。
我們定義詞性標注集合為POS,現定義一個單位方陣,當詞被標記為時,其對應的詞性序為k,的詞性向量表示為,它是一個One-hot向量,向量第k值為1,其余全部為0。其映射函數如式(7)所示。
給定某個中文語句由m個詞w[1:m]組成,詞性標注序列為ps[1:m]。那么,詞特征可以被定義為:
![]()
帶詞性的詞特征被定義為每個詞向量及其詞性one-hot向量的拼接,然后首尾相接組成詞特征。
![]()
2.1.3 字詞結合特征
我們選擇字詞結合的向量主要基于以下兩個原因:(1)基于字的NER不能夠理解中文漢字的意義,例如“中國”和“印度尼西亞”在僅使用字窗口的情況下,因為窗口限制及字長差異,是無法進行聯系擴展并將其正確地識別為地名的;(2)基于詞的NER強依賴于分詞結果的質量和詞典的完備程度,如果分詞出現錯誤會直接影響NER的結果。另外,因為不存在于詞典中的詞語會被映射為一個特殊的向量,意味著這個詞語本身不能夠提供任何信息,極有可能造成詞語的誤判斷。因此,我們選擇字詞結合的方式進行NER,二者之間可以進行有效的互補,從而提高NER系統的識別性能。
設定一種字詞映射關系:
![]()
結合的鄰近字和的上下文,定義字窗口和詞窗口大小分別為ω?和,從左至右滑動輸入窗口,對于每個字,它的字詞聯合輸入特征定義為:
![]()
加入詞性特征以后的字詞聯合特征如圖2所示,針對“上”字,抽取的5窗口的字特征如圖左所示,因為“上”是“上海”的一部分,所以詞特征方面是以“上海”為中心的,其窗口的詞語如圖右所示,關于詞性特征,以“上海”是名詞為例,詞性信息在/n位置顯示的是1,其他部分均為0。經過將字特征和詞特征進行連接,共同作為“上”的輸入特征,進入神經網絡進行處理,該輸入特征的定義為:
![]()
假設標簽集合為T,神經網絡的輸出為|T|維向量,用于指示輸入字的標簽概率。它的預測函數可以定義為:
![]()
其中,為訓練參數,H為隱藏節點個數。
2.2 語句評分
NER的標注結果取決于兩個數值,一是神經網絡輸出層的輸出概率,二是標簽的轉移概率轉移概率。表示的是從第i∈T個標簽轉移到第j∈T個標簽的概率,例如B標簽后面接E標簽的概率要遠大于接S標簽的概率。對于不會發生的轉移,可以采用設置其轉移概率為很小的負數來進行簡化計算。對于可能出現的轉移情況,可以采用隨機初始化或者平均初始化其轉移概率。最后可以采用Vertibi算法計算最優標簽路徑。
對于一個給定的句子c[1:n],神經網絡為每一個字輸出一個標簽概率向量,則對該句子輸出層是一個標簽概率矩陣,其中表示的是第i個字標記為標簽t?的概率,其計算方法如式(12)。給定句子c[1:n],標注的標簽t[1:n],將標簽概率和轉移概率聯合,表示的是整個句子標注得分,該得分定義為:
![]()
因此,我們選擇最優標簽序列,即使得s(c[1:n],t[1:n],θ)最大的似然估計,最優序列定義如下:
使用Viterbi算法可以快速計算出句子的最優標簽序列。
2.3 梯度下降訓練模型
該模型的訓練參數為θ=,可以選擇梯度下降法,對訓練集合中的每個訓練樣本(c,t)進行迭代訓練,最大化句子的概率。參數的更新操作如下:
其中,λ是訓練速度,P(·)是神經網絡最終的輸出分數,t和c分別表示的是標簽序列t[1:n]和輸入文本c[1:n]的簡寫。P(t|c,θ)表示的是給定句子c標記為序列t的條件概率,我們需要對它進行歸一化處理,主要采用softmax方法進行歸一化。
![]()
其中TP表示的是給定句子c,所有可能的標簽序列集合。它的對數似然可以表示為:
![]()
隨著句子長度的增加,|TP|會迅速增長,雖然計算一次可行路徑的耗時是線性的,但是計算所有可行路徑卻是指數級的。因此我們選用Zheng提出的加速算法,對模型進行更新。
3 實驗
我們共進行了三組實驗進行人名、地名、機構名的識別,第一組實驗的目的是對DNN參數進行選擇,第二組實驗是對比字向量、詞向量和字詞結合向量的NER性能,第三組實驗是比較加入詞性特征后的系統識別性能。
第一組實驗選用的是1998年《人民日報》語料1月(RMRB-98-1)的數據,選擇前75%共14860句的數據作為開發訓練集,剩余作為開發驗證集。第二組實驗選用的數據集是1998年《人民日報》語料(RMRB-98)1月至6月的數據,選取80%共100000句的數據作為訓練集,其余部分作為測試集。第三組實驗的數據與第二組相同,我們加入一級詞性、二級詞性特征后,觀察識別的F1值的變化情況。除此之外,使用word2vec對新浪新聞5個季度635MB的數據進行無監督訓練,非線性函數選取的是tanh函數,生成字向量和詞向量,分詞工具使用的是無字典的ICTCLAS。
實驗采用C++編程,運行服務器配置為2.05 GHz AMD Opteron(TM)CPU和8GB內存,軟件使用的是Linux操作系統和g++編譯器。實驗的評測方法是F1值、準確率、召回率。
3.1 DNN參數實驗
我們使用RMRB-98-1作為開發集,對參數的選擇進行實驗分析。對于人名(PERSON)、地名(LOCA)、機構名(ORGAN)三種識別任務,分別采用字特征(CHAR)、詞特征(WORD)、字詞聯合(CH—WO)特征進行實驗,對比在不同窗口大小和不同隱藏層節點的情況下F值的變化情況,實驗結果如圖2、圖3所示。
![]()
![]()
從圖2可以看出,當窗口大小在3~5時,系統的識別效果較好。我們可以觀察到如下現象:字詞結合系統對于大部分識別任務是窗口大小不敏感的,在小窗口下也可以達到很好的效果;人名任務的最優窗口大小為5,因為中文人名一般都小于5并且這樣的窗口大小可以帶來一部分信息;當窗口大于5時,由于過擬合的原因,機構名的識別準確率急速下降。從圖3可以觀察到,當隱藏節點足夠多時,系統的性能不再受到很大影響,而且隱藏節點數目越多系統運行越緩慢。因此,在余下的實驗中,我們設定了300個隱藏節點。
3.2 字詞法合向量對比實驗
字向量、詞向量、字詞結合向量對比實驗的數據集為RMRB-98,參數設定如表1所示,實驗結果如表2所示。
![]()
![]()
對于地名和機構名任務,詞向量的結果優于字向量,這主要是因為詞向量更能表達詞語的潛在語義關系。中文句子是由許多詞語組成的,相同的字的不同組合,語句中詞語意思也可能不相同,而且字特征的窗口受到限制,因此NER的結果普遍不如詞向量。但是對于人名識別任務,由于詞典稀疏問題,詞向量方法中人名會被影射成一個特殊向量,降低了識別效果,而且人名更關注于姓氏和語句結構,因此使用字向量效果更好。
字特征和詞特征都有其自身的局限性,因此當使用字詞結合向量后,三類任務的取值均有較大提升,對地名、人名、機構名的提升度分別達到了1.6%、8%、3%。
3.3 結合詞性特征對比實驗
使用DNN結構可以輕松地加入額外的特征信息。例如,當我們加入了詞性特征以后,系統的性能有了很大的提高。我們分別對比了不增加詞性信息(no-pos)、增加一級詞性標注(1-pos)、增加二級詞性標注(2-pos)的實驗結果。實驗中的詞性使用《現代漢語語料庫加工——詞語切分與詞性標注規范》中的詞性標注符號。其中一級詞性有25個,二級詞性有39個,如表3所示。實驗結果如表4所示。我們和現階段較好的NER模型——Hybrid Mod-el(HM)進行了實驗對比,HM模型使用的訓練數據和測試數據與本文方法相同,實驗結果顯示:加入詞性標注的字詞聯合模型可以超越HM的識別性能,在地名、人名和機構名的識別上,F1值可以達到96.8%、94.6%、88.6%。尤其需要指出的是,本文的方法有效提高了地名、人名和機構名識別任務的召回率,加入2-pos后系統性能提升明顯。其中在人名F1值方面我們的模型不如HM好,主要原因是HM進行了人名的細分,它針對不同國家的人名訓練了不同的模型并進行混合,而我們的模型是不區分國家人名的,所以我們的結果略差于HM模型。與此同時,我們還使用了CRF模型與本文方法進行比較,實驗結果表明,加入2-pos后的系統在地名和人名識別方面表現出色,但機構名識別方面準確率不如CRF高,這可能是由于機構名構成復雜,神經網絡語言模型只利用了局部信息而沒有利用全局信息導致的。
![]()
![]()
4 結論與展望
本文介紹了用于中文命名實體識別的深度神經網絡,提出了字詞結合方法,有效地彌補了單字識別和單詞識別的不足,加入詞性特征后的識別系統性能更加魯棒。實驗對比了字向量、詞向量和字詞結合向量在中文NER上的結果,字詞結合方法對中文NER有較大提升。目前,跟命名實體相關的專用特征還沒有加入到系統中,我們下一步將考慮加入姓氏集、地區特征集等相關特征,進一步觀察該方法的系統性能。
作者:張海楠,伍大勇,劉悅,程學旗
來源:《中文信息學報》2017年第4期
選稿:耿 曈
編輯:賀雨婷
校對:歐陽莉艷
審訂:杜佳玲
責編:耿 曈
(由于版面內容有限,文章注釋內容請參照原文)
![]()
![]()
微信掃碼加入
中國地名研究交流群
QQ掃碼加入
江西地名研究交流群
歡迎來稿!歡迎交流!
轉載請注明來源:“江西地名研究”微信公眾號
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.