轻量级NLP工具开源,中文处理更精准,超越斯坦福Stanza
Trankit支持多达56种语言,除了简体和繁体中文以外,还支持文言文。最新轻量级多语言NLP工具集Trankit发布1.0版本,来自俄勒冈大学。
- 作者:梦晨来源:量子位|2021-04-02 15:02
本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。
最新轻量级多语言NLP工具集Trankit发布1.0版本,来自俄勒冈大学。
基于Transformer,性能已超越之前的热门同类项目斯坦福Stanza。
Trankit支持多达56种语言,除了简体和繁体中文以外,还支持文言文。
先来看一组Trankit与Stanza对文言文进行依存句法分析的结果。

可以看到,Stanza错误的将“有朋自远方来”中的“有”和“来”两个动词判断成并列关系。
在简体中文的词性标注任务上,Trankit对“自从”一词处理也更好。

与Stanza一样,Trankit也是基于Pytorch用原生Python实现,对广大Python用户非常友好。
Trankit在多语言NLP多项任务上的性能超越Stanza。

在英语分词上的得分比Stanza高9.36%。在中文依存句法分析的UAS和LAS指标上分别高出14.50%和15.0%。
Trankit在GPU加持下加速更多,且占用内存更小,作为一个轻量级NLP工具集更适合普通人使用。

简单易用
Trankit的使用也非常简单,安装只要pip install就完事了。
- pip install trankit
不过需要注意的是,Trankit使用了Tokenizer库,需要先安装Rust。
初始化一个预训练Pipeline:
- from trankit import Pipeline
- # initialize a multilingual pipeline
- p = Pipeline(lang='english', gpu=True, cache_dir='./cache')
开启auto模式,可以自动检测语言:
- from trankit import Pipeline
- p = Pipeline('auto')
- # Tokenizing an English input
- en_output = p.tokenize('''I figured I would put it out there anyways.''')
- # POS, Morphological tagging and Dependency parsing a French input
- fr_output = p.posdep('''On pourra toujours parler à propos d'Averroès de "décentrement du Sujet".''')
使用自定义标注数据自己训练Pipeline也很方便:
- from trankit import TPipeline
- tp = TPipeline(training_config={
- 'task': 'tokenize',
- 'save_dir': './saved_model',
- 'train_txt_fpath': './train.txt',
- 'train_conllu_fpath': './train.conllu',
- 'dev_txt_fpath': './dev.txt',
- 'dev_conllu_fpath': './dev.conllu'
- }
- )
- trainer.train()
统一的多语言Transformer
Trankit将各种语言分别训练的Pipelines整合到一起共享一个多语言预训练Transformer。

然后为每种语言创建了一组适配器(Adapters)作为传统的预训练模型“微调(Fine-tuning)”方法的替代,并对不同的NLP任务设置权重。
在训练中,共享的预训练Transformer是固定的,只有适配器和任务特定权重被更新。
在推理时,根据输入文本的语言和当前的活动组件,寻找相应的适配器和特定任务权重。
这种机制不仅解决了内存问题,还大大缩短了训练时间。
Trankit团队在实验中对比了另外两种实现方法。
一种是把所有语言的数据集中到一起训练一个巨大的Pipeline。另一种是使用Trankit的方法但把适配器去掉。

在各项NLP任务中,Trankit这种“即插即用”的适配器方法表现最好。
团队表示,未来计划通过研究不同的预训练Transformer(如mBERT和XLM-Robertalarge)来改进Trankit。
还考虑为更多语言提供实体识别,以及支持更多的NLP任务。
Github仓库:
https://github.com/nlp-uoregon/trankit
在线Demo:
http://nlp.uoregon.edu/trankit
相关论文:
https://arxiv.org/pdf/2101.03289.pdf
【编辑推荐】
点赞 0
- 大家都在看
- 猜你喜欢
编辑推荐
- 24H热文
- 一周话题
- 本月获赞
- 推荐 10 个标星 100 K 的 GitHub 开源项目博士生DIY超级显微镜,直接看到原子!网友:太极客了突发!美国再次瞄准中国超算,飞腾、申威等 7 大实体被列入管制清单CPU比GPU训练神经网络快十几倍,英特尔:别用矩阵运算了我们从2021谷歌I/O大会给的谜题中发现了隐藏信息“口罩厂”霍尼韦尔搞出的量子计算机,刚刚获得Nature认可谈谈为何会出现全球“缺芯”详解三大编译器:gcc、llvm 和 clang
- 将在2021年颠覆业务发展的十种技术详解三大编译器:gcc、llvm 和 clang不爱跳槽的程序员集中在8-17k,揭晓中国开发者的真实现状只要你一句话,马斯克就得留扫把头,项目已开源突发!美国再次瞄准中国超算,飞腾、申威等 7 大实体被列入管制清单5个开源的Java项目快速开发脚手架,项目经验有了真香!微软出Go语言教程了(中文版)什么样的程序员,在35岁以后,依然被公司抢着要?
- 你的Windows10即将终止!各大版本服务终止日期大全将在2021年颠覆业务发展的十种技术真香!微软出Go语言教程了(中文版)详解三大编译器:gcc、llvm 和 clang92年百度程序员被抓,给我们警示什么?GitHub 访问不了?用这个方法轻松解决5个开源的Java项目快速开发脚手架,项目经验有了2021年中国程序员薪资和生活现状调查报告
订阅专栏+更多
-
数据湖与数据仓库的分析实践攻略
助力现代化数据管理:数据湖与数据仓库的分析实践攻略共3章 | 创世达人7人订阅学习
-
云原生架构实践
新技术引领移动互联网进入急速赛道共3章 | KaliArch36人订阅学习
-
数据中心和VPDN网络建设案例
漫画+案例共20章 | 捷哥CCIE230人订阅学习
视频课程+更多
-
MySQL5.7 高级性能优化
讲师:白丁20142人学习过
-
大数据运维架构师培训(5):大数据管理平台
讲师:风哥270人学习过
-
Azure微软云计算基础架构服务 - 部署管理实战
讲师:杰森洋17990人学习过
专题推荐+更多
-
订阅51CTO邮刊
点击这里查看样刊

51CTO服务号

51CTO官微