斯坦福開源頂級Python NLP庫:支持66種語言,NER提升顯著

開源自然語言處理(NLP)工具包的出現推動了研究人類語言的計算方法的快速發展。


然而現有的NLP工具包,例如CoreNLP 、Flair、spaCy 和UDPipe等本身都存在一些缺陷:


首先,現有工具包通常僅支持幾種主要語言。這極大地限制了處理多語言文本的能力;


其次,廣泛使用的工具有時會針對準確性進行優化,可能會誤導下游應用程序;


第三,他們有時會假設輸入文本已使用其他工具進行了標記或註釋,但缺乏使用統一框架處理原始文本的能力。這限制了它們對來自不同來源的文本的廣泛適用性;


針對以上缺點,斯坦福的研究人員開源了最新的NLP庫:Stanza。


Stanza是Python自然語言分析軟件包,它包含可以在 pipeline中使用的工具,

可以將包含人類語言文本的字符串轉換為句子和單詞列表,生成這些單詞的基本形式,它們的詞性和詞法特徵,給予句法結構依賴性解析,並識別命名實體。該工具包被設計為使用“通用依賴”關係在70多種語言之間並行。


Stanza由高度精確的神經網絡組件構建而成,這些組件也可以使用您自己的註釋數據進行有效的訓練和評估。這些模塊建立在PyTorch庫之上。如果在支持GPU的計算機上運行此係統,將會獲得更快的性能。


另外,Stanza包括一個CoreNLP Java包的Python接口,該接口進一步擴展了其功能,以涵蓋其他任務,例如共指解析和關係提取。


概括起來,Stanza具有以下特點:


  • 原生Python實現,只需花費很少的精力即可完成設置;
  • 完整的神經網絡pipeline,可進行強大的文本分析,包括標記化,多詞標記(MWT)擴展,詞形化,詞性(POS)和詞法特徵標記,依賴項解析以及命名實體識別;
  • 支持66種(人類)語言的預訓練神經模型;
  • 一個穩定的,官方維護的CoreNLP Python接口。


性能方面,研究人員在總共112個數據集上訓練了Stanza,其中包括Universal Dependencies樹庫和其他多語種語料庫,並顯示出相同的神經體系結構可以很好地泛化並在所有測試的語言上實現較好性能。


斯坦福開源頂級Python NLP庫:支持66種語言,NER提升顯著

Stanza與其他流行的自然語言處理工具包的功能比較。


此外,為了提高NER組件的性能,研究人員將Stanza與Flair和spaCy進行了比較。


對於spaCy,只要找到在同一數據集上訓練過的模型,研究人員就會報告其公開可用的預訓練模型的結果,否則,他們們將使用默認的超參數在其數據集上對其模型進行訓練。


對於Flair來說,由於其可下載模型在與規範模型不同的數據集版本上進行了預訓練,因此研究人員使用自己報告的最佳超參數對我們自己的數據集拆分中的所有模型進行了再訓練。所有測試結果如下表:


斯坦福開源頂級Python NLP庫:支持66種語言,NER提升顯著

跨不同語言和語料庫的NER性能比較,報告的所有分數均為微平均測驗F1。


Github上目前提供了用於66種語言的源代碼,文檔和經過預訓練的模型:

https://stanfordnlp.github.io/stanza/


https://www.arxiv-vanity.com/papers/2003.07082/


分享到:


相關文章: