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
易于安装
多语言支持
集成 word向量
标记化
词性标注
句子分割
依赖关系解析
实体识别
实体链接
共指解析

基准

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