spaCy - 入门

本章将帮助读者了解 spaCy 的最新版本。此外,读者还可以了解相应版本中的新功能和改进、其兼容性以及如何安装 spaCy。

最新版本

spaCy v3.0 是最新版本,以夜间版本提供。这是 spaCy 通过名为 spacy-nightly 的单独渠道发布的实验性和 alpha 版本。它反映了"未来的 spaCy",不能用于生产用途。

为防止潜在冲突,请尝试使用全新的虚拟环境。

您可以使用下面给出的 pip 命令来安装它 −

pip install spacy-nightly --pre

新功能和改进

最新版本 spaCy 中的新功能和改进如下所述 −

基于 Transformer 的管道

它具有所有新的基于 Transformer 的管道,支持多任务学习。这些新的基于转换器的管道使其成为最准确的框架(与最佳可用框架的误差在 1% 以内)。

您可以访问管道的数千个预训练模型,因为 spaCy 的转换器支持与其他框架(如 PyTorch 和 HuggingFace 转换器)互操作。

新的训练工作流程和配置系统

spaCy v3.0 提供了我们训练运行的单个配置文件。

没有隐藏的默认值,因此可以轻松返回我们的实验并跟踪更改。

使用任何 ML 框架的自定义模型

spaCy v3.0 的新配置系统使我们可以轻松自定义神经网络 (NN) 模型并通过 ML 库 Thinc 实现我们自己的架构。

管理端到端工作流程和项目

spaCy 项目让我们能够管理和共享端到端工作流程各种用例和领域。

它还让我们组织训练、打包和服务我们的自定义管道。

另一方面,我们还可以与其他数据科学和 ML 工具集成,如 DVC(数据视觉控制)ProdigyStreamlitFastAPIRay 等。

使用 Ray 进行并行训练和分布式计算

为了加快训练过程,我们可以使用 Ray(一种用于构建和运行分布式应用程序的快速而简单的框架)在一台或多台远程机器上训练 spaCy。

新的内置管道组件

这是 spaCy 的新版本,遵循新的可训练和基于规则的组件,我们可以将其添加到我们的管道中。

这些组件如下 −

  • SentenceRecognizer

  • Morphologizer

  • Lemmatizer

  • AttributeRuler

  • Transformer

  • TrainablePipe

新的管道组件 API

SpaCy v3.0 为我们提供了全新改进的管道组件 API 和装饰器,使定义、配置、重用、训练和分析变得更容易、更方便。

依赖项匹配

SpaCy v3.0 为我们提供了新的 DependencyMatcher,让我们可以匹配依赖项解析器中的模式。它使用 Semgrex 运算符。

新的和更新的文档

它具有新的和更新的文档,包括 −

  • 关于嵌入、转换器和迁移学习的新使用指南。

  • 关于训练管道和模型的指南。

  • 有关新 spaCy 项目的详细信息以及有关自定义管道组件的更新使用文档。

  • 新的插图和新的 API 参考页面,记录了 spaCy 的 ML 模型架构和投影数据格式。

兼容性

spaCy 可以在所有主要操作系统上运行,例如 Windows、macOS/OS X 和 Unix/Linux。它与 64 位 CPython 2.7/3.5+ 版本兼容。

安装 spaCy

安装 spaCy 的不同选项如下 −

使用包管理器

spaCy 的最新发布版本可通过两个包管理器 pipconda 获得。让我们看看如何使用它们安装 spaCy −

pip − 要使用 pip 安装 Spacy,您可以使用以下命令 −

pip install -U spacy

为了避免修改系统状态,建议在虚拟环境中安装 spacy 包,如下所示 −

python -m venv .env
source .env/bin/activate
pip install spacy

conda − 要通过 conda-forge 安装 spaCy,您可以使用以下命令 −

conda install -c conda-forge spacy

从源代码

您还可以通过从 GitHub 存储库 克隆 spaCy 并从源代码构建它来安装 spaCy。这是对代码库进行更改的最常见方法。

但是,为此,您需要有一个包含以下内容的 Python 发行版 −

  • 头文件

  • 编译器

  • pip

  • virtualenv

  • git

使用以下命令 −

首先,按如下方式更新 pip

python -m pip install -U pip

现在,使用下面给出的命令克隆 spaCy

git clone https://github.com/explosion/spaCy

现在,我们需要使用下面提到的命令导航到目录

cd spaCy

接下来,我们需要在 .env 中创建环境,如下所示 −

python -m venv .env

现在,激活上面创建的虚拟环境

source .env/bin/activate

接下来,我们需要将 Python 路径设置为 spaCy 目录,如下所示 −

export PYTHONPATH=`pwd`

现在,安装所有要求,如下所示 −

pip install -r requirements.txt

最后,编译 spaCy

python setup.py build_ext --inplace

Ubuntu

使用以下命令在 Ubuntu 操作系统 (OS) 中安装系统级依赖项 −

sudo apt-get install build-essential python-dev git

macOS/OS X

实际上,macOS 和 OS X 已预装 Python 和 git。因此,我们只需要安装包含 CLT(命令行工具)的最新版本的 XCode。

Windows

在下表中,给出了用于 Python 解释器官方分发的 Visual C++ Build Tools 或 Visual Studio Express 版本。根据您的要求选择并安装 −

发行版 版本
Python 2.7 Visual Studio 2008
Python 3.4 Visual Studio 2010
Python 3.5+ Visual Studio 2015

升级 spaCy

升级 spaCy 时应牢记以下几点 −

  • 从干净的虚拟环境开始。

  • 要将 spaCy 升级到新的主要版本,您必须拥有最新的兼容模型安装。

  • 虚拟环境中不应有旧的快捷方式链接或不兼容的模型包。

  • 如果您已经训练了自己的模型,则训练和运行时输入必须匹配,即您也必须使用较新的版本重新训练模型。

spaCy v2.0 及以上版本提供了一个 validate 命令,允许用户验证所有已安装的模型是否与已安装的 spaCy 版本兼容。

如果存在任何不兼容的模型,validate 命令将打印提示和安装说明。此命令还可以检测在各种虚拟环境中创建的不同步模型链接。

您可以按如下方式使用验证命令 −

pip install -U spacy
python -m spacy verify

在上面的命令中,python -m 用于确保我们执行的是 spaCy 的正确版本。

使用 GPU 运行 spaCy

spaCy v2.0 及以上版本附带可在 Thinc 中实现的神经网络 (NN) 模型。如果您想使用图形处理单元 (GPU) 支持运行 spaCy,请使用 Chainer 的 CuPy 模块。此模块为 GPU 数组提供了与 numpy 兼容的接口。

您可以通过指定以下内容在 GPU 上安装 spaCy −

  • spaCy[cuda]

  • spaCy[cuda90]

  • spaCy[cuda91]

  • spaCy[cuda92]

  • spaCy[cuda100]

  • spaCy[cuda101]

  • spaCy[cuda102]

另一方面,如果您知道您的 cuda 版本,则显式说明符允许安装 cupy。它将节省编译时间。

使用以下命令进行安装 −

pip install -U spacy[cuda92]

在启用 GPU 的安装后,通过调用 spacy.prefer_gpuspacy.require_gpu 来激活它,如下所示 −

import spacy
spacy.prefer_gpu()
nlp_model = spacy.load("en_core_web_sm")