开始使用

数据与图表

spaCy 的硬性数据以及与其他工具的比较

spaCy 是一个免费、开源的库,用于 Python 中的高级自然语言处理 (NLP)。它专为生产环境使用而设计,帮助您构建处理和“理解”大量文本的应用程序。它可以用于构建信息提取或自然语言理解系统。

功能概述

  • 支持 75+ 种语言
  • 用于的 84 个训练好的管道25 语言的
  • 使用 BERT 等预训练的 transformers 进行多任务学习
  • 预训练的 词向量
  • 最先进的速度
  • 生产就绪的 训练系统
  • 基于语言学原理的 分词
  • 用于命名实体识别、词性标注、依存句法分析、句子分割、文本分类、词形还原、形态分析、实体链接等功能的组件
  • 易于使用自定义组件和属性进行扩展
  • 支持在 PyTorch 中使用自定义模型, TensorFlow 和其他框架
  • 内置用于语法和 NER 的可视化工具
  • 轻松的模型打包、部署和工作流管理
  • 稳健、经过严格评估的准确性

我应该在什么时候使用 spaCy?

  • 我是一个初学者,刚开始学习 NLP。 – spaCy 使入门变得容易,并附带了广泛的文档,包括适合初学者的 101 指南、免费的交互式 在线课程 和一系列 视频教程
  • 我想构建一个端到端的生产应用程序。 – spaCy 专为生产环境使用而设计,让您可以构建和训练强大的 NLP 管道,并将其打包以便于部署。
  • 我希望我的应用程序在 GPU CPU 上都能高效运行。 – 虽然 spaCy 允许您训练最好在 GPU 上运行的现代 NLP 模型,但它也提供了 CPU 优化的管道,准确性较低,但运行成本更低。
  • 我想尝试不同的用于 NLP 的神经网络架构。 – spaCy 允许您自定义和交换为组件提供支持的模型架构,并使用 PyTorch 或 TensorFlow 等框架实现您自己的架构。声明式配置系统使您可以轻松地混合和匹配函数并跟踪您的超参数,以确保您的实验可重现。
  • 我想构建一个语言生成应用程序。 – spaCy 的重点是自然语言处理和从大量文本中提取信息。虽然您可以使用它来帮助您重写现有文本,但它不包含任何用于语言生成任务的特定功能。
  • 我想研究机器学习算法。 spaCy 建立在最新的研究之上,但它不是一个研究库。如果您的目标是撰写论文和运行基准测试,spaCy 可能不是一个好的选择。但是,您可以使用它使您的研究结果易于供他人使用,例如通过自定义 spaCy 组件。

基准测试

spaCy v3.0 引入了基于 transformer 的管道,使 spaCy 的准确性达到当前最先进水平。您还可以使用 CPU 优化的管道,准确性较低,但运行成本更低。

更多结果管道句法分析器词性标注器
命名实体识别95.197.889.8
en_core_web_trf (spaCy v3)92.097.485.5
en_core_web_lg (spaCy v3)91.997.285.5

en_core_web_lg (spaCy v2)

OntoNotes 5.0语料库上的完整管道准确性(报告在开发集上)。命名实体识别系统OntoNotes
CoNLL ‘0389.891.6
spaCy RoBERTa (2020)88.892.1
Stanza (StanfordNLP)189.793.1

OntoNotes 5.0CoNLL-2003 语料库上的命名实体识别准确性。请参阅 NLP-progress 以获取更多结果。项目模板:benchmarks/ner_conll031. Qi et al. (2020)2. Akbik et al. (2018)

依存句法分析系统UASLAS
CoNLL ‘0395.193.7
Mrini et al. (2019)97.496.3
Zhou and Zhao (2019)97.295.7

依存句法分析准确性在 Penn Treebank 上。请参阅 NLP-progress 以获取更多结果。项目模板:benchmarks/parsing_penn_treebank

速度比较

我们比较了不同 NLP 库的速度,以每秒字数 (WPS) 为单位衡量 - 数字越高越好。评估是在 10,000 条 Reddit 评论上进行的。

更多结果CPU WPS GPU WPS
OntoNotes 5.0CoNLL-2003 语料库上的命名实体识别准确性。 参见 NLP-progress 以获取更多结果。项目模板:benchmarks/ner_conll031. Qi et al. (2020)2. Akbik et al. (2018)en_core_web_lg10,01414,954
OntoNotes 5.0CoNLL-2003 语料库上的命名实体识别准确性。 参见 NLP-progress 以获取更多结果。项目模板:benchmarks/ner_conll031. Qi et al. (2020)2. Akbik et al. (2018)en_core_web_trf6843,768
Stanzaen_ewt8782,180
Flairpos(-fast) & ner(-fast)3231,184
UDPipeenglish-ewt-ud-2.51,101n/a

对原始未注释文本进行端到端处理的速度。 项目模板:benchmarks/speed