赛尔原创 | N-LTP:基于预训练模型的中文自然语言处理平台
論文名稱:N-LTP: A Open-source Neural Chinese Language Technology Platform with Pretrained Models
論文作者:車萬翔,馮云龍,覃立波,劉挺
原創作者:馮云龍
論文鏈接:https://arxiv.org/abs/2009.11616
轉載須標注出處:哈工大SCIR
背景
現有種類繁多的自然語言處理(NLP)工具包,例如CoreNLP [1],UDPipe [2],FLAIR [3],spaCy 和Stanza [4]的英文版,這使用戶可以更輕松地構建具有復雜語言處理能力的工具。最近,在許多下游應用中對中文NLP的需求急劇增加。中文NLP平臺通常包括詞法分析(中文分詞(CWS),詞性(POS)標記和命名實體識別(NER)),語法分析(依賴項解析(DEP))和語義分析(語義依賴解析(SDP)和語義角色標記(SRL))。不過用于中文NLP任務的高性能和高效率工具包相對較少。
介紹
基于以上背景,我們搭建了N-LTP,這是一個基于PyTorch的中文自然語言處理的神經自然語言處理工具包,它是基于SOTA預訓練模型構建的。
如圖1所示,在輸入中文語料庫的情況下,N-LTP產生了相對豐富和快速的分析結果,包括詞法分析,句法分析和語義分析等。此外,N-LTP還提供了易于使用的API和可視化工具。
圖1? N-LTP模型概覽
與現有的廣泛使用的NLP工具包相比,N-LTP具有以下優點:
豐富的中文基礎NLP任務:N-LTP支持豐富的中文基礎NLP任務,包括詞法分析(分詞,詞性標記,命名實體識別和語義角色標記),語法解析和語義解析(語義依賴解析)。
多任務學習:現有的中文NLP工具包均針對每個任務采用獨立的模型,從而忽略了各個任務之間的共享知識。為了緩解這個問題,我們建議使用多任務框架 [8] 來利用所有任務之間的共享知識。同時,針對所有六個任務使用共享編碼器進行的多任務學習可以大大減少占用的內存并提高速度,從而使N-LTP更加高效,從而減少了對硬件的需求。
可擴展性:N-LTP與用戶的自定義模塊一起使用。用戶可以輕松地通過配置文件添加新的預訓練模型,通過更改配置,用戶可以輕松地將預訓練模型更改為變壓器支持的任何類似BERT的模型 [9]。我們已經使所有任務訓練配置文件開源。
易于使用的API和可視化工具:N-LTP提供了基本API的集合,這使用戶無需任何知識即可方便地使用該工具包。我們還提供了可視化工具,使用戶可以直接查看處理結果。此外,N-LTP具有許多編程語言可用的綁定,比如C++,Python,Java和Rust等。
最先進的性能:我們對一共六項中文NLP任務進行了評估,發現它在每項任務上均達到了最先進的水平或具有競爭力的表現。
使用方法
安裝方法
$?pip?install?ltp快速使用
Python
from?ltp?import?LTPltp?=?LTP()??#?默認加載?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)其他語言綁定等
//?RUST?語言 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(()) }多任務模型
共享編碼器
為了提取所有中文相關任務的共享知識,我們采用了多任務框架,其中六個中文任務共享一個編碼器。在我們的框架中,我們采用SOTA預訓練模型(ELECTRA [5])作為編碼器。
給定輸入序列 = (),我們首先通過添加特定標記 = ()構造輸入序列),其中是表示整個序列的特殊符號,是用于分隔非連續令牌序列的特殊符號(Devlin et al。,2019)。ELECTRA接受構造的輸入,并輸出序列 = (, , )的相應隱藏表示。
分詞
中文分詞(CWS)是中文自然語言處理(NLP)的首要任務。在N-LTP中,CWS被視為基于字符的序列標記問題。具體來說,給定隱層的表示形式 = (, , ),我們采用線性解碼器對每個字符進行分類:
其中,表示標簽概率分布每個字符;和是可訓練的參數。
詞性標注
詞性(POS)標記是另一個基本的NLP任務,它可以簡化諸如語法分析之類的下游任務。和分詞任務一樣,我們這里也是使用一個簡單地MLP來對每個詞語進行分類。
命名實體識別
命名實體識別(NER)是一項常見的自然語言處理任務,目的是在一個句子中查找一個實體(人員,位置,組織等)的起點和終點,并為此實體分配一個類別。
這里我們使用了 Adapted-Transformer[6] 來獲取方向和距離敏感的詞語表示,然后使用線性分類器對其進行分類:
其中 表示每個字符的NER標簽概率分布。
依存句法分析
依存關系分析是分析句子的語義結構的任務。在N-LTP中,我們使用 deep biaffine parser [10](Dozat and Manning,2017)和einser算法 [7](Eisner,1996)以獲取解析結果,其公式為:
上面的過程通過將1維向量 擴展為 維來對 進行評分,其中 為標簽的總數。
語義依存分析
與依存關系分析相似,語義依存分析[11]是捕獲句子語義結構的任務。具體來說,給定一個輸入語句,SDP的目的是確定所有彼此語義相關的詞對,并分配特定的預定義語義關系。
這里我們仍然使用 Biaffine 模型來對結果進行預測,不過之后我們使用
如果 我們則認為從 到 存在一個邊。
語義角色標注
語義角色標記(SRL)是確定句子的潛在謂語-參數結構的任務,它可以提供表示形式來回答有關句子含義的基本問題,包括誰對誰做了什么等。
這里我們使用 Biaffine 和 CRF 的解碼器相結合的方法構建了一個端到端的 SRL 模型。
其中 表示謂詞為 時的任意標簽序列,而 表示從 到 對于 的分數。
實驗結果
主實驗
表1展示了LTP和Stanza模型在LTP數據集上的結果。
表1 ?LTP 和 Stanza 在 LTP 數據集上的結果。
表2展示了LTP 和 Stanza 在 UD 和 Ontonotes 上的結果,這里報的是Stanza的官方結果,指標采用Stanza提供的評測腳本計算得出。
表2? LTP 和 Stanza 在 UD 和 Ontonotes 上的結果
由于Stanza并沒有使用BERT等預訓練模型,因此我們另外查找了一些使用預訓練模型的SOTA模型進行比較,基本上都取得了相對不錯的結果。
表3? LTP模型與不同任務上的SOTA預訓練模型進行比較
速度
另外,我們也對模型的速度進行了比較,從表4可以看到LTP在與Stanza同樣的任務量下 LTP/LTP速度是Stanza的4~6倍。另外,我們也制作了其他語言的 Binding。從表4可以看到,Rust版本相比較于Python版本快了大約兩倍左右。
表4? 模型速度的比較
總結
我們介紹了N-LTP,一個面向中文自然語言處理的工具包。我們在6個基本的中文NLP任務對N-LTP進行了評估,并獲得了最先進的或具有競爭力的性能,希望它能夠促進中文NLP的研究和應用。將來,我們將通過添加新的模型或者任務來繼續擴展N-LTP。
參考文獻
[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.
本期責任編輯:馮驍騁
本期編輯:鐘蔚弘
『哈工大SCIR』公眾號
主編:張偉男
副主編:丁效,劉銘,馮驍騁,趙森棟
執行編輯:杜佳琪
編輯:鐘蔚弘,彭湃,朱文軒,馮晨,牟虹霖,張馨,王若珂,高建男
長按下圖即可關注哈爾濱工業大學社會計算與信息檢索研究中心微信公眾號『哈工大SCIR』。
總結
以上是生活随笔為你收集整理的赛尔原创 | N-LTP:基于预训练模型的中文自然语言处理平台的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 还在随缘炼丹?一文带你详尽了解机器学习模
- 下一篇: 一份来自清华的数据分析笔记,请查收!