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(数据视觉控制)、Prodigy、Streamlit、FastAPI、Ray 等。
使用 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 的最新发布版本可通过两个包管理器 pip 和 conda 获得。让我们看看如何使用它们安装 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_gpu 或 spacy.require_gpu 来激活它,如下所示 −
import spacy spacy.prefer_gpu() nlp_model = spacy.load("en_core_web_sm")