Spacy 简明教程

spaCy - Containers

在本章中,我们将学习 spaCy 容器。让我们先了解一下 spaCy 容器所在的类。

Classes

我们有四个类由 spaCy 容器组成 -

Doc

Doc,一个访问语言注释的容器,是令牌对象的一个序列。在 Doc 类的帮助下,我们可以访问句子和命名实体。

我们还可以将注释导出到 numpy 数组并序列化为压缩的二进制字符串。Doc 对象包含一个 TokenC 结构数组,而 Token 和 Span 对象只能查看此数组,不能保存任何数据。

Token

顾名思义,它表示单个标记,如单词、标点符号、空格、符号等。

Span

它是从我们上面讨论的 Doc 对象中切分的一部分。

Lexeme

可将其定义为词表中的一个条目。与单词令牌相反,词素没有字符串上下文。它是一个单词类型,因此没有 PoS(词性)、依赖关系分析或词根。

现在,让我们详细讨论所有四个类 -

Doc Class

Doc 类中使用的参数、序列化字段和方法解释如下:

Arguments

下表解释了它的参数 −

NAME

TYPE

DESCRIPTION

text

unicode

此属性表示 Unicode 文档文本。

mem

Pool

顾名思义,此属性用于文档的本地内存堆,供其拥有的所有 C 数据使用。

vocab

Vocab

它存储所有词汇类型。

tensor

ndarray

它在版本 2.0 中引入,是密集型矢量表示的容器。

cats

dict

它在版本 2.0 中引入,此属性将标签映射到应用于文档的类别的分数。请注意,标签为字符串,分数应为浮点值。

user_data

-

它表示通用存储区域,主要用于用户自定义数据。

lang

int

它在版本 2.1 中引入,表示文档词汇的语言。

lang_

unicode

它在版本 2.1 中引入,表示文档词汇的语言。

is_tagged

bool

它是一个标记,指示文档是否已标注词性。如果 Doc 为空,则它会返回 True。

is_parsed

bool

它是一个标记,指示文档是否已进行句法解析。如果 Doc 为空,则它会返回 True。

is_sentenced

bool

它是一个标记,指示是否已对文档应用句子边界。如果 Doc 为空,则它会返回 True。

is_nered

bool

此属性在版本 2.1 中引入。它是表明是否已设置命名实体的标记。如果 Doc 为空,它会返回 True。如果任何标记均具有实体标记集,它也将返回 True。

sentiment

float

它将返回文档的积极性/消极性分数(如果有),为浮点数。

user_hooks

dict

此属性是允许自定义 Doc’s 属性的字典。

user_token_hooks

dict

此属性是允许自定义 Token 子级的属性的字典。

user_span_hooks

dict

此属性是允许自定义 Span 子级的属性的字典。

_

Underscore

它表示添加自定义属性扩展的用户空间。

Serialization fields

在序列化过程中,spaCy 将导出一些数据字段以还原对象的各个方面。我们还可以通过 exclude 参数传递名称,从序列化中排除数据字段。

下表解释了序列化字段:

Sr.No.

Name & Description

1

Text 它表示 Doc.text 属性的值。

2

Sentiment 它表示 Doc.sentiment 属性的值。

3

Tensor 它表示 Doc.tensor 属性的值。

4

user_data 它表示 Doc.user_data 字典的值。

5

user_data_keys 它表示 Doc.user_data 字典的键。

6

user_data_values 它表示 Doc.user_data 字典的值。

Methods

以下是 Doc 类中使用的函数 −

Sr.No.

Method & Description

1

Doc._ init _ 构造 Doc 对象。

2

Doc._ getitem _ 从某个特定位置获取一个 token 对象。

3

Doc._ iter _ 遍历那些 token 对象,其中可以轻松读取注释。

4

Doc._ len _ 获取文档中的 token 总数。

ClassMethods

以下是 Doc 类中使用的类方法 −

Sr.No.

Classmethod & Description

1

Doc.set_extension 它会在 Doc 中定义一个自定义属性。

2

Doc.get_extension 它会按名称查找以前扩展的属性。

3

Doc.has_extension 它会检查 Doc 类中是否已注册扩展。

4

Doc.remove_extension 它会移除 Doc 类中以前注册的扩展。