Antes de treinar um modelo com dados de texto, normalmente é necessário processar (ou pré-processar) o texto. Em muitos casos, o texto precisa ser tokenizado e vetorizado antes de ser alimentado a um modelo e, em alguns casos, o texto requer etapas adicionais de pré-processamento, como normalização e seleção de recursos.
Depois que o texto for processado em um formato adequado, você poderá usá-lo em fluxos de trabalho de processamento de linguagem natural (PLN), como classificação de texto, geração de texto, sumarização e tradução.
O TensorFlow fornece duas bibliotecas para processamento de texto e linguagem natural: KerasNLP ( GitHub ) e TensorFlow Text ( GitHub ).
KerasNLP é uma biblioteca de modelagem de PLN de alto nível que inclui todos os modelos mais recentes baseados em transformadores, bem como utilitários de tokenização de nível inferior. É a solução recomendada para a maioria dos casos de uso de PLN. Construído com base no TensorFlow Text, o KerasNLP abstrai operações de processamento de texto de baixo nível em uma API projetada para facilitar o uso. Mas se você preferir não trabalhar com a API Keras ou precisar acessar as operações de processamento de texto de nível inferior, pode usar o TensorFlow Text diretamente.
KerasNLP
A maneira mais fácil de começar a processar texto no TensorFlow é usar o KerasNLP . O KerasNLP é uma biblioteca de processamento de linguagem natural que suporta fluxos de trabalho criados a partir de componentes modulares com pesos e arquiteturas predefinidos de última geração. Você pode usar os componentes do KerasNLP com sua configuração pronta para uso. Se precisar de mais controle, você pode personalizar os componentes facilmente. O KerasNLP fornece computação em grafos para todos os fluxos de trabalho, então você pode esperar uma produção fácil usando o ecossistema do TensorFlow.
O KerasNLP contém implementações completas de arquiteturas de modelos populares, como BERT e FNet . Usando modelos, camadas e tokenizadores do KerasNLP, você pode concluir diversos fluxos de trabalho de PNL de última geração, incluindo tradução automática , geração de texto , classificação de texto e treinamento de modelos de transformadores .
O KerasNLP é uma extensão da API principal do Keras, e cada módulo de alto nível do KerasNLP é uma Layer
ou Model
. Se você conhece o Keras, já entende a maior parte do KerasNLP.
Texto TensorFlow
O KerasNLP fornece módulos de processamento de texto de alto nível, disponíveis como camadas ou modelos. Se precisar de acesso a ferramentas de nível inferior, você pode usar o TensorFlow Text . O TensorFlow Text fornece operações e bibliotecas para ajudar você a trabalhar com strings de texto bruto e documentos. O TensorFlow Text pode realizar o pré-processamento normalmente exigido por modelos baseados em texto e também inclui outros recursos úteis para modelagem de sequências.
Usando o TensorFlow Text, você pode fazer o seguinte:
- Aplique tokenizadores ricos em recursos que podem dividir strings em espaços em branco, separar palavras e pontuação e retornar deslocamentos de bytes com tokens, para que você saiba onde uma string pode ser encontrada no texto de origem.
- Verifique se um token corresponde a um padrão de string especificado. Você pode verificar capitalização, pontuação, dados numéricos e outros recursos do token.
- Combine tokens em n-gramas.
- Processe o texto dentro do gráfico do TensorFlow para que a tokenização durante o treinamento corresponda à tokenização na inferência.
Por onde começar
Os seguintes recursos ajudarão você a começar a usar o processamento de texto do TensorFlow:
- TensorFlow Text : Tutoriais, guias e outros recursos para ajudar você a processar texto usando o TensorFlow Text e o KerasNLP.
- KerasNLP : Documentação e recursos para KerasNLP.
- Tutoriais do TensorFlow : A documentação principal do TensorFlow (este guia) inclui vários tutoriais de processamento de texto.
- Google Machine Learning: Guia de Classificação de Texto : Uma introdução passo a passo à classificação de texto. Este é um bom ponto de partida para quem é iniciante em aprendizado de máquina.