spaCy - 简介
在本章中,我们将了解 spaCy 的功能、扩展和可视化工具。此外,还提供了功能比较,这将有助于读者分析 spaCy 与自然语言工具包 (NLTK) 和 coreNLP 相比所提供的功能。这里的 NLP 指的是自然语言处理。
什么是 spaCy?
spaCy 由软件开发人员 Matthew Honnibal 和 Ines Montani 开发,是一个用于高级 NLP 的开源软件库。它使用 Python 和 Cython(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 |