项目介绍:Trankit
Trankit是一个轻量级的基于Transformer的Python工具包,专注于多语言自然语言处理(NLP)。它为多语言的基本NLP任务提供可训练的数据流线,以及用于56种语言的90个预训练管道。
主要功能
多语言管道
Trankit能处理超过100种语言中的文本,其新版本v1.0.0增加了90个新的预训练管道,对56种语言的性能显著提升。这些管道采用了XLM-Roberta大模型进行训练,极大地提升了在7大系语言中的自然语言处理能力。
自动模式
Trankit的新版本中引入了自动模式功能。该模式能够自动检测输入语言,无需用户手动指定语言类型,使多语言管道的操作更加方便。
命令行界面
Trankit还提供了一个命令行界面,特别适合那些对Python编程不熟悉的用户,令他们也能轻松使用Trankit。
性能优势
Trankit在多个任务上都超越了当前的多语言工具集Stanza(StanfordNLP)。它在内存使用和速度方面表现优异,适合一般用户使用。特别是在英语的句子分割和依存解析任务中表现卓越,同时在阿拉伯语和中文的相应任务上也有显著提高。
安装指导
用户可以通过pip简单地安装Trankit:
pip install trankit
或通过从源代码安装:
git clone https://github.com/nlp-uoregon/trankit.git
cd trankit
pip install -e .
使用示例
Trankit支持多项任务,包括句子分割、标记化、多词表达式扩展、词性标注、形态特征标注、依存解析、命名实体识别等。 以下是初始化预训练管道并在输入上执行所有任务的示例代码:
from trankit import Pipeline
p = Pipeline(lang='english', gpu=True, cache_dir='./cache')
# 处理未标记化文档
untokenized_doc = '''Hello! This is Trankit.'''
processed_doc1 = p(untokenized_doc)
# 处理预标记化文档
pretokenized_doc = [['Hello', '!'], ['This', 'is', 'Trankit', '.']]
processed_doc2 = p(pretokenized_doc)
多语言使用
Trankit的Auto Mode允许用户在不激活特定语言的情况下处理各种输入。该模式下,Trankit会自动检测输入语言并使用对应的模型。
from trankit import Pipeline
p = Pipeline('auto')
# 处理英语输入
en_output = p.tokenize('I figured I would put it out there anyways.')
# 处理法语输入
fr_output = p.posdep('On pourra toujours parler à propos d\'Averroès de "décentrement du Sujet".')
# 处理越南语输入
vi_output = p.ner('Cuộc tiêm thử nghiệm tiến hành tại Học viện Quân y, Hà Nội')
自定义管道
用户可以使用类TPipeline
轻松训练自定义管道,通过训练配置文件指定任务、数据路径等参数。
致谢
Trankit项目受到了多个研究项目的支持,并集成了多种先进的技术和工具,为多语言自然语言处理提供了一个强大和高效的解决方案。