文本分类任务指南

界面示例:将正面电影评价作为输入,将五星和竖起大拇指作为输出

借助 MediaPipe 文本分类器任务,您可以将文本分类为一组已定义的类别,例如正面或负面情感。类别是在模型训练期间定义的。此任务将机器学习 (ML) 模型用作静态数据,对文本数据进行操作,并输出类别及其概率得分列表。

试试吧!

开始使用

如需开始使用此任务,请按照适用于您所用平台的以下任一实现指南操作:

这些平台专用指南将引导您完成此任务的基本实现,包括推荐的模型,以及包含推荐配置选项的代码示例。

任务详情

本部分介绍了此任务的功能、输入、输出和配置选项。

功能

  • 输入文本处理 - 为不支持图内词元化的模型支持图外词元化
  • 多个分类头 - 每个头都可以使用自己的类别集
  • 标签映射语言区域 - 设置显示名称所用的语言
  • 得分阈值 - 根据预测得分过滤结果
  • 前 k 个分类结果 - 过滤检测结果的数量
  • 标签许可名单和拒绝名单 - 指定检测到的类别
任务输入 任务输出
文本分类器接受以下输入数据类型:
  • 字符串
文本分类器会输出包含以下内容的类别列表:
  • 类别索引:模型输出中类别的索引
  • 得分:此类别的置信度得分,以介于 0 到 1 之间的概率表示,为浮点值。
  • 类别名称(可选):TensorFlow Lite 模型元数据中指定的类别名称(如果有)。
  • 类别显示名称(可选):TensorFlow Lite 模型元数据中指定的类别显示名称,使用通过显示名称语言区域选项(如果有)指定的语言。

配置选项

此任务具有以下配置选项:

选项名称 说明 值范围 默认值
displayNamesLocale 设置要为任务模型的元数据(如果有)中提供的显示名称使用的标签语言。默认值为 en(英语)。您可以使用 TensorFlow Lite Metadata Writer API 向自定义模型的元数据添加本地化标签 语言区域代码 en
maxResults 设置可选的要返回的得分最高的分类结果的数量上限。如果小于 0,则会返回所有可用的结果。 任何正数 -1
scoreThreshold 设置预测得分阈值,该阈值会替换模型元数据中提供的阈值(如果有)。低于此值的结果将被拒绝。 任何浮点数 未设置
categoryAllowlist 设置允许的类别名称的可选列表。如果不为空,则系统会滤除类别名称不在该集合中的分类结果。系统会忽略重复或未知的类别名称。此选项与 categoryDenylist 互斥,同时使用这两个选项会导致错误。 任何字符串 未设置
categoryDenylist 设置不允许的类别名称的可选列表。如果不为空,系统会滤除类别名称在此集合中的分类结果。系统会忽略重复或未知的类别名称。此选项与 categoryAllowlist 互斥,同时使用这两个选项会导致错误。 任何字符串 未设置

模型

文本分类器可与多个机器学习模型搭配使用。开始使用此任务进行开发时,请先使用针对目标平台的默认推荐模型。其他可用模型通常需要在性能、准确性、分辨率和资源要求之间进行权衡,在某些情况下,还包含额外的功能。

预训练模型经过训练可进行情感分析,并预测输入文本的情感是积极还是消极。这些模型是使用 SST-2(斯坦福情感树银行)数据集训练的,该数据集包含标记为正面或负面的电影评论。请注意,这些模型仅支持英语。由于这些模型是使用电影评论数据集训练的,因此对于涵盖其他主题领域的文本,生成的质量可能会较低。

此模型使用基于 BERT 的架构(具体而言,是 MobileBERT 模型),因其高准确性而备受推荐。它包含允许任务执行图外 BERT 标记化操作的元数据。

模型名称 输入形状 量化类型 版本
BERT 分类器 [1x128],[1x128],[1x128] 动态范围 最新

平均词嵌入模型

此模型使用平均词嵌入架构。与 BERT 分类器相比,此模型的模型大小更小,延迟时间更短,但预测准确性较低。通过额外训练对此模型进行自定义的速度也比对基于 BERT 的分类器进行训练的速度更快。此模型包含元数据,可让任务执行图外正则表达式令牌化。

模型名称 输入形状 量化类型 版本
平均词嵌入 1 x 256 无(float32) 最新

任务基准

以下是基于上述预训练模型的整个流水线的任务基准。延迟时间结果是使用 CPU / GPU 在 Pixel 6 上的平均延迟时间。

模型名称 CPU 延迟时间 GPU 延迟时间
平均字词嵌入 0.14 毫秒 -
BERT 分类器 57.68 毫秒 -

自定义模型

如果您想改进或更改提供的模型的功能,可以在此任务中使用自定义机器学习模型。您可以使用 Model Maker 修改现有模型,也可以使用 TensorFlow 等工具构建模型。与 MediaPipe 搭配使用的自定义模型必须采用 TensorFlow Lite 格式,并且必须包含描述模型运行参数的特定metadata。您应先考虑使用 Model Maker 修改此任务提供的模型,然后再构建自己的模型。