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.
Comece já
Comece a usar essa tarefa seguindo um destes guias de implementação para a plataforma em que você está trabalhando:
- Android: exemplo de código - Guia
- Python: exemplo de código - Guia
- Web – Exemplo de código – Guia
- iOS - Exemplo de código - Guia
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:
|
O classificador de texto gera uma lista de categorias que contém:
|
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.
Modelo do classificador BERT (recomendado)
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.