宋汝良,杜國寧
(上海夢創(chuàng)雙楊數(shù)據(jù)科技股份有限公司,上海 200333)
命名實體識別(Named Entity Recognition,NER),又稱實體識別、實體分塊和實體提取等,是信息提取任務(wù)的一個子任務(wù)。命名實體識別旨在定位文本中具有特殊意義的實體并分類為預(yù)先定義的類別,如人員、組織、位置等。命名實體識別是自然語言處理領(lǐng)域中的基本任務(wù)之一,在信息抽取、信息檢索、機器翻譯、問答系統(tǒng)等多種自然語言處理技術(shù)中具有重要意義。在自然語言處理中,命名實體識別可以看作一種在詞法分析中對未收錄詞的識別,并且是未收錄詞數(shù)量最多、識別難度最大、對分詞效果影響最大的問題。根據(jù)SIGHAN Bakeoff數(shù)據(jù)評測結(jié)果[1],未登錄詞造成的分詞精度損失至少比歧義大5倍以上,這證明了命名實體的重要性。
本項目中,研究員針對中文命名實體識別問題,首先調(diào)研了命名實體識別的通用技術(shù)及其發(fā)展,其次使用PyTorch框架構(gòu)建了兩種用于完成命名實體識別任務(wù)的模型,搭建了中文命名實體識別平臺,最后在人民日報數(shù)據(jù)集中,對比評估了不同模型的效果。
國外對于英文命名實體識別的研究開始比較早。1991年Rau[2]在第7屆IEEE人工智能應(yīng)用會議上發(fā)表了“抽取和識別公司名稱”的有關(guān)研究文章,首次描述了抽取和識別公司名稱的系統(tǒng),該系統(tǒng)主要采用啟發(fā)式算法和手工編寫規(guī)則的方法。1996年,命名實體評測作為信息抽取的一個子任務(wù)被引入MUC-6,在其后的MUC-7、MET-2、IEER-99、CoNLL-2002、CoNLL-2003、IREX、LREC等一系列國際會議中,命名實體識別都被作為其中的一項指定任務(wù)。
和英語相比,漢語命名實體識別任務(wù)更加復(fù)雜,由于分詞等因素的影響難度較大,其難點主要表現(xiàn)在如下幾個方面:
(1)命名實體類型多樣,數(shù)量眾多,不斷有新的命名實體涌現(xiàn),如新的人名、地名等,難以建立大而全的姓氏庫、名字庫、地址庫等數(shù)據(jù)庫。
(2)命名實體構(gòu)成結(jié)構(gòu)比較復(fù)雜,并且某些類型的命名實體詞的長度沒有一定的限制,不同的實體有不同的結(jié)構(gòu),比如組織名存在大量的嵌套、別名、縮略詞等問題,沒有嚴(yán)格的規(guī)律可以遵循;人名中也存在比較長的少數(shù)民族人名或翻譯過來的外國人名,沒有統(tǒng)一的構(gòu)詞規(guī)范。因此,對這類命名實體識別的召回率相對偏低。
(3)在不同領(lǐng)域、場景下,命名實體的外延有差異,存在分類模糊的問題。不同命名實體之間界限不清晰,人名也經(jīng)常出現(xiàn)在地名和組織名稱中,存在大量的交叉和互相包含現(xiàn)象,而且部分命名實體常常容易與普通詞混淆,影響識別效率。在個體戶等商戶中,組織名稱中也存在大量的人名、地名、數(shù)字的現(xiàn)象,要正確標(biāo)注這些命名實體類型,常常要涉及上下文語義層面的分析,這些都給命名實體的識別帶來困難。
(4)在不同的文化、領(lǐng)域、背景下,命名實體的外延有差異。目前對命名實體的定界和類型確定還沒有形成共同遵循的、嚴(yán)格的命名規(guī)范。本項目基于上述背景展開。
目前,研究人員已經(jīng)提出了許多用于命名實體識別任務(wù)的方法。命名實體識別的早期研究經(jīng)常利用支持向量機(Support Vector Machine,SVM)[3]、隱馬爾科夫模型(Hidden Markov Model,HMM)[4]和條件隨機場(Conditional Random Field,CRF)方法,這在很大程度上依賴于特征工程。近年來,神經(jīng)網(wǎng)絡(luò)模型已經(jīng)被引入命名實體識別任務(wù)中。Huang等[5]的研究利用雙向長短時記憶(Bi-directional Long Short-Term Memory Network,BiLSTM)網(wǎng)絡(luò)提取特征并將其饋入CRF解碼器。之后的研究通常將BiLSTM-CRF模型用作基準(zhǔn)模型。Peng等[6]于2016年提出了針對中文命名實體識別的聯(lián)合模型,該模型是通過中文詞語分割(Chinese Word Segmentation,CWS)任務(wù)共同訓(xùn)練的。但是,CWS任務(wù)帶來的某些特征會降低中文命名實體識別任務(wù)的性能。此外,Wang等[7]于2017年提出了針對中文命名實體識別的門控卷積神經(jīng)網(wǎng)絡(luò)(Gated Convolutional Neural Networks,GCNN)模型。
目前較為成熟的解決方案是應(yīng)用BiLSTM-CRF模型完成命名實體識別任務(wù)。BiLSTM模型可以學(xué)到記憶哪些信息和遺忘哪些信息,并且能夠捕捉雙向的語義依賴,具有良好的語義建模能力。條件隨機場(Conditional Random Field,CRF)是一類統(tǒng)計建模方法,通常應(yīng)用于模式識別和機器學(xué)習(xí)中,并用于結(jié)構(gòu)化預(yù)測。它能夠在預(yù)測時考慮上下文的聯(lián)系,可以在預(yù)測中實現(xiàn)順序依賴性。BiLSTM和CRF的優(yōu)點使得它們在命名實體識別任務(wù)中大放異彩。
BERT模型[8]出現(xiàn)于Google AI語言研究人員發(fā)表的最新論文中。通過在各種NLP任務(wù)中展示最新結(jié)果,在機器學(xué)習(xí)社區(qū)引起了轟動。BERT的主要技術(shù)創(chuàng)新是將注意力模型Transformer的雙向培訓(xùn)應(yīng)用于語言建?!,F(xiàn)在,研究人員可以在BERT模型的基礎(chǔ)上進行微調(diào),以獲取針對特定任務(wù)的模型。
在本次項目中,研究員結(jié)合對中文命名實體識別的探索,選擇了使用Embedding-BiLSTM-CRF這一成熟的架構(gòu)作為基本模型。除此之外,研究員還嘗試將BERT模型與基本模型結(jié)合,通過預(yù)訓(xùn)練BERT模型替換原有的嵌入層,通過微調(diào)對模型進行更新,并將這一模型稱為進階模型。
基礎(chǔ)模型的輸入是一個序列,序列中的元素對應(yīng)句子中每個字id。模型的Embedding層將字的id轉(zhuǎn)為該字對應(yīng)的向量,BiLSTM層對該向量進行編碼和解碼,輸入CRF層。CRF層對輸入的序列進行路徑計算,最終獲取每個字對應(yīng)的標(biāo)簽id。
進階模型與基礎(chǔ)模型類似,區(qū)別在于使用預(yù)訓(xùn)練的BERT模型替換了Embedding層,模型的輸入為字序列。BERT模型將字序列轉(zhuǎn)為對應(yīng)的序列向量,之后的過程與基礎(chǔ)模型相同。
在本次項目中,研究員結(jié)合對中文命名實體識別的探索,選擇了使用Embedding-BiLSTMCRF這一成熟的架構(gòu)作為基本模型。除此之外,研究員還嘗試將BERT模型與基本模型結(jié)合,通過預(yù)訓(xùn)練BERT模型替換原有的嵌入層,通過微調(diào)對模型進行更新,將這一模型稱為進階模型。
基礎(chǔ)模型的輸入是一個序列,序列中的元素對應(yīng)句子中每個字id。模型的Embedding層將字的id轉(zhuǎn)為該字對應(yīng)的向量,BiLSTM層對該向量進行編碼和解碼,輸入CRF層。CRF層對輸入的序列進行路徑計算,最終獲取每個字對應(yīng)的標(biāo)簽id。
進階模型與基礎(chǔ)模型類似,區(qū)別在于使用預(yù)訓(xùn)練的BERT模型替換了Embedding層,模型的輸入為字序列。BERT模型將字序列轉(zhuǎn)為對應(yīng)的序列向量,之后的過程與基礎(chǔ)模型相同。
研究員為中文命名實體識別任務(wù)開發(fā)了一個網(wǎng)頁平臺,方便用戶快速從文本中提取人名、地點和組織。該平臺以Python為后端,前端則以Bootstrap框架開發(fā),應(yīng)用的初始界面如圖1所示。
在輸入框中輸入一個句子,點擊“識別”按鈕,該句子將通過Ajax方式發(fā)送至后端。后端將加載訓(xùn)練好的模型,對接收到的句子進行預(yù)測,并將預(yù)測結(jié)果以Json文件形式返回前端。前端接收到返回結(jié)果后,將對網(wǎng)頁進行部分刷新,以展示預(yù)測結(jié)果。除了單個句子的預(yù)測,平臺也支持對多個句子同時預(yù)測,一個示例如圖2所示。
為了驗證命名實體識別模型的識別效果,研究員設(shè)計并進行了實驗,使用公開數(shù)據(jù)集對模型的識別能力進行了驗證。
實驗所采用的數(shù)據(jù)集為人民日報數(shù)據(jù)集,是中文命名實體識別任務(wù)最常用的數(shù)據(jù)集之一。數(shù)據(jù)集中包含有LOC(地名)、ORG(機構(gòu)名)、PER(人名)3種標(biāo)簽,使用BIO標(biāo)注策略對數(shù)據(jù)進行標(biāo)注。
圖1 在線中文命名實體識別平臺初始界面
圖2 識別結(jié)果示例
為了比較基礎(chǔ)模型和進階模型的效果,研究員設(shè)置了多組參數(shù),分別構(gòu)建了兩類模型進行訓(xùn)練,并在測試集中對模型效果進行驗證。驗證選取的評估指標(biāo)為查準(zhǔn)率、召回率和f1-score。對于每個預(yù)測結(jié)果,當(dāng)且僅當(dāng)預(yù)測出的命名實體的起始坐標(biāo)、終止坐標(biāo)與golden tag都相同時,認(rèn)為該次預(yù)測是正確的。實驗所采用的評價指標(biāo)為查準(zhǔn)率、查全率和F1分?jǐn)?shù),結(jié)果如表1所示。
表1 模型在人民日報數(shù)據(jù)集中的實驗結(jié)果
從實驗結(jié)果可以看出,引入預(yù)訓(xùn)練的BERT模型作為嵌入層后,模型的整體效果被很輕易地大幅提升了。
本項目針對中文命名實體識別任務(wù)展開了探索,并選取了目前應(yīng)用最廣泛的Bi-LSTM+CRF模型作為基礎(chǔ)模型,完成了中文命名實體識別任務(wù)。此外,本項目還引進了BERT模型,對基礎(chǔ)模型進行改進,即使用預(yù)訓(xùn)練的BERT模型替換基礎(chǔ)模型中的嵌入層。研究員使用人民日報數(shù)據(jù)集進行實驗,訓(xùn)練和評估了基礎(chǔ)模型和進階模型,實驗結(jié)果表明進階模型能夠大幅提升模型預(yù)測效果。另外,本項目還為中文命名實體識別任務(wù)開發(fā)了對應(yīng)的平臺,方便用戶使用訓(xùn)練后的模型對中文語句進行預(yù)測。
本項目實現(xiàn)的進階模型具有識別效果好、訓(xùn)練簡單、規(guī)模較小等優(yōu)點。此外,使用這一模型完成命名實體識別任務(wù)時,并不需要對語句進行額外的數(shù)據(jù)預(yù)處理操作。同時,本項目所構(gòu)建的在線中文命名實體識別平臺為用戶完成中文命名實體識別任務(wù)提供了便利。