Introdução

Concluído

Neste módulo, exploraremos diferentes arquiteturas de rede neural para lidar com textos de linguagem natural. Nos últimos anos, o NLP (Processamento de Linguagem Natural) tem experimentado um rápido crescimento principalmente devido ao desempenho da capacidade dos modelos de linguagem de "entender" a linguagem humana com precisão mais rapidamente ao usar o treinamento não supervisionado em grandes corporações de texto. Por exemplo, a geração de sentenças usando modelos de texto GPT-3 ou pré-treinados, como BERT, simplificava muitas tarefas NLP e melhorou drasticamente o desempenho.

Vamos nos concentrar nos aspectos fundamentais da representação da PNL como tensores no PyTorch e nas arquiteturas clássicas da PNL, como o uso de BoW (bag-of-words), incorporação de palavras, redes neurais recorrentes e redes generativas.

Tarefas de Linguagem Natural

Há várias tarefas de NLP que tradicionalmente tentamos resolver usando redes neurais:

  • A Classificação de Texto é usada quando precisamos classificar o fragmento de texto em uma das várias classes pré-definidas. Os exemplos incluem detecção de spam por email, categorização de notícias, atribuição de solicitação de suporte a uma das categorias e muito mais.
  • A Classificação de Intenção é um caso específico de classificação de texto, quando queremos mapear o enunciado de entrada no sistema de IA conversacional em uma das intenções que representam o significado real da frase ou intenção do usuário.
  • A Análise de Sentimentos é uma tarefa de regressão, em que queremos entender o grau de negatividade de um determinado trecho de texto. Talvez queiramos rotular textos em um conjunto de dados do mais negativo (-1) ao mais positivo (+1) e treinar um modelo que produzirá um número de "positividade" de um texto.
  • O NER (Reconhecimento de Entidade Nomeada) é uma tarefa de extrair algumas entidades do texto, como datas, endereços, nomes de pessoas, etc. Juntamente com a classificação de intenção, o NER é frequentemente usado em sistemas de diálogo para extrair parâmetros do enunciado do usuário.
  • Uma tarefa semelhante de extração de palavras-chave pode ser usada para encontrar as palavras mais significativas dentro de um texto, que podem ser usadas como marcas.
  • O Resumo de Texto extrai as partes mais significativas do texto, fornecendo ao usuário uma versão compactada que contém a maior parte do significado.
  • Pergunta/Resposta é uma tarefa para extrair uma resposta de um trecho de texto. Esse modelo recebe um fragmento de texto e uma pergunta como entrada e precisa encontrar o lugar exato no texto que contém a resposta. Por exemplo, o texto "João é um estudante de 22 anos que adora usar o Microsoft Learn", e a pergunta Quantos anos tem João deve nos fornecer a resposta 22.

Para o escopo deste módulo, focaremos principalmente na tarefa de classificação de texto. Usaremos o texto das manchetes das notícias para classificar a qual das 4 categorias elas pertencem: Mundo, Esportes, Negócios e Ciência/Tecnologia. Também apresentaremos modelos generativos que podem produzir sequências de texto semelhantes a humanos.

Objetivos de aprendizagem

Neste módulo, você vai:

  • Entenda como o texto é processado para tarefas de processamento de linguagem natural
  • Introdução ao uso de RNNs (redes neurais recorrentes) e GNNs (redes neurais generativas)
  • Saiba como criar modelos de classificação de texto

Pré-requisitos

  • Conhecimento básico em Python
  • Conhecimento básico sobre como usar Jupyter Notebooks
  • Noções básicas sobre machine learning