O que é NLP e como as máquinas podem entender nossa linguagem
O Processamento de Linguagem Natural ou NLP (do Inglês - Natural Language Processing) é o campo de estudo focado nas interações entre a linguagem humana e os computadores. Se trata de um campo de característica mista compreendendo um pouco de diversas áreas como Linguística, Ciências da Computação, Inteligência artificial e Linguagem computacional.
Atualmente, tem-se observado um hype em relação a presença cada vez maior da inteligência artificial em diversos segmentos da nossa sociedade. As aplicações desta área podem ser vistas em nossos smartphones, ferramentas de busca como o Google e sistemas de recomendação que curiosamente entendem, de alguma forma, como temos nos comportado na internet (quem nunca se perguntou: "como o meu celular sabe que eu estou querendo comprar um liquidificador!?"). Isto nos leva a pensar: “mas afinal...como isso ocorre? e como isto se relaciona com inteligência artificial, machine learning (aprendizado de máquina) ou deep learning (aprendizagem profunda)?” O uso destes termos vem sendo utilizado em uma espécie de "salada" causando confusão entre as pessoas. Entretanto, existe uma ordem de classificação entre estes campos que nos ajuda a compreender suas separações e suas relações.
Vamos diferenciar: NLP é Inteligência Artificial ou Machine Learning ou Deep Learning?
Aparentemente, ainda não existe uma definição ou um encaixe da NLP em alguma destas áreas de forma tão precisa. Ela, na verdade, flutua entre todos os 3 campos. Primeiramente precisamos entender a diferenciação destas áreas e depois verificar onde a NLP se encaixa ou parcialmente se encaixa.
As primeiras concepções sobre inteligência artificial se iniciaram dentro da filosofia na tentativa de descrever o pensamento como um sistema simbólico observando-se seus primeiros usos em meados da década de 50 na Universidade de Hannover por John McCarthy. Hoje em dia se concebe a Inteligência Artificial como um grande campo que contém Machine Learning como subcampo que, por sua vez, possui o deep learning como subcampo. Entende-se assim, a Inteligência Artificial como uma grande área onde estão alocados os campos machine learning e deep learning. Abaixo, vemos uma representação da relação de pertencimento entre estas áreas e suas concepções ao longo do tempo:
Mas e a NLP, aonde fica?
Agora que tivemos uma abordagem sobre a relação dos principais grupos (Inteligência Artificial, Machine Learning e Deep Learning) vamos falar sobre aonde a NLP se encaixa e tentar entender um pouco sobre o processo básico de como as máquinas processam nossas formas de linguagem para nos retornar respostas ou soluções!
Na verdade a NLP é uma combinação de linguística, inteligência artificial e linguagem computacional. Veja bem, a palavra linguagem aqui é extremamente importante pois é através do conhecimento de como o nosso cérebro processa a linguagem e de como funciona a linguagem que o computador usa que humanos e computadores podem "conversar" de forma parecida. Tentamos neste caso pensar, afinal como um Brasileiro se comunicará com um chinês se nenhum dos dois forem proficientes um no idioma do outro? Este é um exemplo básico de dois humanos tentando se comunicar (ambos usam linguagem humana), entretanto, aqui falamos de uma interação entre linguagem humana x computacional. A figura abaixo representa a interação da área da linguística com a Inteligência artificial, machine learning e deep learning e a NLP sendo fruto desta interação.
O ser humano já domina a linguagem dos computadores pois foi ele mesmo que a criou. Portanto o processo se dá com o homem usando a linguagem de programação para que o computador aprenda a linguagem humana. Parece confuso mas algo parecido ocorre quando um professor brasileiro de inglês ensina inglês para um outro brasileiro que não sabe inglês. Ele usa o português para ensinar inglês (usa uma língua para ensinar a outra) e se utiliza de ferramentas de ensino. Na NLP usamos técnicas de machine learning e deep learning (usando a linguagem da máquina) para facilitar e otimizar o aprendizado da própria máquina sobre a linguagem humana. O algoritmo aqui seria análogo a uma ferramenta de ensino.
Com um entendendo a língua do outro tudo fica mais fácil!
A NLP busca justamente criar uma conexão entre nossa linguagem e a usada pelo computador permitindo que a máquina interprete o que foi dito ou escrito por nós e assim, possa interagir conosco. Para que haja esta interação, precisamos ensiná-la aspectos de nossa linguagem como: sintaxe (gramática), semântica (significado), morfologia (intensidade das palavras) e pragmática (conversação). Como vemos, a tarefa não é nada fácil e exige a aplicação de técnicas como tokenização, lematização entre outras.
A NLP pode ser dividida em Compreensão de Linguagem Natural ou NLU, do Inglês - Natural Language Understanding e Geração de Linguagem Natural ou NLG, do Inglês - Natural Language Generation. Aqui, a informação textual é fornecida ao computador - processada avaliando ambiguidade léxica, sintática e referencial (NLU) - e então uma resposta por parte da máquina é emitida (NLG) após o planejamento de texto, frases e a estruturação do texto de fato. O esquema abaixo mostra o fluxo da informação e divisões da NLP.
Divisões da NLP e tarefas executadas em cada uma. Data Science Foundation (2020).
Assim, a NLP permite que computadores compreendam conteúdo não estruturado utilizando algoritmos para fazer derivações e dar contexto a linguagem de forma similar ao cérebro humano. Se trata de um mecanismo para analisar e traduzir sinais de nossa linguagem que podem inclusive ajudar organizações a ter uma melhor compreensão do comportamento das pessoas em relação a seus produtos, serviços ou marca comparando, inclusive, com a concorrência.
Abaixo, alguns exemplos de como a NLP pode ser usada:
Como a NLP pode ser usada no reconhecimento de nossa linguagem para aplicação em diversas áreas. Data Science Foundation (2020).
Claro que ainda se enfrentam diversos obstáculos dentro do universo da NLP devido a complexidade da nossa linguagem. Nós não percebemos a quantidade de erros e de modulações/ajustes inconscientes que nossa linguagem falada ou escrita possui. Por exemplo, uma pessoa quando fala ou escreve comete erros de gramática, muda as frases e o sentido das mesmas durante os discursos e ainda mistura termos de outros idiomas (estrangeirismos). Ainda, possuímos diferentes inclinações de pronúncia, dialetos, entre outros. Em virtude disso, muitas vezes, as queridas Alexa e Siri não nos compreendem.
Bom, e a linguagem não verbal? Aquela que não é falada e não é escrita mas sim vista e interpretada? Creio que seja um assunto talvez para uma próxima conversa...
Quem quiser saber mais detalhes sobre este assunto e sobre outras técnicas usadas em NLP, é só acessar este excelente passo a passo publicado pela DataScience Foundation neste ano:
Ou então, acessar o material da própria wikipedia que além de detalhar processos mais complexos de processamento de linguagem natural, nos traz relações, inclusive, da NLP com a cognição humana: