IBM Cloud Docs
句子分类

句子分类

IBM Cloud

语句分类是仅在受管部署中可用的 Beta 功能。 此外,该功能仅可用于英语文档。

使用句子分类可对文档中具有重大业务兴趣的句子进行分类。

句子分类使用机器学习模型,该模型根据用户定义的句子类对句子进行分类。 您可以在文档中标注示例句子以定义句子类。 为加快标注过程,系统在后台自动准备建议模型,为您提供更多句子标注建议。

准备工作

查找或创建包含您希望 Discovery 了解的各种语句示例的文档的集合。 要教授句子分类器,必须标注句子类的示例。 仅当集合包含有效的示例时,才能标注示例。 尝试查找具有许多不同句子的文档,这些句子充当要定义的每个句子类的示例。

添加句子分类器

要添加句子分类词,请完成以下步骤:

  1. 打开您要创建句子分类器的项目。

    该项目必须至少有一个集合,其中包含代表您要分类的数据的文档。

  2. 从“改进和定制”页面的“改进工具”面板中,展开 Teach 域概念,然后单击 语句分类器

  3. 单击新建

  4. 添加语句分类器名称和 (可选) 描述。

    此名称用作模型名称,并用作发布模型时创建的扩充项的名称。 此名称在“扩充项”页面中显示为扩充项名称,您和其他人可以在此页面中将其应用于集合。 它还显示为在其中找到语句类的文档的 JSON 表示中的模型名称。 该名称与您指定的大写和空格一起存储。

  5. 选择具有代表要分类的数据的文档的集合。

  6. 从文档中选择要在文档视图中显示的字段,您将在该文档视图中标注集合中的文档。

    • 文档标题 在页眉中显示为文档名称。 选择每个文档具有唯一值的字段,例如存储在 extracted_metadata.filename 字段中的文件名。
    • 文档主体 是在内容中标注语句示例的位置。 选择包含大量文档内容的字段,例如 text 字段。
  7. 单击创建

您选择的集合中的文档将显示在“标签文档”视图中。 您将标注您希望 Discovery 从此文档和集合中的其他文档识别的语句类的出现。

如果页面正文中未显示任何文本,请从现在开始创建新的语句分类器。 此时间,当您为 文档主体 字段选择值时,请确保从包含文本的已处理文档中选择一个字段。

定义语句类

通过完成以下步骤来定义语句类:

  1. 单击 添加句子类

  2. 添加语句类名和可选描述。

  3. 可选: 选取要用于文档中的句子类的颜色。

    您可以单击 标签颜色 选用板中的颜色,单击 更新颜色 图标以从一种颜色切换到下一种颜色。 要使用定制颜色,请指定其十六进制颜色代码 (#fff0f7)。

  4. 单击创建

  5. 重复此过程以添加您希望分类器分类的所有语句类。

    如果您不确定要为句子类添加什么,那么可能有助于首先查看集合中的文档。 通过查看内容,您可以了解哪些句子具有重要意义,并寻找对此类句子进行分类的逻辑方法。

标注句子

标签文档 视图中,从集合中查找文档中的句子,并对其进行标签以指示其句子类。 在标记时,语句分类器会自动在后台训练模型以提供标记建议。

标注建议加快了标注文档的过程。 通过标注建议,您可以轻松查找相关示例并在上下文中进行检查,而不是浏览文档和花费时间阅读文本。

您可以通过以下方式标注句子:

与实体抽取器不同,对于语句分类器,没有文档状态概念,例如 未启动正在进行完成。 对于实体抽取器,将文档标记为 完成 以指示它们用于训练。 对于句子分类器,仅使用标注的句子进行训练,而忽略每个文档中未标注的数据。

用于训练的数据
特征 用于训练的内容
实体抽取器 标记为“完成”的所有文档
语句分类器 所有标注的句子 (未标注的句子不使用)

手动标记

要手动贴标签,请完成以下步骤:

  1. 阅读“标签文档”页面中显示的文档,以找到要标签的相应语句示例。

  2. 选择句子示例,然后单击 编辑标签 图标。

  3. 从列表中选择一个句子类以将示例语句标记为正标签。

    要将示例语句标记为负标签,请在列表中选择语句类时按 Shift 键。

    如果找不到相应的语句示例,请从 文档列表中选择其他文档。

    显示具有正面和负面示例标签的文档的摘录。
    Labeled sentence examples

  4. 重复这些步骤以在集合的其他文档中将示例语句标记为正或负。

标记时,单击 保存语句分类器 以保存您的工作。 如果从“标签文档”页面移至其他页面,那么系统会自动保存您的工作。

使用快捷键进行快速标记操作。 按键 1 到 5 对应于列表中显示的句子类,以将示例句子标记为正标签。 同样,按键 6 到 0 以添加负标签。 您可以按 Delete 键或 Backspace 键以从所选句子中除去标签。

查找文档标签

通过使用搜索功能,您可以在文档中找到语句示例并对其进行轻松标记。 您还可以使用搜索来查找标注的示例和未标注的示例,并更正任何标注不一致的情况。

要查找示例并在文档中对其进行标签,请完成以下步骤:

  1. 在“标签文档”视图上,单击 查找 图标。

  2. 查找 字段中,指定要在文档中搜索的文本。

    当您输入文本时,将显示来自文档的搜索结果。

    要浏览搜索结果,可以单击 下一个结果上一个结果 图标。 要为结果中未标记的示例选择标签,请单击 编辑标签 图标,然后从列表中选择一个句子类。 您还可以通过单击 编辑标签 图标并选择 除去标签,从结果中已标记的示例中除去标签。

    显示搜索结果。
    搜索结果

  3. 要过滤搜索结果,请单击 显示过滤器选项 图标。

    下表描述了过滤选项。

    查找中的过滤器选项
    选项 描述
    全部 在文档中查找与文本匹配的所有示例。
    带标签的文本 在文档中查找与文本匹配的现有已标记示例。
    未标注的文本 在文档中查找与文本匹配的未标记示例。
    匹配个案 查找与文本及其大小写都匹配的示例。
    全字 查找与文本的词边界相匹配的示例。 例如,如果在文本中指定 安装,那么当选择此选项时,卸载 将不匹配。
    1. 重复这些步骤以在集合的其他文档中标注示例语句。

智能标记

智能标注功能使用主动学习技术来建议您可以标注的句子示例。 智能标注加快了标注过程,但您必须先为每个句子类标注至少 20 个示例,以便系统可以构建建议模型。

要使用智能标签,请完成以下步骤:

  1. 为至少一个句子类标注至少 20 个正面示例。

    系统会在后台自动开始准备建议模型。

    在建议模型的某个版本就绪后,系统会提供建议,以标注下一个句子。 标注建议有助于最大限度地改进句子分类器模型。

  2. 单击 使用智能标签

    智能标签
    智能
    *

    此时将显示“智能标记”窗格。 在此窗格中,您可以为特定句子类标注句子。

  3. 从建议的 示例中选择一个示例,然后单击 以将示例语句标记为正标签。 您可以单击 以将示例语句标记为负标签。

    智能标签
    智能标签
    * 智能标签窗格

  4. 重复上一步以标注其他建议的示例。

    要刷新列表中建议的示例,请单击 刷新建议。 将使用新建议刷新列表,并且列表中不会显示现有已标记的示例。

  5. 在标注句子后单击 完成

    如果当前文档集中没有足够的语句示例,那么可以添加更多文档。 仅当集合中有更多文档时,此选项才可用。 有关更多信息,请参阅 向训练数据添加文档

  6. 在集合中任意数量的文档中标注示例后,单击 保存语句分类器,然后训练分类器。 有关更多信息,请参阅 训练分类器

智能标签提示

请记住以下有关智能标注的提示:

  • 使用快捷键进行快速标记操作。 可以按左箭头键选择“是”,也可以按右箭头键选择“否”。 选择“是”或“否”等同于为句子类指定正标签或负标签。

  • 要将示例语句标记为正标签,请按键 1 到 5,对应于列表中显示的语句类。 同样,按键 6 到 0 以添加负标签。 您可以按 Delete 键或 Backspace 键以从所选句子中除去标签。

  • 如果某个示例与当前句子类无关,请将该示例标记为负数,而不是将其保留为不带标签。 未标记的数据将被忽略,并且不用于训练,因此指定负标签对于改进分类模型很重要。

  • 如果在训练最后一个建议模型后标注了 20 个或更多示例 (正或负标签),那么系统会自动开始在后台构建新的建议模型。 当新建议准备好进行标记时,将通知您。

向训练数据添加文档

要添加更多文件,请完成以下步骤:

  1. 浏览至“标签文档”视图。
  2. 在“文档列表”面板中,单击 添加文档

当集合中没有要添加到语句分类器工作空间的其他文档时,此选项不可用。 要将更多文档添加到集合,请浏览到集合的“活动”页面,然后单击 上载数据 磁贴以浏览并添加更多文档。

即使从集合中添加更多文档,所有文档也可能用于也可能不用于训练模型。 与将所有已完成文档用于训练的实体抽取器不同,句子分类器仅将标记的句子用于训练,而未标记的数据将被忽略。

不能从集合中选择要在“文档列表”面板中显示的文档以进行标记。 如果要标记特定类型的文档,请考虑创建仅包含这些文档的新集合。

训练分类器

对文档添加标签后,可以在“训练分类器”视图中查看训练数据。 训练数据用于训练语句分类器模型。

要训练分类器,请完成以下步骤:

  1. 浏览至“训练分类器”视图。

  2. 查看标记摘要以检查是否标记了足够的标签来训练分类器。

    要训练分类器,每个句子类必须至少有 20 个正标签和两个负标签。 否则,训练分类器 按钮将处于禁用状态,您无法开始训练。 将忽略没有正标签或负标签的语句类。

  3. 查看是否要应用高级选项以进行训练。 大多数模型不需要对高级选项进行更改。

    您的句子会随机拆分为多个集合。 训练集用于训练分类器。 测试集用于测试经过训练的模型。 盲集有你在训练中看不到的保留句子。 它们用于定期生成模型的无偏评估。 缺省拆分使用标准比率进行训练。 有关更多信息,请参阅 用于训练的文档集

  4. 单击 训练分类器

    训练分类器时,Discovery 使用训练集中的语句来构建机器学习模型。 将显示测试结果,供您在“评估分类器”视图中查看。

用于培训的文档集

您可以更改构成训练数据的文档集中包含的句子的比率。

您标注的句子会随机拆分为以下集合:

  • 训练集: 您标注并用于训练句子分类器机器学习模型的句子。 训练集的目标是教授模型有关正确标签的信息。

  • 测试集: 用于测试已训练模型的语句。 生成模型后,它会自动对测试集中的文档运行测试。 您可以分析结果以确定模型出错的区域,并找到提高模型性能的方法。

  • 盲集: 在完成几次测试和改进的迭代后,用于定期测试模型的句子。 盲集中的句子是故意被打掉的。 使用测试集中的句子测试模型并分析结果时,您将熟悉底层测试句子。 由于测试句子被反复用于改进模型,它们开始间接影响模型训练。 这就是为什么你可能想要有盲目的一组句子。 盲集为您提供了一种定期生成模型无偏评估的方法。

对于训练集,缺省拆分比率为 70%,对于测试集,缺省拆分比率为 30%,对于盲集,缺省拆分比率为 0%。 您可以通过增加盲集的比率来拥有盲集的句子。 在这种情况下,“评估分类器”视图的分类器评分表中的数字 (例如,False 正False 负等) 与“复审训练结果”视图中显示的语句数不匹配。 这是因为在评估时将考虑盲集中的句子,但这些句子不会显示在“复审训练结果”视图中。

评估分类器

要从您创建的语句分类器模型的测试运行中查看度量值,请单击 评估分类器 选项卡。

下表描述了可用的评估指标。

度量详细信息
度量 描述
混淆矩阵 该表格提供了带标签句子的详细数字细分。 使用它将机器学习模型所标记的内容与训练数据中所标记的内容进行比较。
F1 得分 度量是否达到精度与召回率之间的最佳平衡。 F1 分数可以解释为精度和召回率值的加权平均值。 F1 分数的最佳值为 1,最差值为 0。 如果模型没有足够的训练数据可供学习,那么总体得分较低。
精度 度量多少个整体句子被归类为正确的句子类。 误判是指不应对句子进行分类,但对句子进行了分类 (预测 = 正,实际 = 负)。 误报通常意味着低精度。
查全率 度量应分类的句子的分类频率。 假负数是应该对句子进行分类,但未进行分类的时候 (Predicted = Negative,Actual = positive)。 假否定通常表示低召回率。
  1. 查看提供的有关分类器模型测试运行的度量值,以确定是否需要更多训练。

  2. 通过单击 查看测试集中的训练结果来更详细地浏览测试结果。

    查看测试集中的训练结果* 查看测试集中的训练结果*
    测试
    的训练结果

    将显示来自测试集的句子以及在左侧窗格上的列表中显示的实际标签和预测标签。 如果单击列表中的语句,那么该语句将显示在右侧窗格的文档视图中。

    • 实际标签是人员手动标记的示例。 它们被视为正确的标签。
    • 预测标签是句子分类器识别并标记为句子类的示例。

    根据预测标签与实际标签的匹配程度,对模型的性能进行评级。

  3. 要过滤列表,请单击 过滤器 图标,然后选择 语句类预测,然后单击 应用

查看绩效细目中的培训结果

要查看性能细分的训练结果,请完成以下步骤:

  1. 单击 按句子类分类的性能细目 表中的数字。

    此时将显示 复审训练结果 对话框。

  2. 复审相关句子,这些句子基于您单击的数字。

改进分类器

下表显示了常见问题的建议修订。

改进操作
问题 补救问题的操作
总体评分较低 您的训练集中可能没有足够的带标签的句子。 在更多文档中标注更多句子。
低查全率 使用分类器缺失要分类的语句类的新示例来标注更多文档。 复审假否定句子以检查它们之间是否有唯一的术语。 如果您看到此类唯一术语,请搜索包含此类术语的句子并向其添加正标签。
低精确率 请仔细复查误判。 您可能未对某些句子进行标注。 特别是,检查带有负标签的句子。 当某个句子具有特定句子类 (例如,A 类) 的负标签时,请检查另一个句子类 (例如,B 类) 是否需要正标签。 如果句子实际上属于 B 类,但你没有为它指定一个正的 B 类标签,那么它就可以降级精度分数。 此外,如果您发现通常出现在假正句中的词汇,请使用这些词汇指定句子的负标签。

将语句分类器发布为扩充项

当您认为句子分类器已就绪时,请发布句子分类器模型。 在您进行改进的几次测试运行后,如果分数未更改,那么您可以认为模型已就绪。 您可以返回以在发布模型后对其进行更新和重新训练。

要发布句子分类器,请完成以下步骤:

  1. 浏览至“评估分类器”视图,然后单击 发布分类器
  2. 单击发布
  3. 点击 “应用数据”。
  4. 选择集合,然后选择要应用语句分类器扩充项的文本字段。
  5. 单击应用

下载语句分类器模型

您在一个项目中创建和部署的语句分类器模型可用作可应用于同一服务实例中任何项目的集合的扩充项。

如果要从另一个服务实例使用项目中的语句分类器模型,那么可以导出或下载语句分类器模型。 要将其用于其他位置,请遵循 使用导入的 ML 模型来查找定制术语 中的步骤来创建机器学习模型。 无法继续编辑导入到另一个项目中的语句分类器。

必须对要导出的语句分类器进行完整训练。

要导出句子分类器,请完成以下步骤:

  1. 使用要导出的语句分类器打开项目。

  2. 从“改进和定制”页面的“改进工具”面板中,展开 Teach 域概念,然后单击 语句分类器

  3. 语句分类器 列表中,找到要导出的语句分类器。

  4. 单击分类器的 操作 图标,然后选择 下载模型 以将模型保存到系统。

    除非已训练模型,否则 下载模型 选项不可用。

语句分类器模型保存为 .sc 文件。 您可以将其作为机器学习模型导入到另一个服务实例中的项目中,然后将其应用于集合。

下载语句分类器的标签数据

您可以从 Discovery下载或导出语句分类器的带标签数据。 可以使用导出的带标签数据在服务 (例如 Watson Studio 和 Natural Language Processing (NLP)) 上训练或构建大型语言模型 (LLM)。

要导出已标记的数据,请完成以下步骤:

  1. 从“改进和定制”页面的“改进工具”面板中,展开 Teach 域概念,然后单击 语句分类器

  2. 对于要从中导出带标签数据的语句分类器,单击 操作 图标,然后选择 下载带标签数据

    将下载带有标签数据的压缩文件。 压缩文件包含以下JSON文件。

    • labeled_data.json: 包含文本和标签。 数据格式基于 Watson Natural Language Processing 中文本分类的输入数据格式。 有关更多信息,请参阅 输入数据格式
    • metadata.json: 包含工作空间的元数据和带标签的数据。

labeled_data.json 转换为 CSV

输入以下命令以将 labeled_data.json 转换为 CSV:

$ cat labeled_data.json | jq -r '.[] | [.text, .labels[]] | @csv'

标签数据将转换为以下格式:

    "sentence1", class-label1, class-label2
    "sentence2", class-label3
    "sentence3", ...
    ...

应用句子分类器扩充项

发布语句分类器时,指定要应用语句分类器的字段。

要在以后对不同或更多字段应用增益,请完成以下步骤:

  1. 在导航面板中,单击 管理集合

  2. 单击以打开要在其中应用扩充项的集合。

  3. 单击 扩充

  4. 在列表中查找语句分类器名称,然后选择要应用扩充项的字段。

    您可以选择包含文本或 HTML 的字段。

  5. 单击应用更改并重新处理

有关如何将语句分类器扩充项应用于集合的更多信息,请参阅 管理扩充项

语句分类器输出

当扩充项对文档中的某个句子进行分类时,将向文档的 JSON 表示的 enriched_text.element_classes 部分添加一个条目。 此部分包含由分类器模型分类的句子及其句子类。

句子分类器不会对置信度分数低于 0.5的句子进行分类。

以下 JSON 输出是语句分类的示例结果。

以 JSON 输出为例显示
JSON
*

监视一段时间内的性能

您可以随时重新训练语句分类器模型。 每次训练模型时,请查看性能指标得分,以确定最近的更改是增加还是减少模型的得分。

要将一个测试运行与另一个测试运行进行比较,请单击“评估分类器”视图中的 查看评分历史记录。 历史记录视图显示最近一次 5 训练运行。

To retain the score information for more than the most recent 5 training runs, you can export the metrics in comma-separated value format, and track the scores in a separate application. Click the tabular representation icon ![Tabular representation icon](images/table-of-contents.svg), and then click **Download as CSV**.
{: tip}

如果后续训练运行导致分数降低,请不要发布该版本的模型。

删除语句分类器

如果语句分类器未在使用中 (例如,未将从语句分类器发布的扩充项应用于集合时),那么可以将其删除。

例如,如果达到套餐允许的最大句子分类器数的限制,那么您可能想要删除句子分类器。

有两个不同的限制,即最大语句分类器工作空间数和最大语句分类器扩充项数。 当您浏览到“改进工具”面板时,创建句子分类器工作空间,展开 Teach 域概念,单击 句子分类器,然后单击 新建 按钮。 在发布已训练的句子分类器或上载句子分类器模型时,可以创建句子分类器扩充项。 有关限制的信息,请参阅 语句分类器限制

请记住,限制是针对每个服务实例定义的,而不是针对每个项目定义的。 如果当前项目中没有最大数量的句子分类器,但无法创建新的句子分类器工作空间或发布经过训练的句子分类器,请检查同一服务实例中的其他项目。 可能存在可以删除的其他项目中未使用的语句分类器工作空间或扩充项。

除去语句分类器扩充项

从正在使用语句分类器的任何集合中除去从要删除的语句分类器发布的语句分类器扩充项。 有关更多信息,请参阅 删除扩充项

除去语句分类器扩充不会除去其工作空间。

除去语句分类器工作空间

要删除句子分类器工作区,请完成以下步骤:

  1. 从“改进和定制”页面的“改进工具”面板中,展开 Teach 域概念,然后单击 语句分类器

  2. 找到要删除的语句分类器工作空间,单击 操作 图标,然后选择 删除

除去语句分类器工作空间不会除去从工作空间发布的扩充项。

将 API 用于语句分类器

语句分类器 API 是 Beta 功能。

您可以使用 API 将语句分类器扩充应用于文档。 通过使用 API,您可以创建句子分类器扩充项,还可以管理扩充项,例如更新和删除该扩充项。

要使用句子分类器 API,请执行以下操作:

  1. 使用 API 中的 create an enrichment 方法创建语句分类器扩充项。

    有关创建扩充项的更多信息,请参阅 API 参考中的 创建扩充项

    创建语句分类器扩充项时,必须指定用于训练语句分类器模型的带标签数据。 标注的数据必须采用以下 CSV 格式:

    "sentence1", class-label1, class-label2
    "sentence2", class-label3
    "sentence3", ...
    ...
    

    每行都是一个句子,后跟与该句子关联的零个或多个句子类标签的逗号分隔列表。

    作为最佳实践,CSV 文件中的每个句子类标签都应至少由 100 个句子表示,以实现合理质量的句子分类。 与句子类标签关联的句子被视为该句子类的正面示例。 未与句子类标签关联的句子被视为该句子类的负面示例。

    成功创建语句分类器扩充项后,浏览至“管理集合”页面,选择集合,然后打开 扩充项 选项卡。 您可以在可用扩充项列表中找到语句分类器扩充项。

    在语句分类器扩充项 状态 就绪后,可以将语句分类器扩充项应用于集合中的文档。

  2. 将您创建的句子分类器扩充项应用于文档中的字段 (文本或 HTML) 以对句子进行分类。 有关应用扩充项和使用 API 管理扩充项的更多信息,请参阅 使用 API 来管理扩充项

语句分类器限制

每个服务实例可创建的语句分类器数取决于 Discovery 套餐类型。

语句分类器限制
计划 每个服务实例的语句分类器工作空间 每个服务实例的语句分类器扩充项 每个分类器的最大语句类数 训练数据中的最大文档数
Premium 10 20 5 1,000 小时
企业 10 20 5 1,000 小时
加号 (包括试用) 3 5 3 200