基於Bert-NER構建特定領域的中文信息抽取框架(上)

2021-02-23 AI前線
AI 前線導讀: 知識圖譜(Knowledge Graph)主要由實體、關係和屬性構成,而 信息抽取(Information Extraction) 作為構建知識圖譜最重要的一個環節,目的就是從文本當中抽取出三元組信息,包括「實體 - 關係 - 實體」以及「實體 - 屬性 - 實體」兩類。然後將抽取後的多個三元組信息儲存到關係型資料庫(neo4j)中,便可得到一個簡單的知識圖譜。

本文通過多個實驗的對比發現,結合 Bert-NER 和特定的分詞、詞性標註 等中文語言處理方式,獲得更高的準確率和更好的效果,能在特定領域的中文信息抽取任務中取得優異的效果。

更多優質內容請關注微信公眾號「AI 前線」(ID:ai-front)

信息抽取和知識圖譜

命名實體識別(Name Entity Recognition)是獲取三元組中的實體的關鍵。命名實體 指的是文本中具有特定意義或者指代性強的實體,常見的包括人名、地名、組織名、時間、專有名詞等。就目前來說,使用 序列標註 的方法能夠在 NER 任務中獲得比較優異的效果,相對來說比較成熟。

NER 發展趨勢圖


序列標註任務,即在給定的文本序列上預測序列中需要作出標註的標籤。處理方式可簡單概括為:先將 token 從離散 one-hot 表示映射到低維空間中成為稠密的 embedding,隨後將句子的 embedding 序列輸入到 RNN 中,使用神經網絡自動提取特徵以及 Softmax 來預測每個 token 的標籤。

本文對比了基於 Bert 的命名實體識別框架和普通的序列標註框架在模型訓練、實體預測等方面的效果,並對基於小數據集的訓練效果做出實驗驗證。

Word Embedding-BiLSTM-CRF

眾多實驗表明,該結構屬於命名實體識別中最主流的模型,代表的工具有:NeuroNER)。它主要由 Embedding 層(主要有詞向量,字向量以及一些額外特徵)、雙向 LSTM 層、以及最後的 CRF 層構成,而本文將分析該模型在中文 NER 任務中的表現。

「詞向量 +BiLSTM+CRF」三層模型構造圖

註:NER 任務需要得到實體詞的輸出,所以使用字向量作為輸入。

隨著 Bert 語言模型在 NLP 領域橫掃了 11 項任務的最優結果,將其在中文命名實體識別中 Fine-tune 必然成為趨勢。它主要是使用 bert 模型替換了原來網絡的 word2vec 部分,從而構成 Embedding 層,同樣使用雙向 LSTM 層以及最後的 CRF 層來完成序列預測。

NeuroNER 和 BertNER 的中文 NER 實驗

數據來源: 本文的 NER 實驗數據是來自於 人民網 的將近 7 萬句(250 萬字)中文新聞語料。

CSV 格式的原始數據

數據樣式:

本文選用 BIO 標註法,其中」B「表示實體起始位置,」I「表示實體內容位置,」O「表示非實體。將 7 萬條數據樣本經過清洗後,按字進行分割,使用 BIO 標註形式標註四類命名實體,包括人名(PERSON)、地名(LOCATION)、組織機構名(ORGANIAZATION)以及時間(TIME),構成中文命名實體識別語料庫。

數據標註樣式圖

數據劃分:

訓練集、驗證集、測試集以「7:1:2」的比例劃分。其中訓練集達到 49600 條的樣本數,標註實體共 88192 個;驗證集為 7000 條,包含 12420 個標註實體;測試集為 14000 條,標註實體共 25780 個。

展示用例: 屠呦呦,女,漢族,中共黨員,藥學家。1930 年 12 月 30 日生於浙江寧波,1951 年考入北京大學,在醫學院藥學系生藥專業學習。1955 年,畢業於北京醫學院(今北京大學醫學部)。展示用例抽取結果:[['PERSON', '屠呦呦'], ['TIME', '1930 年 12 月 30 日'], ['LOCATION', '浙江寧波'], ['TIME', '1951 年'], ['ORGANIZATION', '北京大學'], ['ORGANIZATION', '醫學院藥學系'], ['TIME', '1955 年'], ['ORGANIZATION', '北京醫學院'], ['ORGANIZATION', '北京大學醫學部']]

實驗結果

註:實驗配置為 11G Nvidia RTX2080Ti、Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz、16G 內存、2T 硬碟

結論

實驗表明,兩者在相同的迭代次數訓練後,測試集的 F1 值上 BertNER 比 NeuroNER 高出超過 4 個百分點。即使 NeuroNER 迭代 epoch 增加到 100,仍然是 BertNER 的識別效果更優。

Bert NER 在訓練時長、模型加載速度、預測速度上都佔據了很大的優勢,達到工業級的水平,更適合應用在生產環境當中。

綜上所述,Bert-BiLSTM-CRF 模型在中文命名實體識別的任務中完成度更高。

從 5 萬句(250 萬字)的中文新聞語料中按文本數據的字數(萬字為單位)劃分出 10W、30W、50W 的小數據集,同樣以「7:1:2」的比例得到對應的訓練集、驗證集、測試集。

命名實體識別結果展示

展示用例: 屠呦呦,女,漢族,中共黨員,藥學家。1930 年 12 月 30 日生於浙江寧波,1951 年考入北京大學,在醫學院藥學系生藥專業學習。1955 年,畢業於北京醫學院(今北京大學醫學部)。展示用例抽取結果:[['PERSON', '屠呦呦'], ['TIME', '1930 年 12 月 30 日'], ['LOCATION', '浙江寧波'], ['TIME', '1951 年'], ['ORGANIZATION', '北京大學'], ['ORGANIZATION', '醫學院藥學'], ['TIME', '1955 年'], ['ORGANIZATION', '北京醫學院'], ['ORGANIZATION', '北京大學醫學部']]

實驗結果

實驗結果圖

效能對比表

結論

BertNER 在小數據集甚至極小數據集的情況下,測試集 F1 值均能達到 92 以上的水平,證明其也能在常見的文本命名實體識別任務中達到同樣優秀的效果。實驗結果證明,利用小數據集訓練,可以大大降低人工標註成本的同時,訓練時長也越少,也將極大地提高模型迭代的能力,有利於更多實體類型的 NER 模型構建。經過效能分析可以看出,數據量往上增加的同時,訓練時長以相同的比例增加,而 F1 值提升的幅度在逐漸下降。因此,我們在擴充實體類別的時候,可以參考此效能比例,從而衡量所要投入的資源以及所能達到的模型效果。分詞: 語言通常是需要用詞來描述事物、表達情感、闡述觀點等,可是在詞法結構上中文與英文有較大的區別。其中最大的不同是英文將詞組以空格的形式區分開來,較為容易被自動化抽取出來,而中文的詞組往往需要由兩個以上的字來組成,則需要通過分詞工具來將語句拆分,以便進一步分析內容和意圖。詞性標註: 對分詞後的單詞在用法上進行分類,為句法分析、信息抽取等工作打下基礎。常見的詞性包括名詞、動詞、形容詞、代詞、副詞等。

分詞和詞性標註往往是一同完成的。本文選取了主流的四款中文自然語言處理工具包括:Jieba、Pyltp、PkuSeg、 THULAC 。

對比測試了它們分詞和詞性標註上的效果、速度、功能以及集成程度等。其中速度方面的測試,使用了百度百科上 100 位科技人物的首句人物介紹,經過預測得到每句文本的平均計算。

註:實驗配置為 11G Nvidia RTX2080Ti、Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz、16G 內存、2T 硬碟

註:v(動詞)、e(嘆詞)、b(區別詞)、n(名詞)、ns(地名)、nz(其他專名)、q(量詞)、m(數詞)、x(非語素字)

註:nh(人名)、n(名詞)、ns(地名)、nt(時間名詞)、nz(其他專名)、b(區別詞)、wp(標點符號)

註:nr(人名)、ns(地名)、nz(其他專名)、t(時間詞)、b(區別詞)、j(簡稱)、w(標點符號)

註:g(語素詞根)、ns(地名)、nz(其他專名)、t(時間詞)、a(形容詞)、j(簡稱)、w(標點符號)

Jieba 分詞 + Bert-NER + Pyltp 詞性標註:

註:nh(人名)、n(名詞)、ns(地名)、nt(時間名詞)、nz(其他專名)、b(區別詞)、wp(標點符號)

經過 NER、分詞、詞性標註的對比測試後發現,Jieba 分詞同時具有速度快和支持用戶自定義詞典的兩大優點,Pyltp 具有單獨使用詞性標註的靈活性。因此,使用 「Jieba 分詞 + BertNER 作自定義詞典 + Pyltp 詞性標註」 的組合策略後,可以彌補 Jieba 分詞在實體識別的缺點,保證較高的準確率和產品速度。PkuSeg 和 THULAC:初始化模型就需要很長時間,導致分詞和詞性標註的模型預測速度慢,同時部分人名的命名實體識別有所缺失。Pyltp:分詞效果太過於細化,而且實際上是無法用到用戶自定義詞典的。因為 LTP 的分詞模塊並非採用詞典匹配的策略,而是 外部詞典以特徵方式加入機器學習算法當中,並不能保證所有的詞都是按照詞典裡的方式進行切分。

指代消解(Coreference Resolution),即在文本中確定代詞指向哪個名詞短語,解決多個指稱對應同一實體對象的問題。

常見用於實現指代消解的工具包:NeuralCoref、Stanford coreNLP、AllenNLP 等。

大部分工具包都是基於語義結構中的詞和句的規則來實現指代消解,而且都是在英文的語言結構當中實現了不錯的效果,NeuralCorefAllenNLP 不支持中文,而 Stanford coreNLP 是具有多種語言模型,其中包括了中文模型,但 Stanford coreNLP 的指代消解在中文的表現並不理想。目前而言,基於深度學習的端到端指代消解模型還達不到生產應用的要求。

基於 Stanford coreNLP 的指代消解模型

運用 Stanford coreNLP 中文模型的 詞性標註實體識別句法依存 功能模塊 +規則 來構成一個中文指代消解系統。

主語"屠呦呦"被拆分為兩個元素,這也直接導致了主語識別成了呦呦。最後的結果為:

本文選取 Pyltp 中文工具包中的依存句法分析模塊,結合「Jieba 分詞 + BertNER 作自定義詞典 + Pyltp 詞性標註」的詞性標註和 BertNER 實體識別模塊,以確定輸入文本段落的主語和實體,從而將文本中出現的代詞指代到對應的實體上。並且還實現了對缺失主語的部分文本進行主語補齊。

經過反覆的實驗表明,基於 BertNER 的中文指代消解框架比基於 Stanford coreNLP 的指代消解模型在中文上獲得 更高的準確率和更好的效果,同時實現了主語補齊的功能,有助於抽取更多的有用三元組信息。

以下是基於 Bert-NER 的中文信息抽取系統的最終實驗結果,模型細節請關注我們下一篇:《基於 Bert-NER 構建特定領域的中文信息抽取框架(下)》。

目前的規則配置文檔定義了五類關係:出生於,配偶,畢業於,工作在,父(母)子。

基於 80 條百度百科人物介紹,使用 StanfordCoreNLP 提取三元組的效果如下圖所示。五類的關係抽取三元組準確率為 0.89,抽取率達到 0.69。

基於 80 條百度百科人物介紹,使用本文中文抽取模型,取得較為明顯的改進,五類的關係抽取三元組準確率達到 0.99,抽取率達到 0.96。

測試用例結果展示

本文實驗代碼:

中文命名實體識別:https://github.com/EOA-AILab/NER-Chinese

中文分詞與詞性標註:https://github.com/EOA-AILab/Seg_Pos

原文地址:

https://zhuanlan.zhihu.com/p/74803327

你也「在看」嗎?👇

相關焦點

  • NER信息抽取在OCR中的應用
    即從自然語言文本中,抽取出特定的事件或事實信息,幫助我們將海量內容自動分類、提取和重構。這些信息通常包括實體(entity)、關係(relation)、事件(event)。本文重點介紹NER作為信息抽取的手段,在OCR中的應用。 OCR全稱:Optical Character Recognition,光學字符識別。
  • BERT詳解:開創性自然語言處理框架的全面指南
    然後幾天後,新一代前沿框架的出現,導致現有模型已經落後了。這不是一個假設。這就是自然語言處理領域工作者所面對的現實(和挑戰)!過去兩年取得的突破令人驚嘆,接連出現出現各種新框架,可能比目前掌握的框架還要好。谷歌BERT就是這樣一個自然語言處理框架。這可能是近幾年最有影響力的一次革新。
  • Lex-BERT:超越FLAT的中文NER模型?
    NER方法——Lex-BERT,其僅僅通過將詞彙信息以標識符的形式引入到原文輸入中,就可以有效增強中文NER效果。由於Lex-BERT炒雞簡單,JayJay想安利給大家,趕緊在自己的中文NER任務上嘗試一下吧~前言談起中文NER任務,NLPer都不陌生。
  • 關鍵短語抽取及使用BERT-CRF的技術實踐
    基於embedding的方法:這類方法,利用embedding來表達文章和短語在各個層次的信息(如:字、語法、語義等)。Figure 3  典型無監督方法在benchmarks上的效果有監督方法  雖然需要花費很多精力進行數據標註,但有監督方法在各個特定任務和數據集上,通常能夠取得更好的效果。
  • 2018年的一篇NER綜述筆記
    而軟匹配上,其實由於他的複雜性和基於問題的特異性,沒有被廣泛使用。傳統NER方法所謂的「傳統」方法,作者認為是除了DL之外的方法都算吧。基於規則的方法會依賴問題的背景,其實也有一些輸出,作者角度看,如果資源足夠時,其實就能夠有很好的效果(這個和我的實踐來看是一致的),高準確低召回低可遷移性是它的特點。
  • 百分點認知智能實驗室:信息抽取在知識圖譜構建中的實踐與應用
    在中文分詞領域,國內科研機構推出多種分詞工具(基於規則和詞典為主)已被廣泛使用,例如哈工大LTP、中科院計算所NLPIR、清華大學THULAC和jieba分詞等。在百分點的知識圖譜構建應用中,法律百科概念詞條領域實體,採用基於詞典和規則的方法從文本中抽取實體類知識,具有更高的準確率;而抽取人名、地名、組織機構等,由於無法構建完整的詞典且規則很難適應數據變化,採用基於序列標註的命名實體抽取模型BiLSTM-CRF 或者BERT-CRF 實現。
  • 【NLP基礎】信息抽取(Information Extraction:NER(命名實體識別),關係抽取)
    :從自然語言文本中抽取指定類型的實體、關係、事件等事實信息,並形成結構化數據輸出的文本處理技術信息抽取是從文本數據中抽取特定信息的一種技術。文本數據是由一些具體的單位構成的,例如句子、段落、篇章,文本信息正是由一些小的具體的單位構成的,例如字、詞、詞組、句子、段落或是這些具體的單位的組合。抽取文本數據中的名詞短語、人名、地名等都是文本信息抽取,當然,文本信息抽取技術所抽取的信息可以是各種類型的信息。本文介紹從文本中提取有限種類語義內容的技術。
  • 中文最佳,哈工大訊飛聯合發布全詞覆蓋中文BERT預訓練模型
    而在中文領域,哈工大訊飛聯合實驗室也於昨日發布了基於全詞覆蓋的中文 BERT 預訓練模型,在多個中文數據集上取得了當前中文預訓練模型的最佳水平,效果甚至超過了原版 BERT、ERINE 等中文預訓練模型。基於 Transformers 的雙向編碼表示(BERT)在多個自然語言處理任務中取得了廣泛的性能提升。
  • 基於ABP框架的檔案信息資源共享平臺模型構建
    文章在解讀ABP框架及其分層架構的基礎上,從平臺構建的用戶需求出發,全面闡述了檔案信息大數據資源中心和檔案大數據管理平臺、檔案信息公共服務平臺、檔案管理業務處理平臺(即一個中心、三大平臺)模型構建思路,提出採用ABP框架實現模型快速構建檔案信息資源共享平臺並提昇平臺構建質量。
  • NLP: 基於文本語義的智能問答系統
    常見的分類有:生成型、檢索型問答系統;單輪問答、多輪問答系統;面向開放領域、特定領域的問答系統。本文涉及的主要是在檢索型、面向特定領域的問答系統**——智能客服機器人。**傳統客服機器人的搭建流程通常需要將相關領域的知識(Domain Knowledge),轉化為一系列的規則和知識圖譜。
  • 中文信息處理與信息檢索(Chinese Processing & IR)(2)
    (中文信息學報)    譚曉平 楊麗姣 蘇靖傑 藉助漢-越雙語詞對齊語料構建越南語依存樹庫 (中文信息學報)    李發傑 餘正濤 郭劍毅 李英 周蘭江 領域相關的漢語情感詞典擴展 (中文信息學報)    宋佳穎 賀宇 付國宏 中文模糊限制語語料庫的研究與構建 (中文信息學報)    周惠巍 楊歡 張靜
  • 中文醫療NLP領域 數據集,論文 ,知識圖譜,語料,工具包
    2)醫療實體及屬性抽取(跨院遷移):在醫療實體識別的基礎上,對預定義實體屬性進行抽取。本任務為遷移學習任務,即在只提供目標場景少量標註數據的情況下,通過其他場景的標註數據及非標註數據進行目標場景的識別任務。
  • 流水的NLP鐵打的NER:命名實體識別實踐與探索
    NER結合一下,比如結合強化學習的NER、結合 few-shot learning 的NER、結合多模態信息的NER、結合跨語種學習的NER等等的,具體就不提了所以沿著上述思路,就在一個中文NER任務上做一些實踐,寫一些模型。
  • WWW 2020:百度入選論文解析,涵蓋信息抽取、對抗生成等領域
    對於人類而言,這些非結構化的信息是易於理解的,但是計算機很難直接利用這些非結構化的文本數據進行運算和邏輯處理。因此,從大量的非結構化信息中提取出結構化的知識,為後續自動化的信息處理、知識計算等任務構築了有力的基石。在本篇論文中,百度把信息抽取任務通過蒙特卡洛過程建模,提出了基於蒙特卡洛樹搜索的開放領域信息抽取方法。
  • 【論文解讀】LGN: 基於詞典構建的中文NER圖神經網絡
    介紹Motivation基於字符的中文NER中,同一個字符可能屬於多個lexicon word,存在 overlapping ambiguity 的現象, 這會對最終標註結果造成誤導。例如圖1中, 「河流」 也可屬於 "流經" 兩個詞中,都含有同一個"流"字。
  • 【NLP】流水的NLP鐵打的NER:命名實體識別實踐與探索
    心有多大,特徵就有多多多任務:很多時候做 NER 的目的並不僅是為了 NER,而是服務於一個更大的目標,比如信息抽取、問答系統等等的,如果把整個大任務做一個端到端的模型,就需要做成一個多任務模型,把 NER 作為其中一個子任務;另外,如果單純為了 NER,本身也可以做成多任務,比如實體類型多的時候,單獨用一個任務來識別實體,另一個用來判斷實體類型時令大雜燴:把當下比較流行的深度學習話題或方法跟
  • 中文命名實體識別有困難?在Amazon SageMaker上看如何基於TensorFlow來解決~
    利用業內數據構建知識圖譜是很多客戶正在面臨的問題,其中中文命名實體識別(Named Entity Recognition,簡稱 NER)是構建知識圖譜的一個重要環節。我們在與客戶的交流中發現,現有的 NER 工具(比如 Jiagu)對於特定領域的中文命名實體識別效果難以滿足業務需求,而且這些工具很難使用自定義數據集訓練。因此客戶迫切想使用業內最先進的算法在行業內數據集上進行訓練,以改進現有 NER 工具的不足。本文將介紹如何使用 Amazon SageMaker 運行基於 TensorFlow 的中文命名實體識別。
  • 【BERT】如何訓練並使用Bert【持續更新】
    flashgene.com/archives/ 講了bert用於閱讀理解任務相應的ner也是在最後用softmax來計算各個標籤的概率為此,他把心思都放到設備集成,提高保障能力上。座談會上,中越雙方表示,新的一年,雙方要繼續加強各個領域的合作,共同推進跨境經濟合作區建設,特別是中越北崙河二橋等重大項目的建設,繼續加強在邊境貿易、跨境旅遊、跨境金融、勞務合作、警務合作、邊境管控、打擊走私等領域的交流合作,推動兩市的合作發展取得更大的成績。
  • 序列標註與中文NER實戰
    下面我們以中文命名實體識別為例,進一步加深對任務定義的理解。在中文命名實體識別任務中,輸入序列X為原始中文文本字符串,任務是識別人名(PER)、地名(LOC)、公司/機構名(ORG)以及其他元素(O),之後對原始中文逐字序列標註,生成目標標籤序列Y,再通過抽取整合同一類型的標籤,完成對於上述4類實體的識別。