spaCy - 模型和语言



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

语言支持

目前,spaCy 支持以下语言:

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

spaCy 的统计模型

众所周知,spaCy 的模型可以作为 Python 包安装,这意味着就像任何其他模块一样,它们是应用程序的一部分。这些模块可以进行版本控制,并在 **requirements.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 或本地路径。如果您没有模型的直接链接,请转到模型发布页面,并从那里复制。

例如:

使用 pip 和外部 URL 安装模型的命令如下:

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 为我们提供了 link 命令,可以使用如下方式:

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 模型的名称可以进一步细分为以下三个部分:

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

  • **类型** - 它显示了模型训练的文本类型。例如,**web** 或 **news**。

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

模型版本控制

模型版本控制反映以下内容:

  • 与 spaCy 的兼容性。

  • 主要和次要模型版本。

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

  • **r** - **spaCy 主版本。**例如,spaCy v1.x 为 1。

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

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

广告