被封神的多語言BERT模型是如何開啟NER新時代的?

2021-01-06 讀芯術

全文共3880字,預計學習時長20分鐘或更長

在世界數據科學界, BERT模型的公布無疑是自然語言處理領域最激動人心的大事件。

鑑於BERT還未廣為人知,特此做出以下解釋:BERT是一種以轉換器為基礎,進行上下文詞語預測,從而得出最優結果的語言表徵模型。計算語言學協會北美分會將BERT論文評為年度最佳長篇論文。谷歌研究發布了經過預訓練的BERT模型,包括多語言、中文和英文BERT。

會話人工智慧框架Deeppavlov是基於iPavlov開發的,它包含構建對話系統所需的所有組件。BERT發布之後,其處理多種任務的能力令人驚異。

BERT可以集成到三個常用NLP任務的解決方案中:文本分類、標記和問題回答。本文將將詳細闡釋如何在DeepPavlov中使用基於BERT的命名實體識別(NER)。

NER介紹

命名實體識別(NER)是NLP中最常見的任務之一,可以將其表述為:

給定一個標記序列(單詞和可能的標點符號),為序列中的每個標記提供一個來自預定義標記集的標記。

下圖標示句是NER在演示中的輸出,其中藍色代表人物標籤,綠色代表位置,黃色代表地理位置,灰色代表日期時間。

Deeppavlov ner模型支持19個標籤:org(組織)、gpe(國家、城市、州)、loc(位置)、事件(命名為颶風、戰鬥、戰爭、體育活動)、日期、基數、金額、人物等。Deeppavlov的NER模型在命令行中處理的語句如下所示。

>> Amtech , which also provides technical temporary employment services to aerospace , defense , computer and high - tech companies in the Southwest and Baltimore - Washington areas , said its final audited results are due in late November .

['B-ORG', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'B-LOC', 'O', 'B-GPE', 'O', 'B-GPE', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'B-DATE', 'I-DATE', 'O']

>> Amtech還為西南部和華盛頓巴爾的摩地區的航空航天、國防、計算機和高科技公司提供臨時技術就業服務,該公司表示,其最終審計結果將於11月底公布。

BIO標記方案用於區分具有相同標記的相鄰實體,其中「B」表示實體的開頭,「I」表示「中間」,它用於除第一個實體外的所有組成實體的單詞,「O」則表示不是實體。

NER有多種業務應用程式。例如,NER可通過從簡歷中提取重要信息來幫助人力資源部門簡歷的評估。此外,NER還可用於識別客戶請求中的相關實體——如產品規格、部門或公司分支機構的詳細信息,以便對請求進行相應分類並轉發給相關部門。

如何在Deeppavlov中使用基於Bert的NER模型

任何預處理的模型都可以通過命令行界面和Python進行推理。在使用模型之前,請確保使用以下命令安裝了所有必需的軟體包:

python -m deeppavlov install ner_ontonotes_bert_mult

python -m deeppavlov interact ner_ontonotes_bert_mult [-d]

其中ner_ontonotes_bert_mult表示配置文件的名稱。

可以通過Python代碼與模型進行交互。

from deeppavlov import configs, build_model

ner_model = build_model(configs.ner.ner_ontonotes_bert_mult, download=True)

ner_model(['World Curling Championship will be held in Antananarivo'])

此外,DeepPavlov包含一個基於RuBERT的處理俄語數據的模型。

總體而言,比起基於雙LSTM-通用報告格式的模型,基於BERT的模型有了實質性的改進。

通過下表可以看到基於英語和俄語的模型的性能。

多語種Zero-Shot轉移

多語言BERT模型支持執行從一種語言到另一種語言的零距離傳輸。

ner_ontonotes_bert_mult模型是在OntoNotes語料庫上訓練的,該語料庫在標記模式中有19種類型。

你可以在不同的語言上測試模型。

from deeppavlov import configs, build_model

ner_model = build_model(configs.ner.ner_ontonotes_bert_mult, download=True)

ner_model([

'Meteorologist Lachlan Stone said the snowfall in Queensland was an unusual occurrence '+

'in a state with a sub-tropical to tropical climate.',

'Церемония награждения пройдет 27 октября в развлекательном комплексе Hollywood and '+

'Highland Center в Лос-Анджелесе (штат Калифорния, США).',

'Das Orchester der Philharmonie Poznań widmet sich jetzt bereits zum zweiten '+

'Mal der Musik dieses aus Deutschland vertriebenen Komponisten. Waghalter '+

'stammte aus einer jüdischen Warschauer Familie.'])

在俄語語料庫3上對模型性能進行了評價。以下是轉移的結果。

多語言模型在第3集俄語語料庫上的性能

如何為NER配置BERT

Config/fag文件夾下單獨配置文件對deeppavlov nlp 進行定義。配置文件由四個主要部分組成:dataset_reader、dataset_iterator、chainer和train。

所有基於BERT的模型的公共元素都是配置文件chainer部分中的BERT預處理器(對於NER,是bert_ner_preprocessor類)塊。未經加工的文本(即,「Alex goes to Atlanta」)應該傳遞給bert_ner_preprocessor,以便將記號化為子記號,用它們的索引編碼子記號,並創建記號和段掩碼。token參數本身包含一個句子標誌列表([' Alex ', ' goes ', ' to ', ' Atlanta ']), subword_token帶有特殊的標誌。([' [CLS], ' Alex ', ' goes ', ' to ', ' Atlanta ', ' [SEP]])。subword_tok_id包含令牌id,而subword_mask是一個列表,其中0表示特殊的令牌,1表示句子的令牌([0 1 1 1 1 1 0])。

{

"class_name": "bert_ner_preprocessor",

"vocab_file": "{BERT_PATH}/vocab.txt",

"do_lower_case": false,

"max_seq_length": 512,

"max_subword_length": 15,

"token_maksing_prob": 0.0,

"in": ["x"],

"out": ["x_tokens", "x_subword_tokens",

"x_subword_tok_ids", "pred_subword_mask"]

}

以上是本文想介紹的關於以多語種BERT模型為基礎的NER的全部內容。

留言 點讚 關注

我們一起分享AI學習與發展的乾貨

歡迎關注全平臺AI垂類自媒體 「讀芯術」

相關焦點

  • 開啟NLP新時代的BERT模型,是怎麼一步步封神的?
    不僅號稱谷歌最強NLP模型的BERT如約開源了,而且最新版本還支持中文,可以用於中文命名實體識別的Tensorflow代碼!最關鍵的是,這個強大的模型還橫掃11項記錄,"閱讀理解超過人類"。谷歌團隊的Thang Luong更直接宣告:BERT模型開啟了NLP的新時代。「BERT在手,天下我有」的既視感啊!
  • 谷歌再次發布BERT的多語言模型和中文模型
    谷歌再次發布BERT的多語言模型和中文模型 李倩 發表於 2018-11-08 09:50:19 今天,在開源最強NLP模型BERT的TensorFlow代碼和預訓練模型的基礎上,谷歌AI團隊再次發布一個多語言模型和一個中文模型
  • 2020自然語言處理 BERT 模型(上)
    BERT 主要應用於自然語言處理中的預訓練。這裡想說一件有趣的事,就是當下比較火的自然語言處理模型如 ElMo 和 BERT 都是動畫片芝麻街中角色。Bidirectional : 是雙向神經網絡,這個在學習 RNN 時候我們就了解到如何使用雙向
  • 圖解當前最強語言模型BERT:NLP是如何攻克遷移學習的?
    ULM-FiT 和 Cookie Monster 沒任何直接聯繫,但我想不到其它東西……這一領域最近的裡程碑是 BERT 的發布,人們將這一事件譽為 NLP 新時代的開端。BERT 這種模型打破了多項模型處理基於語言的任務的紀錄。
  • BERT詳解:開創性自然語言處理框架的全面指南
    然後幾天後,新一代前沿框架的出現,導致現有模型已經落後了。這不是一個假設。這就是自然語言處理領域工作者所面對的現實(和挑戰)!過去兩年取得的突破令人驚嘆,接連出現出現各種新框架,可能比目前掌握的框架還要好。谷歌BERT就是這樣一個自然語言處理框架。這可能是近幾年最有影響力的一次革新。可以毫不誇張地說,BERT已經對自然語言處理進行了顯著的變革。
  • 如何設置BERT模型不參與參數訓練
    如上題,BERT是一個功能非常強大的預訓練語言模型,被廣泛用於自然語言處理領域。實測表明,在BERT模型參與參數訓練情況下,佔用顯存非常大。如果我們只想通過BERT生成嵌入序列而不像BERT參與訓練,該怎麼辦呢?需要調整兩個地方:(1)在初始化BERT時,將is_training設置為False.
  • 橫掃各項NLP任務的BERT模型有了PyTorch實現
    新智元報導 來源:GitHub 作者:huggingface 編譯:肖琴 【新智元導讀】谷歌NLP模型的官方
  • 是什麼讓BERT與眾不同?如何使用BERT?
    如何使用BERT? 李倩 發表於 2018-11-08 15:46:03 缺少訓練數據是自然語言處理(Natural Language Processing, NLP)面臨的最大挑戰之一。
  • 是時候「拋棄」谷歌 BERT 模型了!新型預訓練語言模型問世
    作者 | XLNet Team譯者 | 孫薇責編 | Jane近日,XLNet 團隊發布了新型預訓練語言模型 XLNet,這個新模型在各項基準測試中都優於谷歌之前發布的BERT模型,其中模型 XLNet-Large 的數據量更是 BERT 模型的 10 倍左右。那 XLnet 和 BERT 到底要選誰?
  • 新冠疫情醫療問答-基於對抗訓練的BERT多模型融合相似問匹配算法
    這項比賽發布的是新冠疫情相似句對判定任務。比賽整理近萬條真實語境下疫情相關的患者提問句對,要求選手通過自然語言處理技術識別相似的患者問題。本著寧缺毋濫的原則,問題的場地限制在20字以內,形成相對規範的句對。要求選手通過自然語義算法和醫學知識識別相似問答和無關的問題。二、問題描述數據包括:脫敏之後的醫療問題數據對和標註數據。
  • 谷歌開源 BERT 模型原始碼
    模型以來,BERT 模型以其雙向、深層等特點,成功在 11 項 NLP 任務中取得 state of the art 的結果,贏得自然語言處理學界的一片讚譽之聲。BERT 項目地址:https://github.com/google-research/bert#fine-tuning-with-bertBERT 項目論文:https://arxiv.org/abs/1810.04805什麼是 Bert ?
  • 從ULMFiT、BERT等經典模型看NLP 發展趨勢
    3、BERTGitHub 項目地址:https://github.com/google-research/bertBERT預訓練模型論文https://www.paperswithcode.com/paper/bert-pre-training-of-deep-bidirectional#code其他研究論文
  • 華為雲摘得NLPCC 輕量級預訓練中文語言模型測評桂冠
    NLPCC 2020吸引了康奈爾大學、倫敦大學、普林斯頓大學等海內外近600位自然語言處理領域的專家及學者參加大會,其中400餘位專家學者在現場共同見證開放評測任務第一名的誕生。當下,預訓練語言模型已經成為NLP的主流方法,在多項NLP任務上都取得了明顯的效果提升。但是預訓練語言模型往往比較大,限制了預訓練語言模型的應用場景。因此,如何構建輕量級的預訓練語言模型就成了一個關鍵問題。
  • 谷歌最強NLP模型BERT,為何炫酷又強大?騰訊程式設計師給你從頭講起
    雖然知道了 bert能解決這個問題,我們更好奇的是"Ϊʲô":為什麼 bert 的表現能這麼好?這裡面有沒有可解釋的部分呢?因為 Multi-head-attention 是 bert 的主要組成部分,所以我們從"頭"入手,希望弄清楚各個 head 對 bert 模型有什麼作用。為了研究某個 head 對模型的影響,我們需要比較有這個 head 和沒有這個 head 模型的前後表現。
  • 萬字詳文:超越 BERT 模型的 ELECTRA 代碼解讀
    這個轉換可以帶來效率的提升,對所有位置的詞進行預測,收斂速度會快的多,損失函數是利用生成器部分的損失和判別器的損失函數以一個比例數(官方代碼是 50)相加。model/modeling.py:該文件主要是 bert 模型的實現邏輯以及 bert 模型的配置讀取代碼,在 ELECTRA 模型的預訓練階段生成和判別階段做調用,另外在做各種 finetuneing 任務會調用。
  • 教你用BERT進行多標籤文本分類
    大數據文摘出品來源:medium編譯:李雷、睡不著的iris、Aileen過去的一年,深度神經網絡的應用開啟了自然語言處理的新時代。預訓練模型在研究領域的應用已經令許多NLP項目的最新成果產生了巨大的飛躍,例如文本分類,自然語言推理和問答。
  • 大神教程乾貨:使用BERT的多類別情感分析!(附代碼)
    使用BERT輕鬆快速地實現針對Yelp評論的多類別文本情感分析。在本文中,我們將使用BERT在Yelp評論上開發多類文本分類。BERT概述BERT是用於通用「語言理解」 的深度雙向表示模型,可從左至右和從右至左學習信息。
  • 流水的NLP鐵打的NER:命名實體識別實踐與探索
    LSTM-CRF,鐵打不動的模型,沒得挑也不用挑,用就完事了,不用就是不給面子雖然之前也做過 NER,但是想細緻地捋一下,看一下自從有了 LSTM-CRF 之後,NER 在做些什麼,順便記錄一下最近的工作,中間有些經驗和想法,有什麼就記點什麼因為能力有限,還是跟之前一樣,就少講理論少放公式,多畫模型圖多放代碼,還是主要從工程實現角度記錄和分享下經驗,也記錄一些個人探索過程
  • 【NLP】從Transformer到BERT模型
    如何把BERT模型應用在實際項目中如何對BERT減肥BERT存在的問題1.MLM並不是嚴格意義上的語言模型,因為整個訓練過程並不是利用語言模型方式來訓練的。BERT隨機把一些單詞通過MASK標籤來代替,並接著去預測被MASK的這個單詞,過程其實就是DAE的過程。 BERT有兩種主要訓練好的模型,分別是BERT-Small和BERT-Large, 其中BERT-Large使用了12層的Encoder結構。整個的模型具有非常多的參數。
  • 中文最佳,哈工大訊飛聯合發布全詞覆蓋中文BERT預訓練模型
    而在中文領域,哈工大訊飛聯合實驗室也於昨日發布了基於全詞覆蓋的中文 BERT 預訓練模型,在多個中文數據集上取得了當前中文預訓練模型的最佳水平,效果甚至超過了原版 BERT、ERINE 等中文預訓練模型。基於 Transformers 的雙向編碼表示(BERT)在多個自然語言處理任務中取得了廣泛的性能提升。