spaCy - 容器

在本章中,我们将了解 spaCy 的容器。让我们首先了解具有 spaCy 容器的类。

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

Doc

Doc 是用于访问语言注释的容器,是一系列标记对象。借助 Doc 类,我们可以访问句子以及命名实体。

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

Token

顾名思义,它代表一个单独的标记,例如单词、标点符号、空格、符号等。

Span

它是 Doc 对象的一个​​切片,我们上面讨论过。

Lexeme

它可以定义为词汇表中的条目。与单词标记相反,Lexeme 没有字符串上下文。它是一种单词类型,因此,它没有任何 PoS(词性)标记、依赖解析或词干。

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

Doc 类

Doc 类中使用的参数、序列化字段、方法如下 −

参数

下表解释了其参数 −

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 这是一个标志,指示句子边界是否已应用于文档。如果文档为空,它将返回 True。
is_nered bool 此属性是在 2.1 版中引入的。这是一个标志,指示命名实体是否已设置。如果文档为空,它将返回 True。如果任何 token 都设置了实体标签,它也会返回 True。
sentiment float 它将以浮点数返回文档的积极/消极分数(如果有)。
user_hooks dict 此属性是一个字典,允许自定义 Doc 的属性。
user_token_hooks dict 此属性是一个字典,允许自定义 Token 子项的属性。
user_span_hooks dict 此属性是一个字典允许自定义 Span 子项的属性。
_ 下划线 它表示用于添加自定义属性扩展的用户空间。

序列化字段

在序列化过程中,为了恢复对象的各个方面,spacy 将导出多个数据字段。我们还可以通过名为 exclude 的参数之一传递名称来从序列化中排除数据字段。

下表解释了序列化字段 −

Sr.No. 名称 &描述
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 字典的值。

方法

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

Sr.No. 方法 &描述
1 Doc._ _init_ _

构造 Doc 对象。

2 Doc._ _getitem_ _

获取特定位置的 token 对象。

3 Doc._ _iter_ _

迭代那些可以轻松访问注释的 token 对象。

4 Doc._ _len_ _

获取文档中的标记数。

类方法

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

Sr.No. 类方法 &描述
1 Doc.set_extension

它在 Doc 上定义一个自定义属性。

2 Doc.get_extension

它将按名称查找以前的扩展。

3 Doc.has_extension

它将检查扩展是否已在 Doc 类上注册。

4 Doc.remove_extension

它将删除 Doc 类上先前注册的扩展。