Spacy 简明教程

spaCy - Models and Languages

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

Language Support

目前,spaCy 支持以下语言:

Language

Code

Chinese

zh

Danish

da

Dutch

nl

English

en

French

fr

German

de

Greek

el

Italian

it

Japanese

ja

Lithuanian

lt

Multi-language

xx

Norwegian Bokmål

nb

Polish

pl

Portuguese

pt

Romanian

ro

Spanish

es

Afrikaans

af

Albanian

sq

Arabic

ar

Armenian

hy

Basque

eu

Bengali

bn

Bulgarian

bg

Catalan

ca

Croatian

hr

Czech

cs

Estonian

et

Finnish

fi

Gujarati

gu

Hebrew

he

Hindi

hi

Hungarian

hu

Icelandic

is

Indonesian

id

Irish

ga

Kannada

kn

Korean

ko

Latvian

lv

Ligurian

lij

Luxembourgish

lb

Macedonian

mk

Malayalam

ml

Marathi

mr

Nepali

ne

Persian

fa

Russian

ru

Serbian

sr

Sinhala

si

Slovak

sk

Slovenian

sl

Swedish

sv

Tagalog

tl

Tamil

ta

Tatar

tt

Telugu

te

Thai

th

Turkish

tr

Ukrainian

uk

Urdu

ur

Vietnamese

vi

Yoruba

yo

spaCy’s statistical models

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

Installing spaCy’s Statistical Models

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

Using Download command

使用 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

Via 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

installing model using pip with local file 命令如下:

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

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

Manually

你还可以手动下载数据,并将其放置到你选择的自定义目录中。

使用以下任何方式手动下载数据:

  1. 从最新版本中通过你的浏览器下载模型。

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

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

Using models with spaCy

这里说明了如何将模型与 spaCy 一起使用。

我们可以像上面讨论的那样手动下载所有 spaCy 模型,并将其放在我们的本地目录中。现在,当 spaCy 项目需要任何模型时,我们可以创建一个快捷链接,以便 spaCy 可以从那里加载模型。有了这个,你将不会出现重复数据的情况。

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

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

在以上命令中,第一个参数是包名称或本地路径。如果你已通过 pip 安装了模型,你可以使用这里的包名称。或者,你需要一个到模型包的本地路径。

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

以下是这两个案例的示例。

Example

以下是将已安装包设置为“ 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

Importing as module

我们也可以 import 一个安装的模型,它可以无参数地调用其 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

Output

This is my first example.

Using own models

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

Naming Conventions

通常, [lang_[name]] 的命名约定是 spaCy 预期其所有的模型包都遵循的一个这样的约定。

spaCy 的 model 的名称还可以进一步划分为以下三个组成部分:

  1. Type −它反映了模型的能力。例如, core 用于带有词汇表、句法和实体的通用模型。类似地, depent 仅用于词汇表、句法和实体。

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

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

Model versioning

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

  1. Compatibility with spaCy.

  2. 主版本和次要版本。

例如,模型版本 r.s.t 翻译如下 −

  1. rspaCy major version. 例如,1 适用于 spaCy v1.x。

  2. sModel major version. 通过相同的代码,它限制了用户加载不同的主要版本。

  3. tModel minor version. 它显示相同模型结构,但参数值不同。例如,针对不同数量的迭代在不同数据上训练。