#
Processamento de Linguagem Natural (NLP)

Antes de irmos direto para os modelos Transformers, vamos fazer um rápido esboço sobre o que é processamento de linguagem natural e o porquê nós nos importamos com isso.

##
O que é NLP?

NLP é um campo da linguística e da Aprendizagem de Máquina (ML) focada em entender tudo relacionado a linguagem humana. O objetivo das tarefas de NLP não é apenas entender palavras soltas individualmente, mas ser capaz de entender o contexto dessas palavras.

A seguir uma lista de tarefas comuns de NLP, com alguns exemplos:

- Classificação de sentenças completas: Capturar o sentimento de uma revisão, detectar se um email é spam, determinar se a sentença é gramaticalmente correta ou onde duas sentenças são logicamente relacionadas ou não
- Classificação de cada palavra em uma sentença: Identificar os componentes gramaticais de uma sentença (substantivo, verbo, adjetivo), ou as entidades nomeadas (pessoa, local, organização)
- Geração de conteúdo textual: Completar um trecho com autogeração textual, preenchendo as lacunas em um texto com palavras mascaradas
- Extrair uma resposta de um texto: Dada uma pergunta e um contexto, extrair a resposta baseada na informação passada no contexto
- Gerar uma nova sentença a partir de uma entrada de texto: Traduzir um texto para outro idioma, resumi-lo

NLP não se limita ao texto escrito. Também engloba desafios complexos nos campos de reconhecimento de discurso e visão computacional, tal como a geração de transcrição de uma amostra de áudio ou a descrição de uma imagem.

##
Por que isso é desafiador?

Os computadores não processam a informação da mesma forma que os seres humanos. Por exemplo, quando nós lemos a sentença “Estou com fome”, nós podemos facilmente entender seu significado. Similarmente, dada duas sentenças como “Estou com fome” e “Estou triste”, nós somos capazes de facilmente determinar quão similares elas são. Para modelos de Aprendizagem de Máquina (ML), tarefas como essas são mais difíceis. O texto precisa ser processado de um modo que possibilite o modelo aprender por ele. E porque a linguagem é complexa, nós precisamos pensar cuidadosamente sobre como esse processamento tem que ser feito. Tem se feito muita pesquisa sobre como representar um texto e nós iremos observar alguns desses métodos no próximo capítulo.