N-LTP:基于预训练模型的中文自然言语处理平台
作者头像
  • 骆霞
  • 2021-05-03 17:56:21 19

N-LTP:一个基于预训练模型的开源中文自然语言处理平台

随着自然语言处理(NLP)技术的发展,越来越多的工具包被开发出来,如CoreNLP、UDPipe、FLAIR、spaCy和Stanza等,这些工具包极大地促进了英语NLP任务的实现。然而,在中文NLP领域,高性能且高效的工具包仍然相对稀缺。针对这一需求,我们开发了N-LTP,这是一个基于PyTorch的中文自然语言处理工具包,它利用先进的预训练模型来提高性能。

1. 背景

目前,自然语言处理工具包主要集中在英文上,如CoreNLP、UDPipe、FLAIR、spaCy和Stanza等,这些工具包为开发者提供了便利,使得构建复杂的自然语言处理工具变得更为容易。然而,随着对中文NLP需求的增加,需要更多高质量的中文NLP工具包来支持各种下游应用。这些工具包通常包含词法分析(分词、词性标注、命名实体识别)、语法分析(依赖句法分析和语义分析)等功能。尽管如此,专门针对中文NLP的高性能工具包仍然不多。

2. 介绍

基于上述背景,我们设计了N-LTP,这是一个基于PyTorch的中文自然语言处理工具包,它利用最新的预训练模型来提升性能。N-LTP能够快速生成丰富的分析结果,包括词法分析、句法分析和语义分析等。此外,N-LTP提供了易于使用的API和可视化工具,使得用户可以更便捷地使用该工具包。

N-LTP相比现有的广泛使用的NLP工具包具有以下优势:

  • 丰富的中文基础NLP任务:N-LTP支持多种中文基础NLP任务,包括分词、词性标注、命名实体识别、语义角色标注、句法分析和语义分析。

  • 多任务学习:不同于传统的单任务模型,N-LTP采用多任务框架,共享编码器,从而更好地利用各任务间的共享知识,减少内存占用,提高速度。

  • 可扩展性:N-LTP允许用户通过配置文件添加新的预训练模型,使其更加灵活和可定制。

  • 易用性:N-LTP提供了简单的API和可视化工具,使得用户无需专业知识即可使用。它还支持多种编程语言,如C++、Python、Java和Rust等。

  • 最先进的性能:通过对六种中文NLP任务的评估,N-LTP在所有任务上都表现出色,达到了当前的最先进水平或具有竞争力的表现。

3. 使用方法

安装方法

bash pip install ltp

快速使用
Python

```python from ltp import LTP

ltp = 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

```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(()) } ```

4. 多任务模型

为了提取所有中文相关任务的共享知识,N-LTP采用了多任务框架,其中六个中文任务共享一个编码器。在我们的框架中,我们使用了最先进的预训练模型(ELECTRA)作为编码器。这种设计不仅提高了模型的效率,还增强了其性能。

5. 实验结果

通过一系列实验,我们验证了N-LTP在多个任务中的表现。实验结果显示,N-LTP在多项任务中均取得了优异的成绩,尤其是在速度方面,N-LTP比其他工具包快数倍。此外,我们还展示了N-LTP与其他常用工具包(如Stanza)在不同数据集上的对比结果。

6. 总结

N-LTP是一个面向中文自然语言处理的工具包,它在多种中文NLP任务中表现卓越。我们希望通过这个工具包促进中文NLP的研究和应用。未来,我们将继续扩展N-LTP的功能,以满足更多用户的需求。

    本文来源:图灵汇
责任编辑: : 骆霞
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
中文模型言语基于训练自然处理平台LTP
    下一篇