Guia de tarefas de classificação de texto

A tarefa MediaPipe Text Classifier permite que você classifique o texto 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 delas.

Faça um teste.

Comece já

Comece a usar essa tarefa seguindo um destes guias de implementação para a plataforma em que você está trabalhando:

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

Detalhes da tarefa

Nesta seção, descrevemos os recursos, as entradas, as saídas e as 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 líderes de classificação: cada cabeça pode usar seu próprio conjunto de categorias.
  • Localidade do mapa do marcador: define 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 da classificação Top-k: filtra o número de resultados de detecção.
  • Lista de permissões e bloqueio de marcadores: especificar as categorias detectadas.
Entradas de tarefas Saídas de tarefas
O classificador de texto aceita os seguintes tipos de dados de entrada:
  • String
O classificador de texto gera uma lista de categorias que contém:
  • Índice da categoria: o índice da categoria nos resultados do modelo
  • Pontuação: a pontuação de confiança dessa categoria, expressa como uma probabilidade entre zero e um como valor de ponto flutuante.
  • Nome da categoria (opcional): o nome da categoria especificado nos metadados do modelo do TensorFlow Lite, se disponíveis.
  • 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 por meio das opções de localidade de nomes de exibição, se disponíveis.

Opções de configuração

Essa 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 ser usado para nomes de exibição fornecidos nos metadados do modelo da tarefa, se disponível. O padrão é en para inglês. É possível adicionar rótulos localizados aos metadados de um modelo personalizado usando a API TensorFlow Lite Metadata Writer Código da localidade en
maxResults Define o número máximo opcional de resultados de classificação com a melhor pontuação a ser retornado. Se < 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). Os resultados abaixo desse valor são rejeitados. Qualquer ponto flutuante Não definido
categoryAllowlist Define a lista opcional de nomes de categorias permitidas. Se não estiver em branco, os resultados de classificação com nome de categoria que não estiver nesse conjunto serão filtrados. Nomes de categoria duplicados ou desconhecidos são ignorados. Essa opção é mutuamente exclusiva com categoryDenylist, e o uso de ambos resulta em um erro. Qualquer string Não definido
categoryDenylist Define a lista opcional de nomes de categorias que não são permitidos. Se não estiver em branco, os resultados de classificação com o nome de categoria nesse conjunto serão filtrados. Nomes de categoria duplicados ou desconhecidos são ignorados. Essa opção é mutuamente exclusiva com categoryAllowlist, e o uso de ambos 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 ao começar a desenvolver com essa tarefa. Os outros modelos disponíveis normalmente compensam os requisitos de desempenho, precisão, resolução e recursos e, em alguns casos, incluem outros recursos.

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 com o conjunto de dados SST-2 (Stanford Sentiment Treebank), que consiste em avaliações de filmes rotuladas como positivas ou negativas. Os modelos aceitam apenas o inglês. Como eles foram treinados em um conjunto de dados de avaliações de filmes, você poderá notar uma qualidade reduzida para textos que cobrem outras áreas.

Esse modelo usa uma arquitetura baseada em BERT (especificamente, o modelo MobileBERT) e é recomendado por causa da alta acurácia. Ele contém metadados que permitem que a tarefa execute a tokenização BERT fora do gráfico.

Nome do modelo Forma de entrada Tipo de quantização Versions
Classificador BERT [1x128],[1x128],[1x128] Dynamic Range Mais recente

Modelo médio de embedding de palavras

Esse modelo usa uma arquitetura média de incorporação de palavras. Esse modelo oferece um tamanho menor e latência menor ao custo de uma acurácia de previsão menor em comparação com o classificador BERT. Personalizar esse modelo com treinamento adicional também é mais rápido do que fazer o treinamento do classificador baseado em BERT. Esse modelo contém metadados que permitem que a tarefa execute a tokenização de regex fora do gráfico.

Nome do modelo Forma de entrada Tipo de quantização Versions
Média de embedding de palavras 1 x 256 Nenhum (float32) Mais recente

Comparativos de mercado de tarefas

Aqui estão os comparativos de mercado de tarefas 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
Média de embedding de palavras 0,14 ms -
Classificador BERT 57,68 ms -

Modelos personalizados

Use um modelo de ML personalizado com essa tarefa se você quiser melhorar ou alterar os recursos dos modelos fornecidos. É possível 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 metadados específicos que descrevam os parâmetros operacionais do modelo. Considere usar o Model Maker para modificar os modelos fornecidos para essa tarefa antes de criar seu próprio modelo.