spaCy - 快速入门



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

最新版本

spaCy v3.0 是最新的版本,作为夜间版本提供。这是一个通过名为 spacy-nightly 的单独通道提供的 spaCy 的实验性和 Alpha 版本。它反映了“未来的 spaCy”,不能用于生产环境。

为避免潜在的冲突,请尝试使用新的虚拟环境。

您可以使用以下 pip 命令进行安装:

pip install spacy-nightly --pre

新功能和改进

以下是 spaCy 最新版本中的新功能和改进:

基于 Transformer 的管道

它具有所有新的基于 Transformer 的管道,并支持多任务学习。这些新的基于 Transformer 的管道使其成为精度最高的框架(在最佳可用框架的 1% 之内)。

您可以访问数千个预训练模型以用于您的管道,因为 spaCy 的 Transformer 支持与 PyTorch 和 HuggingFace transformers 等其他框架互操作。

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

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

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

使用任何机器学习框架的自定义模型

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

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

spaCy 项目允许我们管理和共享各种用例和领域的端到端工作流程。

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

另一方面,我们还可以与其他数据科学和机器学习工具集成,例如 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 的机器学习模型架构和预测数据格式。

兼容性

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。因此,我们只需要安装最新版本的 XCode,包括 CLT(命令行工具)。

Windows

在下表中,给出了 Python 解释器的官方发行版中提供的 Visual C++ 构建工具或 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 命令将打印提示和安装说明。此命令还可以检测在各种虚拟环境中创建的模型链接不同步。

您可以按如下方式使用 validate 命令:

pip install -U spacy
python -m spacy validate

在上面的命令中,使用 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")
广告