spaCy - 简介



在本章中,我们将了解 spaCy 的功能、扩展和可视化工具。此外,还提供了功能比较,帮助读者分析 spaCy 提供的功能与自然语言工具包 (NLTK) 和 coreNLP 的对比。这里,NLP 指的是自然语言处理。

什么是 spaCy?

spaCy 由软件开发人员Matthew HonnibalInes Montani 开发,是一个用于高级 NLP 的开源软件库。它使用PythonCython(Python 的 C 扩展,主要旨在为 Python 语言程序提供类似 C 的性能)编写。

spaCy 是一个相对较新的框架,但也是功能最强大和最先进的库之一,用于实现 NLP。

特性

下面解释了 spaCy 一些使其流行的功能 −

快速 − spaCy 特别设计为尽可能快。

准确性 − spaCy 对其标记依赖关系解析器的实现使其成为同类中最准确的框架之一(在最佳可用框架的 1% 以内)。

内置功能 − spaCy 内置的功能如下 −

  • 索引保留分词。

  • “Alpha 分词”支持 50 多种语言。

  • 词性标注。

  • 预训练词向量。

  • 内置简单美观的命名实体和句法可视化工具。

  • 文本分类。

可扩展性 − 可以轻松地将 spaCy 与其他现有工具(如 TensorFlow、Gensim、scikit-Learn 等)一起使用。

深度学习集成 − 它具有 Thinc——一个专为 NLP 任务设计的深度学习框架。

扩展和可视化工具

下面列出了一些 spaCy 附带的易于使用的扩展和可视化工具,它们是免费的开源库 −

Thinc − 它是一个针对中央处理器 (CPU) 使用优化的机器学习 (ML) 库。它也专为文本输入和 NLP 任务的深度学习而设计。

sense2vec − 此库用于计算词语相似度。它基于 Word2vec。

displaCy − 它是一个开源的依赖关系解析树可视化工具。它使用 JavaScript、CSS(层叠样式表)和 SVG(可缩放矢量图形)构建。

displaCy ENT − 它是 spaCy 附带的内置命名实体可视化工具。它使用 JavaScript 和 CSS 构建。它允许用户在浏览器中检查其模型的预测。

功能比较

下表显示了 spaCy、NLTK 和 CoreNLP 提供的功能的比较 −

特性 spaCy NLTK CoreNLP
Python API
易于安装
多语言支持
集成词向量
分词
词性标注
句子分割
依赖关系解析
实体识别
实体链接
共指消解

基准测试

spaCy 拥有世界上最快的句法解析器,并且具有最高的准确性(在最佳可用解析器的 1% 以内)。

下表显示了 spaCy 的基准测试 −

系统 年份 语言 准确率
spaCy v2.x 2017 Python 和 Cython 92.6
spaCy v1.x 2015 Python 和 Cython 91.8
ClearNLP 2015 Java 91.7
CoreNLP 2015 Java 89.6
MATE 2015 Java 92.5
Turbo 2015 C++ 92.4
广告