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.
Começar
Para começar a usar essa tarefa, siga um destes guias de implementação para a plataforma em que você está trabalhando:
- Android: exemplo de código
- Python: exemplo de código
- Web: exemplo de código: guia
- iOS: exemplo de código
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:
|
O classificador de texto gera uma lista de categorias que contém:
|
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.
Modelo de classificador BERT (recomendado)
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.