
- spaCy 教程
- spaCy - 首页
- spaCy - 简介
- spaCy - 入门
- spaCy - 模型和语言
- spaCy - 架构
- spaCy - 命令行助手
- spaCy - 顶级函数
- spaCy - 可视化函数
- spaCy - 实用函数
- spaCy - 兼容性函数
- spaCy - 容器
- Doc 类上下文管理器和属性
- spaCy - 容器 Token 类
- spaCy - Token 属性
- spaCy - 容器 Span 类
- spaCy - Span 类属性
- spaCy - 容器 Lexeme 类
- 训练神经网络模型
- 更新神经网络模型
- spaCy 有用资源
- spaCy - 快速指南
- spaCy - 有用资源
- spaCy - 讨论
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 | 是 | 是 | 否 |
易于安装 | 是 | 是 | 是 |
多语言支持 | 是 | 是 | 是 |
集成词向量 | 是 | 否 | 否 |
分词 | 是 | 是 | 是 |
词性标注 | 是 | 是 | 是 |
句子分割 | 是 | 是 | 是 |
依赖关系解析 | 是 | 否 | 是 |
实体识别 | 是 | 是 | 是 |
实体链接 | 是 | 否 | 否 |
共指消解 | 否 | 否 | 是 |
基准测试
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 |