更多结果

TextCategorizer

class
字符串名称:textcat可训练:
用于文本分类的管道组件

文本分类器预测整个文档的类别,有 textcattextcat_multilabel 两种类型。 如果你需要预测每个文档的唯一一个真实标签,请使用具有互斥标签的 textcat。 如果你想执行多标签分类并预测每个文档的零个、一个或多个真实标签,请使用 textcat_multilabel 组件。 对于二元分类任务,你可以使用带有 两个 标签的 textcat 或带有 一个 标签的 textcat_multilabel

这两个组件在此页面上有文档说明。

已分配的属性

预测结果将保存到 doc.cats 中,作为一个字典,其中键是类别的名称,值是 0 到 1 之间(包括 0 和 1)的分数。 对于 textcat(互斥类别),分数之和为 1,而对于 textcat_multilabel,对其总和没有特别的保证。 这也意味着对于 textcat,缺失值被等同于 0(即 False),并被计入损失和评分指标。 这对于 textcat_multilabel 不成立,其中黄金标准数据中的缺失值不会影响损失或准确性计算。

请注意,在分配值以创建训练数据时,每个类别的分数必须为 0 或 1。 使用其他值,例如创建一个在类别 A 中略有存在,在类别 B 中略有存在的文档,是不被支持的。

位置
Doc.cats类别分数。 Dict[str, float]

配置和实现

默认配置由流水线组件工厂定义,并描述了应如何配置组件。您可以通过 config 参数在 nlp.add_pipe 或在您的 config.cfg 用于训练 中覆盖其设置。有关架构及其参数和超参数的详细信息,请参阅 模型架构 文档。

设置描述
threshold用于考虑预测为“正”的阈值,对于计算准确度分数时 textcat_multilabel 来说很重要。 float
model一个预测每个类别分数的模型实例。 默认值为 TextCatEnsembleModel[List[Doc], List[Floats2d]]
scorer评分方法。 默认值为 Scorer.score_cats 用于属性 "cats"Optional[Callable]
explosion/spaCy/master/spacy/pipeline/textcat.py
explosion/spaCy/master/spacy/pipeline/textcat_multilabel.py

TextCategorizer.__init__ 方法

创建一个新的管道实例。在您的应用程序中,您通常会使用此操作的快捷方式,并使用字符串名称和 nlp.add_pipe 来实例化组件。

名称描述
vocab共享词汇表。 Vocab
model为管道组件提供支持的 Thinc ModelModel[List[Doc], List[Floats2d]]
name组件实例的字符串名称。用于在训练期间将条目添加到 losses 中。 str
仅限关键字
threshold用于考虑预测为“正”的阈值,对于计算准确度分数时 textcat_multilabel 来说很重要。 float
scorer评分方法。 默认值为 Scorer.score_cats 用于属性 "cats"Optional[Callable]

TextCategorizer.__call__ 方法

将管道应用于单个文档。 文档会就地修改并返回。 这通常在幕后发生,当 nlp 对象被调用到文本上,并且所有管道组件都按顺序应用于 Doc 时。 __call__pipe 都委托给 predictset_annotations 方法。

名称描述
doc要处理的文档。 Doc

TextCategorizer.pipe 方法

将管道应用于文档流。 这通常在幕后发生,当 nlp 对象被调用到文本上,并且所有管道组件都按顺序应用于 Doc 时。 __call__pipe 都委托给 predictset_annotations 方法。

名称描述
文档流。 Iterable[Doc]
仅限关键字
batch_size缓冲的文档数量。默认值为 128int

TextCategorizer.initialize 方法v3.0

初始化组件进行训练。 get_examples 应该是一个返回 Example 对象的可迭代函数。 至少应提供一个示例。 数据示例用于 初始化组件的模型,可以是完整训练数据或具有代表性的样本。 初始化包括验证网络、推断缺失形状 以及根据数据设置标签方案。 此方法通常由 Language.initialize 调用,并允许你通过配置中的 [initialize.components] 块自定义它接收的参数。

名称描述
get_examples一个返回以 Example 对象形式表示的黄金标准注释的函数。必须包含至少一个 ExampleCallable[[], Iterable[Example]]
仅限关键字
nlp当前的 nlp 对象。默认值为 NoneOptional[Language]
labels要添加到组件的标签信息,由初始化后 label_data 属性提供。 要从你的数据生成可重用的 JSON 文件,你应该运行 init labels 命令。 如果未提供标签,则使用 get_examples 回调函数从数据中提取标签,这可能会慢得多。 Optional[Iterable[str]]
positive_label用于具有互斥类别的二元任务的正标签,否则为 None 且默认值。 此参数仅在评分期间使用。 在使用 textcat_multilabel 组件时不可用。 Optional[str]

TextCategorizer.predict 方法

将组件的模型应用于一批 Doc 对象,而不修改它们。

名称描述
docs要预测的文档。 Iterable[Doc]

TextCategorizer.set_annotations 方法

使用预计算的分数修改一批 Doc 对象。

名称描述
docs要修改的文档。 Iterable[Doc]
scoresTextCategorizer.predict 生成的要设置的分数。

TextCategorizer.update 方法

从包含预测和黄金标准注释的 Example 对象批次中学习,并更新组件的模型。 委托给 predictget_loss

名称描述
示例要从中学习的一批 Example 对象。 Iterable[Example]
仅限关键字
dropoutdropout 率。 float
sgd一个优化器。 如果未设置,将通过 create_optimizer 创建。 Optional[Optimizer]
losses训练期间损失的记录(可选)。使用组件名称作为键进行更新。 Optional[Dict[str, float]]

TextCategorizer.rehearse 方法实验性v3.0

从数据批次执行“排练”更新。 排练更新教导当前模型做出类似于初始模型的预测,以尝试解决“灾难性遗忘”问题。 此功能是实验性的。

名称描述
示例要从中学习的一批 Example 对象。 Iterable[Example]
仅限关键字
dropoutdropout 率。 float
sgd一个优化器。 如果未设置,将通过 create_optimizer 创建。 Optional[Optimizer]
losses训练期间损失的记录(可选)。使用组件名称作为键进行更新。 Optional[Dict[str, float]]

TextCategorizer.get_loss 方法

查找一批文档及其预测分数损失和损失梯度。

名称描述
示例一批示例。 Iterable[Example]
scores表示模型预测的分数。

TextCategorizer.score 方法v3.0

对示例批次进行评分。

名称描述
示例要评分的示例。 Iterable[Example]
仅限关键字

TextCategorizer.create_optimizer 方法

为 pipeline 组件创建一个优化器。

名称描述

TextCategorizer.use_params 方法上下文管理器

修改管道的模型以使用给定的参数值。

名称描述
params要在模型中使用的参数值。 dict

TextCategorizer.add_label 方法

向管道添加新的标签。 如果输出维度已经设置,或者模型已经完全 初始化,则会引发错误。 请注意,如果您向 initialize 方法提供一个**代表性数据样本**,则无需调用此方法。 在这种情况下,样本中找到的所有标签都将自动添加到模型中,并且输出维度将自动 推断

名称描述
label要添加的标签。 str

TextCategorizer.to_disk 方法

将 pipe 序列化到磁盘。

名称描述
path指向目录的路径,如果不存在则会创建该目录。路径可以是字符串或类似 `Path` 的对象。 Union[str,Path]
仅限关键字
exclude要排除的 序列化字段 的字符串名称。 Iterable[str]

TextCategorizer.from_disk 方法

从磁盘加载 pipe。修改对象并返回它。

名称描述
path指向目录的路径。路径可以是字符串或类似 `Path` 的对象。 Union[str,Path]
仅限关键字
exclude要排除的 序列化字段 的字符串名称。 Iterable[str]

TextCategorizer.to_bytes 方法

将 pipe 序列化为字节串。

名称描述
仅限关键字
exclude要排除的 序列化字段 的字符串名称。 Iterable[str]

TextCategorizer.from_bytes 方法

从字节串加载 pipe。修改对象并返回它。

名称描述
bytes_data要加载的数据。 bytes
仅限关键字
exclude要排除的 序列化字段 的字符串名称。 Iterable[str]

TextCategorizer.labels 属性

当前添加到组件的标签。

名称描述

TextCategorizer.label_data 属性v3.0

当前添加到组件中的标签及其内部元信息。 这是由 init labels 生成的数据,并由 TextCategorizer.initialize 使用预定义的标签集初始化模型。

名称描述

序列化字段

在序列化期间,spaCy 将导出用于恢复对象不同方面的几个数据字段。如果需要,可以通过 `exclude` 参数传递字符串名称来将它们排除在序列化之外。

名称描述
vocab共享的 `Vocab`。
cfg配置文件。通常您不想排除此文件。
model二进制模型数据。通常您不想排除此数据。