赛尔原创 | N-LTP:基于预训练模型的中文自然语言处理平台
論文名稱:N-LTP: A Open-source Neural Chinese Language Technology Platform with Pretrained Models
論文作者:車萬(wàn)翔,馮云龍,覃立波,劉挺
原創(chuàng)作者:馮云龍
論文鏈接:https://arxiv.org/abs/2009.11616
轉(zhuǎn)載須標(biāo)注出處:哈工大SCIR
背景
現(xiàn)有種類繁多的自然語(yǔ)言處理(NLP)工具包,例如CoreNLP [1],UDPipe [2],FLAIR [3],spaCy 和Stanza [4]的英文版,這使用戶可以更輕松地構(gòu)建具有復(fù)雜語(yǔ)言處理能力的工具。最近,在許多下游應(yīng)用中對(duì)中文NLP的需求急劇增加。中文NLP平臺(tái)通常包括詞法分析(中文分詞(CWS),詞性(POS)標(biāo)記和命名實(shí)體識(shí)別(NER)),語(yǔ)法分析(依賴項(xiàng)解析(DEP))和語(yǔ)義分析(語(yǔ)義依賴解析(SDP)和語(yǔ)義角色標(biāo)記(SRL))。不過(guò)用于中文NLP任務(wù)的高性能和高效率工具包相對(duì)較少。
介紹
基于以上背景,我們搭建了N-LTP,這是一個(gè)基于PyTorch的中文自然語(yǔ)言處理的神經(jīng)自然語(yǔ)言處理工具包,它是基于SOTA預(yù)訓(xùn)練模型構(gòu)建的。
如圖1所示,在輸入中文語(yǔ)料庫(kù)的情況下,N-LTP產(chǎn)生了相對(duì)豐富和快速的分析結(jié)果,包括詞法分析,句法分析和語(yǔ)義分析等。此外,N-LTP還提供了易于使用的API和可視化工具。
圖1? N-LTP模型概覽
與現(xiàn)有的廣泛使用的NLP工具包相比,N-LTP具有以下優(yōu)點(diǎn):
豐富的中文基礎(chǔ)NLP任務(wù):N-LTP支持豐富的中文基礎(chǔ)NLP任務(wù),包括詞法分析(分詞,詞性標(biāo)記,命名實(shí)體識(shí)別和語(yǔ)義角色標(biāo)記),語(yǔ)法解析和語(yǔ)義解析(語(yǔ)義依賴解析)。
多任務(wù)學(xué)習(xí):現(xiàn)有的中文NLP工具包均針對(duì)每個(gè)任務(wù)采用獨(dú)立的模型,從而忽略了各個(gè)任務(wù)之間的共享知識(shí)。為了緩解這個(gè)問(wèn)題,我們建議使用多任務(wù)框架 [8] 來(lái)利用所有任務(wù)之間的共享知識(shí)。同時(shí),針對(duì)所有六個(gè)任務(wù)使用共享編碼器進(jìn)行的多任務(wù)學(xué)習(xí)可以大大減少占用的內(nèi)存并提高速度,從而使N-LTP更加高效,從而減少了對(duì)硬件的需求。
可擴(kuò)展性:N-LTP與用戶的自定義模塊一起使用。用戶可以輕松地通過(guò)配置文件添加新的預(yù)訓(xùn)練模型,通過(guò)更改配置,用戶可以輕松地將預(yù)訓(xùn)練模型更改為變壓器支持的任何類似BERT的模型 [9]。我們已經(jīng)使所有任務(wù)訓(xùn)練配置文件開源。
易于使用的API和可視化工具:N-LTP提供了基本API的集合,這使用戶無(wú)需任何知識(shí)即可方便地使用該工具包。我們還提供了可視化工具,使用戶可以直接查看處理結(jié)果。此外,N-LTP具有許多編程語(yǔ)言可用的綁定,比如C++,Python,Java和Rust等。
最先進(jìn)的性能:我們對(duì)一共六項(xiàng)中文NLP任務(wù)進(jìn)行了評(píng)估,發(fā)現(xiàn)它在每項(xiàng)任務(wù)上均達(dá)到了最先進(jìn)的水平或具有競(jìng)爭(zhēng)力的表現(xiàn)。
使用方法
安裝方法
$?pip?install?ltp快速使用
Python
from?ltp?import?LTPltp?=?LTP()??#?默認(rèn)加載?Small?模型 seg,?hidden?=?ltp.seg(["他叫湯姆去拿外衣。"]) pos?=?ltp.pos(hidden) ner?=?ltp.ner(hidden) srl?=?ltp.srl(hidden) dep?=?ltp.dep(hidden) sdp?=?ltp.sdp(hidden)其他語(yǔ)言綁定等
//?RUST?語(yǔ)言 use?ltp_rs::{LTPError,?LTP};fn?main()?->?Result<(),?LTPError>?{let?mut?ltp?=?LTP::new("path/to/model",?16)?;let?sentences?=?vec![String::from("他叫湯姆去拿外衣。")];let?result?=?ltp.pipeline_batch(&sentences)?;println!("{:?}",?result);Ok(()) }多任務(wù)模型
共享編碼器
為了提取所有中文相關(guān)任務(wù)的共享知識(shí),我們采用了多任務(wù)框架,其中六個(gè)中文任務(wù)共享一個(gè)編碼器。在我們的框架中,我們采用SOTA預(yù)訓(xùn)練模型(ELECTRA [5])作為編碼器。
給定輸入序列 = (),我們首先通過(guò)添加特定標(biāo)記 = ()構(gòu)造輸入序列),其中是表示整個(gè)序列的特殊符號(hào),是用于分隔非連續(xù)令牌序列的特殊符號(hào)(Devlin et al。,2019)。ELECTRA接受構(gòu)造的輸入,并輸出序列 = (, , )的相應(yīng)隱藏表示。
分詞
中文分詞(CWS)是中文自然語(yǔ)言處理(NLP)的首要任務(wù)。在N-LTP中,CWS被視為基于字符的序列標(biāo)記問(wèn)題。具體來(lái)說(shuō),給定隱層的表示形式 = (, , ),我們采用線性解碼器對(duì)每個(gè)字符進(jìn)行分類:
其中,表示標(biāo)簽概率分布每個(gè)字符;和是可訓(xùn)練的參數(shù)。
詞性標(biāo)注
詞性(POS)標(biāo)記是另一個(gè)基本的NLP任務(wù),它可以簡(jiǎn)化諸如語(yǔ)法分析之類的下游任務(wù)。和分詞任務(wù)一樣,我們這里也是使用一個(gè)簡(jiǎn)單地MLP來(lái)對(duì)每個(gè)詞語(yǔ)進(jìn)行分類。
命名實(shí)體識(shí)別
命名實(shí)體識(shí)別(NER)是一項(xiàng)常見的自然語(yǔ)言處理任務(wù),目的是在一個(gè)句子中查找一個(gè)實(shí)體(人員,位置,組織等)的起點(diǎn)和終點(diǎn),并為此實(shí)體分配一個(gè)類別。
這里我們使用了 Adapted-Transformer[6] 來(lái)獲取方向和距離敏感的詞語(yǔ)表示,然后使用線性分類器對(duì)其進(jìn)行分類:
其中 表示每個(gè)字符的NER標(biāo)簽概率分布。
依存句法分析
依存關(guān)系分析是分析句子的語(yǔ)義結(jié)構(gòu)的任務(wù)。在N-LTP中,我們使用 deep biaffine parser [10](Dozat and Manning,2017)和einser算法 [7](Eisner,1996)以獲取解析結(jié)果,其公式為:
上面的過(guò)程通過(guò)將1維向量 擴(kuò)展為 維來(lái)對(duì) 進(jìn)行評(píng)分,其中 為標(biāo)簽的總數(shù)。
語(yǔ)義依存分析
與依存關(guān)系分析相似,語(yǔ)義依存分析[11]是捕獲句子語(yǔ)義結(jié)構(gòu)的任務(wù)。具體來(lái)說(shuō),給定一個(gè)輸入語(yǔ)句,SDP的目的是確定所有彼此語(yǔ)義相關(guān)的詞對(duì),并分配特定的預(yù)定義語(yǔ)義關(guān)系。
這里我們?nèi)匀皇褂?Biaffine 模型來(lái)對(duì)結(jié)果進(jìn)行預(yù)測(cè),不過(guò)之后我們使用
如果 我們則認(rèn)為從 到 存在一個(gè)邊。
語(yǔ)義角色標(biāo)注
語(yǔ)義角色標(biāo)記(SRL)是確定句子的潛在謂語(yǔ)-參數(shù)結(jié)構(gòu)的任務(wù),它可以提供表示形式來(lái)回答有關(guān)句子含義的基本問(wèn)題,包括誰(shuí)對(duì)誰(shuí)做了什么等。
這里我們使用 Biaffine 和 CRF 的解碼器相結(jié)合的方法構(gòu)建了一個(gè)端到端的 SRL 模型。
其中 表示謂詞為 時(shí)的任意標(biāo)簽序列,而 表示從 到 對(duì)于 的分?jǐn)?shù)。
實(shí)驗(yàn)結(jié)果
主實(shí)驗(yàn)
表1展示了LTP和Stanza模型在LTP數(shù)據(jù)集上的結(jié)果。
表1 ?LTP 和 Stanza 在 LTP 數(shù)據(jù)集上的結(jié)果。
表2展示了LTP 和 Stanza 在 UD 和 Ontonotes 上的結(jié)果,這里報(bào)的是Stanza的官方結(jié)果,指標(biāo)采用Stanza提供的評(píng)測(cè)腳本計(jì)算得出。
表2? LTP 和 Stanza 在 UD 和 Ontonotes 上的結(jié)果
由于Stanza并沒(méi)有使用BERT等預(yù)訓(xùn)練模型,因此我們另外查找了一些使用預(yù)訓(xùn)練模型的SOTA模型進(jìn)行比較,基本上都取得了相對(duì)不錯(cuò)的結(jié)果。
表3? LTP模型與不同任務(wù)上的SOTA預(yù)訓(xùn)練模型進(jìn)行比較
速度
另外,我們也對(duì)模型的速度進(jìn)行了比較,從表4可以看到LTP在與Stanza同樣的任務(wù)量下 LTP/LTP速度是Stanza的4~6倍。另外,我們也制作了其他語(yǔ)言的 Binding。從表4可以看到,Rust版本相比較于Python版本快了大約兩倍左右。
表4? 模型速度的比較
總結(jié)
我們介紹了N-LTP,一個(gè)面向中文自然語(yǔ)言處理的工具包。我們?cè)?個(gè)基本的中文NLP任務(wù)對(duì)N-LTP進(jìn)行了評(píng)估,并獲得了最先進(jìn)的或具有競(jìng)爭(zhēng)力的性能,希望它能夠促進(jìn)中文NLP的研究和應(yīng)用。將來(lái),我們將通過(guò)添加新的模型或者任務(wù)來(lái)繼續(xù)擴(kuò)展N-LTP。
參考文獻(xiàn)
[1]. Christopher Manning, Mihai Surdeanu, John Bauer, Jenny Finkel, Steven Bethard, and David McClosky. 2014. The Stanford CoreNLP natural language pro- cessing toolkit. In Proceedings of 52nd Annual Meeting of the Association for Computational Lin- guistics: System Demonstrations, pages 55–60, Bal- timore, Maryland. Association for Computational Linguistics.
[2]. Straka, Milan, and Jana Straková.?2017. Tokenizing, POS tagging, lemmatizing and parsing UD 2.0 with UDPipe. In Proceedings of the CoNLL 2017 Shared Task: Multilingual Parsing from Raw Text to Univer- sal Dependencies, pages 88–99, Vancouver, Canada. Association for Computational Linguistics.
[3]. Alan Akbik, Tanja Bergmann, Duncan Blythe, Kashif Rasul, Stefan Schweter, and Roland Vollgraf. 2019. FLAIR: An easy-to-use framework for state-of-the- art NLP. In Proceedings of the 2019 Confer- ence of the North American Chapter of the Asso- ciation for Computational Linguistics (Demonstra- tions), pages 54–59, Minneapolis, Minnesota. Asso- ciation for Computational Linguistics.
[4]. Peng Qi, Yuhao Zhang, Yuhui Zhang, Jason Bolton, and Christopher D. Manning. 2020. Stanza: A python natural language processing toolkit for many human languages. In Proceedings of the 58th An- nual Meeting of the Association for Computational Linguistics: System Demonstrations, pages 101– 108, Online. Association for Computational Linguistics.
[5]. Kevin Clark, Minh-Thang Luong, Quoc V. Le, and Christopher D. Manning. 2020. ELECTRA: pre-training text encoders as discriminators rather than generators. In 8th International Confer- ence on Learning Representations, ICLR 2020, Ad- dis Ababa, Ethiopia, April 26-30, 2020. OpenRe- view.net.
[6]. Hang Yan, Bocao Deng, Xiaonan Li, and Xipeng Qiu. 2019a. Tener: Adapting transformer encoder for named entity recognition.
[7]. Jason M. Eisner. 1996. Three new probabilistic models for dependency parsing: An exploration. In COL- ING 1996 Volume 1: The 16th International Confer- ence on Computational Linguistics.
[8]. Kevin Clark, Minh-Thang Luong, Urvashi Khandel- wal, Christopher D. Manning, and Quoc V. Le. 2019. BAM! born-again multi-task networks for natural language understanding. In Proceedings of the 57th Annual Meeting of the Association for Computa- tional Linguistics, pages 5931–5937, Florence, Italy. Association for Computational Linguistics.
[9]. Thomas Wolf, Lysandre Debut, Victor Sanh, Julien Chaumond, Clement Delangue, Anthony Moi, Pier- ric Cistac, Tim Rault, Re ?mi Louf, Morgan Funtow- icz, Joe Davison, Sam Shleifer, Patrick von Platen, Clara Ma, Yacine Jernite, Julien Plu, Canwen Xu, Teven Le Scao, Sylvain Gugger, Mariama Drame, Quentin Lhoest, and Alexander M. Rush. 2019. Huggingface’s transformers: State-of-the-art natural language processing. ArXiv, abs/1910.03771.
[10]. Timothy Dozat and Christopher D. Manning. 2017. Deep biaffine attention for neural dependency pars- ing. In 5th International Conference on Learning Representations, ICLR 2017, Toulon, France, April 24-26, 2017, Conference Track Proceedings. Open- Review.net.
[11]. Wanxiang Che, Meishan Zhang, Yanqiu Shao, and Ting Liu. 2012. SemEval-2012 task 5: Chinese semantic dependency parsing. In **SEM 2012: The First Joint Conference on Lexical and Computational Seman- tics – Volume 1: Proceedings of the main conference and the shared task, and Volume 2: Proceedings of the Sixth International Workshop on Semantic Eval- uation (SemEval 2012)*, pages 378–384, Montre ?al, Canada. Association for Computational Linguistics.
本期責(zé)任編輯:馮驍騁
本期編輯:鐘蔚弘
『哈工大SCIR』公眾號(hào)
主編:張偉男
副主編:丁效,劉銘,馮驍騁,趙森棟
執(zhí)行編輯:杜佳琪
編輯:鐘蔚弘,彭湃,朱文軒,馮晨,牟虹霖,張馨,王若珂,高建男
長(zhǎng)按下圖即可關(guān)注哈爾濱工業(yè)大學(xué)社會(huì)計(jì)算與信息檢索研究中心微信公眾號(hào)『哈工大SCIR』。
總結(jié)
以上是生活随笔為你收集整理的赛尔原创 | N-LTP:基于预训练模型的中文自然语言处理平台的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 还在随缘炼丹?一文带你详尽了解机器学习模
- 下一篇: 一份来自清华的数据分析笔记,请查收!