spaCy - 模型和语言

让我们了解一下 spaCy 及其统计模型支持的语言。

语言支持

目前,spaCy 支持以下语言 −

sk
语言 代码
中文 zh
丹麦语 da
荷兰语 nl
英语 en
法语 fr
德语n de
希腊语 el
意大利语 it
日语 ja
立陶宛语 lt
多语言 xx
挪威语博克马尔语 nb
波兰语 pl
葡萄牙语 pt
罗马尼亚语 ro
西班牙语 es
南非荷兰语 af
阿尔巴尼亚语 sq
阿拉伯语 ar
亚美尼亚语 hy
巴斯克语 eu
孟加拉语 bn
保加利亚语 bg
加泰罗尼亚语 c a
克罗地亚语 hr
捷克语 cs
爱沙尼亚语 et
芬兰语 fi
古吉拉特语 gu
希伯来语 he
印地语 hi
匈牙利语 hu
冰岛语 is
印度尼西亚语 id
爱尔兰语 ga
卡纳达语 kn
韩语 ko
拉脱维亚语 lv
利古里亚语 lij
卢森堡语 lb
马其顿语 mk
马拉雅拉姆语 ml
马拉地语 mr
尼泊尔语 ne
波斯语 fa
俄语 ru
塞尔维亚语 sr
僧伽罗语 si
斯洛伐克语
斯洛文尼亚语 sl
瑞典语 sv
他加禄语 tl
泰米尔语 ta
鞑靼语 tt
泰卢固语 te
泰语 th
土耳其语 tr
乌克兰语 uk
乌尔都语 ur
越南语 vi
约鲁巴语 yo

spaCy 的统计模型

众所周知,spaCy 的模型可以作为 Python 包安装,这意味着像任何其他模块一样,它们是我们应用程序的一个组件。这些模块可以在 requirement.txt 文件中进行版本控制和定义。

安装 spaCy 的统计模型

spaCy 统计模型的安装说明如下 −

使用下载命令

使用 spaCy 的 download 命令是下载模型的最简单方法之一,因为它会自动找到与我们的 spaCy 版本兼容的最佳匹配模型。

您可以按以下方式使用 download 命令 −

以下命令将为您的 spaCy 版本下载最佳匹配的特定模型版本 −

python -m spacy download en_core_web_sm

以下命令将下载最佳匹配的默认模型,并将创建快捷方式链接−

python -m spacy download en

以下命令将下载确切的模型版本,并且不会创建任何快捷方式链接 −

python -m spacy download en_core_web_sm-2.2.0 --direct

通过 pip

我们还可以通过 pip 直接下载和安装模型。为此,您需要使用 pip install 和存档文件的 URL 或本地路径。如果您没有模型的直接链接,请转到模型发布,然后从那里复制。

例如,

使用带有外部 URL 的 pip 安装模型的命令如下 −

pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.2.0/en_core_web_sm-2.2.0.tar.gz

使用带有本地文件的 pip 安装模型的命令如下 −

pip install /Users/you/en_core_web_sm-2.2.0.tar.gz

上述命令会将特定模型安装到您的 site-packages 目录中。完成后,我们可以使用 spacy.load() 通过其包名称加载它。

手动

您也可以手动下载数据并将其放入您选择的自定义目录中。

使用以下任何一种方式手动下载数据 −

  • 通过浏览器从最新版本下载模型。

  • 您可以使用存档文件的 URL(统一资源定位器)配置自己的下载脚本。

下载完成后,我们可以将模型包目录放在本地文件系统的任何位置。现在要将其与 spaCy 一起使用,我们可以为数据目录创建一个快捷方式链接。

使用 spaCy 模型

这里解释了如何将模型与 spaCy 一起使用。

使用自定义快捷方式链接

我们可以手动下载所有 spaCy 模型,如上所述,并将它们放在我们的本地目录中。现在,每当 spaCy 项目需要任何模型时,我们都可以创建一个快捷方式链接,以便 spaCy 可以从那里加载模型。这样,您就不会得到重复的数据。

为此,spaCy 为我们提供了链接命令,可以按如下方式使用 −

python -m spacy link [package name or path] [shortcut] [--force]

在上述命令中,第一个参数是包名称或本地路径。如果您已通过 pip 安装了模型,则可以在此处使用包名称。否则,您有一个模型包的本地路径。

第二个参数是内部名称。这是您要为模型使用的名称。上述命令中的 –-force 标志将覆盖任何现有链接。

下面给出了两种情况的示例。

示例

下面给出了设置快捷链接以将已安装包加载为"default_model"的示例 −

python -m spacy link en_core_web_md en_default

设置快捷链接以将本地模型加载为"my_default_model"的示例如下 −

python -m spacy link /Users/Leekha/model my_default_en

导入为模块

我们还可以导入已安装的模型,它可以调用其load()方法而无需参数如下所示 −

import spaCy
import en_core_web_sm
nlp_example = en_core_web_sm.load()
my_doc = nlp_example("This is my first example.")
my_doc

输出

This is my first example.

使用自己的模型

您也可以使用您训练过的模型。为此,您需要使用 Language.to_disk() 方法保存您训练过的模型的状态。为了部署更加方便,你也可以将其包装为 Python 包。

命名约定

通常,[lang_[name]] 的命名约定是 spaCy 希望其所有模型包都遵循的约定之一。

spaCy 的 model 的名称可以进一步分为以下三个部分 −

  • Type − 它反映了模型的功能。例如,core 用于具有词汇、语法、实体的通用模型。同样,depent 仅用于词汇、语法和实体。

  • Genre − 它显示了模型训练的文本类型。例如,webnews

  • Size − 顾名思义,它是模型大小指示器。例如,sm(表示小)、md(表示中)或 lg(表示大)。

模型版本控制

模型版本控制反映了以下 −

  • 与 spaCy 的兼容性。

  • 主要和次要模型版本。

例如,模型版本 r.s.t 转换为以下 −

  • rspaCy 主版本。例如,1 代表 spaCy v1.x。

  • s模型主版本。它限制用户通过相同的代码加载不同的主版本。

  • t模型次版本。它显示相同的模型结构,但参数值不同。例如,在不同的数据上进行不同次数的迭代训练。