语言技术平台(LTP)推出 v4.2 版本!
语言技术平台(http://ltp.ai/)(Language Technology Platform, LTP)是哈工大社会计算与信息检索研究中心(HIT-SCIR)历时多年研发的一整套高效、高精度的中文自然语言处理开源基础技术平台。该平台集词法分析(分词、词性标注、命名实体识别)、句法分析(依存句法分析)和语义分析(语义角色标注、语义依存分析)等多项自然语言处理技术于一体。其中句法分析、语义分析等多项关键技术多次在CoNLL国际评测中获得了第1名。此外,平台还荣获了2010年中国中文信息学会科学技术一等奖、2016年黑龙江省科技进步一等奖。国内外众多研究单位和知名企业通过签署协议以及收费授权的方式使用该平台。
应广大用户对于推理速度的需求,哈工大SCIR博士生冯云龙同学在车万翔教授指导下,于近日对LTP进行了新一轮的升级,此次升级主要提升了分词等常用任务的推理速度、增加了平台的易用性等。LTP 4.2 (https://github.com/HIT-SCIR/ltp)更新内容如下:
[结构性变化] 将 LTP 拆分成 2 个部分,维护和训练更方便,结构更清晰
[Legacy 模型] 针对广大用户对于推理速度的需求,使用 Rust 重写了基于感知机的算法,准确率与 LTP v3 版本相当,速度则是 LTP v3 的 3.55 倍,开启多线程更可获得 17.17 倍的速度提升,但目前仅支持分词、词性、命名实体三大任务
[深度学习模型] 即基于 PyTorch 实现的深度学习模型,支持全部的6大任务(分词/词性/命名实体/语义角色/依存句法/语义依存)
[其他改进] 改进了模型训练方法
[共同] 提供了训练脚本和训练样例,使得用户能够更方便地使用私有的数据,自行训练个性化的模型
[深度学习模型] 采用 hydra 对训练过程进行配置,方便广大用户修改模型训练参数以及对 LTP 进行扩展(比如使用其他包中的 Module)
[其他变化] 分词、依存句法分析 (Eisner) 和语义依存分析 (Eisner) 任务的解码算法使用 Rust 实现,速度更快
[新特性] 模型上传至 Huggingface Hub(https://huggingface.co/LTP),支持自动下载,下载速度更快,并且支持用户自行上传自己训练的模型供LTP进行推理使用
[破坏性变更] 改用 Pipeline API 进行推理,方便后续进行更深入的性能优化(如SDP和SDPG很大一部分是重叠的,重用可以加快推理速度),使用说明参见Github快速使用部分(https://github.com/hit-scir/ltp)
性能测试
分词
选择 Jieba 分词、Pkuseg、Thulac等代表分词软件与 LTP 做性能比较。选择 MacOS 作为测试环境,根据第二届国际汉语分词测评发布的国际中文分词测评标准,对不同软件进行了速度和准确率测试。
在第二届国际汉语分词测评(http://sighan.cs.uchicago.edu/bakeoff2005/)中,共有四家单位提供的测试语料(Academia Sinica、 City University 、Peking University (PKU) 、Microsoft Research (MSR) ), 在评测提供的资源 icwb2-data 中包含了来自这四家单位的训练集(icwb2-data/training)、测试集(icwb2-data/testing), 以及根据各自分词标准而提供的相应测试集的标准答案(icwb2-data/gold)。在 icwb2-data/scripts 目录下含有对分词进行自动评分的脚本。
在统一测试环境下,对若干分词软件和 LTP 进行了测试,使用的模型为各分词软件自带模型。在 PKU 和 MSR 测试集评测结果如下:
分词工具 | Speed (KB/s) | PKU (F1) | MSR (F1) |
Jieba | 982.49 | 81.8 | 81.3 |
Pkuseg | 109.72 | 93.4 | 87.3 |
Thulac | 48.13 | 94.0 | 87.9 |
Thulac[Fast] | 1133.21 | 同上 | 同上 |
LTP 3(pyltp) | 451.20 | 95.3 | 88.3 |
LTP legacy(1) | 1603.63 | 95.2 | 87.7 |
LTP legacy(2) | 2869.42 | 同上 | 同上 |
LTP legacy(4) | 4949.38 | 同上 | 同上 |
LTP legacy(8) | 6803.88 | 同上 | 同上 |
LTP legacy(16) | 7745.16 | 同上 | 同上 |
注1:括号内为线程数量
注2:Jieba 分词的词表是在人民日报数据集上统计的
流水线
除了分词以外,还测试了 LTP 三个任务(分词、词性标注、命名实体识别)流水线的速度:
工具 | Speed (KB/s) |
LTP 3(pyltp) | 153.10 |
LTP legacy(1) | 508.74 |
LTP legacy(2) | 899.25 |
LTP legacy(4) | 1598.03 |
LTP legacy(8) | 2267.48 |
LTP legacy(16) | 2452.34 |
注:括号内为线程数量
测试环境如下:
Python 3.10
MacBook Pro (16-inch, 2019)
处理器: 2.6 GHz 六核Intel Core i7
内存: 16 GB 2667 MHz DDR4
注:速度数据在人民日报命名实体测试数据上获得,速度计算方式均为所有任务顺序执行的结果。
欢迎访问http://ltp.ai/(点击文末“阅读原文”进行跳转),获取平台的源代码、模型及更详细的介绍信息,敬请提出反馈意见。
扫描二维码添加小助手微信
关于我们
微信扫码关注该文公众号作者