Skip to main content

Rust Extension For Language Technology Platform(Python).

Project description

Language version
Python LTP LTP-Core LTP-Extension
Rust LTP

LTP extension For Python

LTP for Rust 对 Python 的绑定,用于提升 LTP 的速度,以及加入传统机器学习算法实现的中文信息处理工具。

method ltp 3.0(c++) ap(1) ap(8) pa pa-i(0.5) pa-ii(0.5)
cws 97.83 97.93 97.67 97.90 97.90 97.93
pos 98.35 98.41 98.30 98.39 98.39 98.38
ner 94.17 94.28 93.42 94.02 94.06 93.95

自行编译安装

maturin build --release -m python/extension/Cargo.toml --out dist --no-default-features --features="malloc"
# or 针对cpu优化
maturin build --release -m python/extension/Cargo.toml --out dist --no-default-features --features="malloc" -- -C target-cpu=native

features

  • 分句
  • 任务
    • 中文分词(cws)
      • 对数字、英文、网址、邮件的处理
      • 支持自定义词典
    • 词性标注(pos)
      • 支持自定义词典
    • 命名实体识别(ner)
  • 算法
    • 平均感知机(ap)
      • 单线程平均感知机
      • 多线程平均感知机
    • 被动攻击算法(pa)
  • 模型量化
  • 在线学习
  • 增量学习

性能测试

评测环境

  • Python 3.10
  • MacBook Pro (16-inch, 2019)
  • 处理器: 2.6 GHz 六核Intel Core i7
  • 内存: 16 GB 2667 MHz DDR4

注: 速度测试文件大小为 33.85 MB / 305041 行

分词

我们选择Jieba、Pkuseg、Thulac等国内代表分词软件与 LTP 做性能比较,根据第二届国际汉语分词测评发布的国际中文分词测评标准,对不同软件进行了速度和准确率测试。

在第二届国际汉语分词测评中,共有四家单位提供的测试语料(Academia Sinica、 City University 、Peking University(PKU) 、Microsoft Research(MSR)), 在评测提供的资源icwb2-data 中包含了来自这四家单位的训练集(icwb2-data/training)、测试集(icwb2-data/testing), 以及根据各自分词标准而提供的相应测试集的标准答案(icwb2-data/gold).在icwb2-data/scripts目录下含有对分词进行自动评分的perl脚本score。

我们在统一测试环境下,对若干流行分词软件和 LTP 进行了测试,使用的模型为各分词软件自带模型。在PKU和MSR测试集评测结果如下:

Algorithm 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 同上 同上

注:括号内为线程数量

注2:Jieba的词表是在人民日报数据集上统计的

流水线

除了分词以外,我们也测试了 LTP 三个任务(分词、词性标注、命名实体识别)流水线的速度:

Algorithm 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

注:括号内为线程数量

注2:速度数据在人民日报命名实体测试数据上获得,速度计算方式均为所有任务顺序执行的结果。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ltp_extension-0.1.13.tar.gz (109.6 kB view hashes)

Uploaded Source

Built Distributions

ltp_extension-0.1.13-cp37-abi3-win_amd64.whl (707.5 kB view hashes)

Uploaded CPython 3.7+ Windows x86-64

ltp_extension-0.1.13-cp37-abi3-win32.whl (681.5 kB view hashes)

Uploaded CPython 3.7+ Windows x86

ltp_extension-0.1.13-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view hashes)

Uploaded CPython 3.7+ manylinux: glibc 2.17+ x86-64

ltp_extension-0.1.13-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.8 MB view hashes)

Uploaded CPython 3.7+ manylinux: glibc 2.17+ s390x

ltp_extension-0.1.13-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.4 MB view hashes)

Uploaded CPython 3.7+ manylinux: glibc 2.17+ ppc64le

ltp_extension-0.1.13-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.4 MB view hashes)

Uploaded CPython 3.7+ manylinux: glibc 2.17+ ARMv7l

ltp_extension-0.1.13-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view hashes)

Uploaded CPython 3.7+ manylinux: glibc 2.17+ ARM64

ltp_extension-0.1.13-cp37-abi3-manylinux_2_12_i686.manylinux2010_i686.whl (1.4 MB view hashes)

Uploaded CPython 3.7+ manylinux: glibc 2.12+ i686

ltp_extension-0.1.13-cp37-abi3-macosx_11_0_arm64.whl (804.8 kB view hashes)

Uploaded CPython 3.7+ macOS 11.0+ ARM64

ltp_extension-0.1.13-cp37-abi3-macosx_10_12_x86_64.whl (923.1 kB view hashes)

Uploaded CPython 3.7+ macOS 10.12+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page