Guia de tarefas de classificação de texto

Exemplo de interface que mostra uma crítica positiva de um filme como entrada e a saída como
cinco estrelas e um polegar
para cima

A tarefa do classificador de texto do MediaPipe permite classificar textos em um conjunto de categorias definidas, como sentimento positivo ou negativo. As categorias são definidas durante o treinamento do modelo. Essa tarefa opera em dados de texto com um modelo de machine learning (ML) como dados estáticos e gera uma lista de categorias e as pontuações de probabilidade.

Teste!

Começar

Para começar a usar essa tarefa, siga um destes guias de implementação para a plataforma em que você está trabalhando:

Esses guias específicos da plataforma mostram uma implementação básica dessa tarefa, incluindo um modelo recomendado e um exemplo de código com opções de configuração recomendadas.

Detalhes da tarefa

Esta seção descreve os recursos, entradas, saídas e opções de configuração desta tarefa.

Recursos

  • Processamento de texto de entrada: oferece suporte à tokenização fora do gráfico para modelos sem tokenização no gráfico.
  • Vários chefes de classificação: cada chefe pode usar o próprio conjunto de categorias.
  • Localidade do mapa de rótulos: defina o idioma usado para os nomes de exibição.
  • Limite de pontuação: filtre os resultados com base nas pontuações de previsão.
  • Resultados de classificação top-k: filtre o número de resultados de detecção.
  • Lista de permissões e de bloqueio de rótulos: especifique as categorias detectadas.
Entradas da tarefa Saídas de tarefas
O classificador de texto aceita o seguinte tipo de dados de entrada:
  • String
O classificador de texto gera uma lista de categorias que contém:
  • Índice da categoria: o índice da categoria nas saídas do modelo
  • Pontuação: a pontuação de confiança para essa categoria, expressa como uma probabilidade entre zero e um como valor de ponto flutuante.
  • Nome da categoria (opcional): o nome da categoria conforme especificado nos metadados do modelo do TensorFlow Lite, se disponível.
  • Nome de exibição da categoria (opcional): um nome de exibição para a categoria, conforme especificado nos metadados do modelo do TensorFlow Lite, no idioma especificado pelas opções de localidade de nomes de exibição, se disponível.

Opções de configuração

Esta tarefa tem as seguintes opções de configuração:

Nome da opção Descrição Intervalo de valor Valor padrão
displayNamesLocale Define o idioma dos rótulos a serem usados para os nomes de exibição fornecidos nos metadados do modelo da tarefa, se disponível. O padrão é en para o inglês. É possível adicionar rótulos localizados aos metadados de um modelo personalizado usando a API Writer de metadados do TensorFlow Lite. Código de localidade en
maxResults Define o número máximo opcional de resultados de classificação com a maior pontuação a serem retornados. Se for < 0, todos os resultados disponíveis serão retornados. Qualquer número positivo -1
scoreThreshold Define o limite de pontuação de previsão que substitui o fornecido nos metadados do modelo (se houver). Resultados abaixo desse valor são rejeitados. Qualquer ponto flutuante Não definido
categoryAllowlist Define a lista opcional de nomes de categorias permitidos. Se não estiver vazio, os resultados de classificação cujo nome de categoria não estiver neste conjunto serão filtrados. Nomes de categorias duplicados ou desconhecidos são ignorados. Essa opção é mutuamente exclusiva com categoryDenylist, e o uso de ambas resulta em um erro. Qualquer string Não definido
categoryDenylist Define a lista opcional de nomes de categorias não permitidos. Se não estiver vazio, os resultados de classificação cujo nome de categoria estiver neste conjunto serão filtrados. Nomes de categorias duplicados ou desconhecidos são ignorados. Essa opção é mutuamente exclusiva de categoryAllowlist, e o uso das duas resulta em um erro. Qualquer string Não definido

Modelos

O classificador de texto pode ser usado com mais de um modelo de ML. Comece com o modelo padrão recomendado para a plataforma de destino quando começar a desenvolver com essa tarefa. Os outros modelos disponíveis geralmente fazem trocas entre desempenho, precisão, resolução e requisitos de recursos e, em alguns casos, incluem recursos adicionais.

Os modelos pré-treinados são treinados para análise de sentimento e preveem se o sentimento do texto de entrada é positivo ou negativo. Os modelos foram treinados no conjunto de dados SST-2 (Stanford Sentiment Treebank), que consiste em avaliações de filmes marcadas como positivas ou negativas. Os modelos só são compatíveis com o inglês. Como eles foram treinados em um conjunto de dados de críticas de filmes, a qualidade do texto que abrange outras áreas de tópicos pode ser reduzida.

Esse modelo usa uma arquitetura baseada em BERT (especificamente, o modelo MobileBERT) e é recomendado devido à alta precisão. Ele contém metadados que permitem que a tarefa realize a tokenização de BERT fora do gráfico.

Nome do modelo Forma de entrada Tipo de quantização Versões
Classificador BERT [1x128],[1x128],[1x128] intervalo dinâmico Mais recente

Modelo de embedding de palavras médio

Esse modelo usa uma arquitetura média de embedding de palavras. Esse modelo oferece um tamanho menor e latência menor, mas com uma precisão de previsão menor em comparação com o classificador BERT. Personalizar esse modelo com mais treinamento também é mais rápido do que treinar o classificador baseado em BERT. Esse modelo contém metadados que permitem que a tarefa realize a tokenização de regex fora do gráfico.

Nome do modelo Forma de entrada Tipo de quantização Versões
Incorporação média de palavras 1 x 256 Nenhum (float32) Mais recente

Comparações de mercado de tarefas

Confira os comparativos de mercado da tarefa para todo o pipeline com base nos modelos pré-treinados acima. O resultado da latência é a latência média no Pixel 6 usando CPU / GPU.

Nome do modelo Latência da CPU Latência da GPU
Embedding médio de palavras 0,14 ms -
Classificador BERT 57,68 ms -

Modelos personalizados

Você pode usar um modelo de ML personalizado com essa tarefa se quiser melhorar ou alterar os recursos dos modelos fornecidos. Você pode usar o Model Maker para modificar os modelos existentes ou criar um modelo usando ferramentas como o TensorFlow. Os modelos personalizados usados com o MediaPipe precisam estar no formato TensorFlow Lite e incluir metadata específicos que descrevem os parâmetros operacionais do modelo. Considere usar o Model Maker para modificar os modelos fornecidos para essa tarefa antes de criar o seu.