事实与数据
spaCy 是一个免费开源的库,用于Python中的高级自然语言处理(NLP)。它专为生产环境使用而设计,帮助您构建能够处理和"理解"大量文本的应用程序。它可用于构建信息提取或自然语言理解系统。
功能概览
何时应该使用spaCy?
基准测试
spaCy v3.0 引入了基于transformer的流程,将spaCy的准确率提升至当前最先进水平。您也可以使用CPU优化流程,虽然准确率稍低但运行成本更为经济。
| Pipeline | Parser | Tagger | NER |
|---|---|---|---|
en_core_web_trf (spaCy v3) | 95.1 | 97.8 | 89.8 |
en_core_web_lg (spaCy v3) | 92.0 | 97.4 | 85.5 |
en_core_web_lg (spaCy v2) | 91.9 | 97.2 | 85.5 |
完整流程准确率基于 OntoNotes 5.0语料库(在开发集上报告)。
| 命名实体识别系统 | OntoNotes | CoNLL '03 |
|---|---|---|
| spaCy RoBERTa (2020) | 89.8 | 91.6 |
| Stanza (StanfordNLP)1 | 88.8 | 92.1 |
| Flair2 | 89.7 | 93.1 |
命名实体识别准确率在
OntoNotes 5.0和
CoNLL-2003语料库上的表现。更多结果请参阅
NLP-progress。项目模板:
benchmarks/ner_conll03。1.
Qi et al. (2020)。2.
Akbik et al. (2018)。
| 依存句法分析系统 | UAS | LAS |
|---|---|---|
| spaCy RoBERTa (2020) | 95.1 | 93.7 |
| Mrini et al. (2019) | 97.4 | 96.3 |
| Zhou and Zhao (2019) | 97.2 | 95.7 |
依存句法分析准确率在宾州树库上的表现。更多结果请参见
NLP-progress。项目模板:
benchmarks/parsing_penn_treebank。
速度对比
我们比较了不同NLP库的处理速度,以每秒处理的单词数(WPS)衡量 - 数值越高表示性能越好。该评估基于10,000条Reddit评论进行。
| 库 | 流水线 | WPS CPU | WPS GPU |
|---|---|---|---|
| spaCy | en_core_web_lg | 10,014 | 14,954 |
| spaCy | en_core_web_trf | 684 | 3,768 |
| Stanza | en_ewt | 878 | 2,180 |
| Flair | pos(-fast) & ner(-fast) | 323 | 1,184 |
| UDPipe | english-ewt-ud-2.5 | 1,101 | n/a |
端到端处理速度针对原始未标注文本。项目模板:
benchmarks/speed。