NLP (Natural language processing), ou processamento de linguagem natural, é um ramo muito abrangente e envolve vários assuntos, possuindo grande relevância e destaque na Inteligência Artificial.
Quando estamos falando de processamento de linguagem natural, podemos estar falando da própria análise de textos que já estão escritos em algum lugar, realizando manipulações nos mesmos.
Ou podemos pegar palavras faladas por alguém e transformá-las em texto. Isso também estaria dentro desse escopo – neste caso seria speech recognition, o reconhecimento de fala – que consiste em fazer a máquina aprender a reconhecer como fazer a conexão entre palavras escritas e faladas.
Também podemos pensar em image description, ou seja, a descrição de imagens: mostramos uma imagem e a máquina vai aprender a formar um texto que descreva o que aquela imagem quer informar.
Podemos também ir mais além pensando na análise do texto em si e falar de sentiment analysis – análise dos sentimentos – para dizer se um comentário colocado em algum lugar é positivo ou negativo, por exemplo.
Podemos pensar em um sistema de tradução de um idioma para outro. Podemos pensar em fazer previsões de palavras para concluir qual seria a próxima palavra de uma determinada frase: um modelo preditivo para prever palavras que estejam faltando numa frase, para fazer o modelo estimar o que a pessoa iria dizer ou como concluiria suas sentenças.
Também podemos pensar em text generation – geração automática de textos – em que apenas se informa o assunto e a máquina gera todo um texto como se fosse uma redação escrita pela mão de alguém, só que um conteúdo gerado artificialmente por ela.
Então, podemos ver que NLP é um ramo bem extenso de conteúdo. Assim como quando estudamos imagens e percebemos que há muito o que estudar, aqui há muito mais!
É interessante observar que a linguagem, na realidade, contém praticamente tudo em relação ao pensamento humano.
Tudo o que pensamos nós traduzimos em linguagem, então, em última instância, pode ser que uma máquina que aprenda a manipular texto muito bem esteja aprendendo a manipular o próprio pensamento em si, coisa que discutiremos mais adiante.
Para um bom entendimento do ramo, é importante, primeiro, começar com a parte teórica, cobrindo vários assuntos e, depois, partir para a parte prática. Inclusive, quando estudarmos a parte prática, veremos que há toda uma etapa dedicada ao pré-processamento e, depois, treinaremos e usaremos a máquina a partir dos conceitos de machine learning e deep learning, permitindo que as máquinas aprendam relações com eles.
Teste de Turing
Dando sequência a esta introdução, é interessante conhecermos o Teste de Turing.
O que seria o Teste de Turing, e por que achamos relevante comentar sobre ele aqui dentro deste tema? Provavelmente você começará a ouvir, cada vez mais, a mídia falando sobre isso, dado o avanço que tem sido feito nessa área de processamento de linguagem.
Como comentamos acima, podemos expressar todo o nosso pensamento – que é uma parte muito complexa, um dos maiores diferenciais da mente humana: saber pensar, ter raciocínio lógico, raciocínio abstrato – e tudo isso nós transformamos, de certa forma, em linguagem.
Se alguém, por exemplo, faz uma descoberta científica, essa pessoa documenta na forma de texto.
Então, no limite, podemos imaginar que todo pensamento ou descoberta científica sobre o universo poderiam ser, de alguma forma, traduzidos em linguagem.
Se as máquinas souberem manipular bem essa linguagem, pode ser que elas consigam fazer descobertas científicas; pode ser que elas consigam se comunicar com os seres humanos, simulando como se elas fossem seres pensantes.
O Teste de Turing envolve um pouco disso. Ele foi proposto por Alan Turing – um dos pais da computação – no ano de 1950.
Na época, ele estava pensando justamente nesse ponto: como seria possível avaliar se uma máquina está sendo inteligente, se ela está usando um pensamento, um raciocínio, ou não.
Ele estava pensando em como construir um teste com essa finalidade. Só que ele percebeu que isso é bastante difícil de descobrir; porque, por mais que pareça óbvio pensar que algo foi um pensamento de uma pessoa ou não, na realidade é um conceito muito filosófico.
Vamos considerar, por exemplo, o avanço que já temos com o reconhecimento de imagens: podemos passar várias imagens e contextos diferentes para uma pessoa classificar e podemos passar as mesmas imagens para um programa classificar.
O programa pode dar resultados, hoje, tão bons, ou até melhores do que uma pessoa. Mas, podemos dizer que o programa está “pensando” para chegar nesses resultados? Provavelmente, hoje, concluiríamos que a máquina não está pensando: ela está apenas aplicando um conjunto de sistemas com os quais aprendeu a reconhecer os padrões, mas não está executando um pensamento próprio.
Se formos avançando cada vez mais e expandindo isso para a área da linguagem, quando é que poderemos dizer que se trata de um pensamento? Na medida em que as máquinas estiverem conversando conosco de forma quase indistinguível com o ser humano, a partir de que momento poderemos concluir que elas são inteligentes?
Este é um assunto bem filosófico e envolve questões de consciência. Não existe um método específico para resolver essa questão! Alguém vai argumentar o seguinte: “Como eu sei qual é o processo que está sendo executado por trás, sei que é uma rede neural, então quer dizer que isto não é um pensamento!”.
Mas só porque sabemos qual é o processo que está por trás, não significa que que não seja um pensamento. Porque, então, se algum dia descobrirmos como o cérebro humano funciona – quais os mecanismos que estão por trás do cérebro humano – isto quer dizer que os seres humanos não pensam?
O jogo da imitação
Essa é uma questão muito difícil de concluir e Alan Turing descobriu exatamente isso: se tratava de uma questão filosófica e, então, ele resolveu pensar em um teste que não entrasse nesse assunto.
Ele pensou em simplificar criando um teste que só avalia o seguinte: se a máquina consegue imitar um ser humano ou não. Por isso, ele transformou o Teste de Turing no que seria o jogo da imitação, que é, inclusive, o que motivou o nome do filme The Imitation Game – “O Jogo da Imitação” – que caso você não tenha assistido, vale a pena conferir.
A ideia desse jogo seria a seguinte: uma pessoa seria colocada na frente de duas salas: numa sala haveria uma pessoa e, na outra, uma máquina. A pessoa do lado de fora seria um juiz que iria comunicar-se na forma de texto com as duas salas, obter respostas e tentar identificar em qual delas está a pessoa e em qual a máquina.
Na época, Alan Turing disse que a comunicação seria por forma de texto para não ter que restringir nem obrigar a máquina a aprender, por exemplo, a reconhecer a fala e se comunicar falando. Só com um texto já daria para concluir e pensar nessa ideia do jogo da imitação.
Até porque ele não sabia, na época, quão difícil seria fazer o reconhecimento de fala ou, ainda, fazer a máquina falar. Lembrando que estamos falando da época de 1950, onde nem o conceito de computador existia direito.
Hoje já sabemos que não faria tanta diferença a máquina escrever, falar ou reconhecer a fala. Mas o mais importante é reconhecer que uma pessoa – um juiz – estaria identificando quem era a máquina e quem era a pessoa a partir de uma conversa.
É interessante frisar um adendo aqui: não necessariamente a máquina precisa passar respostas corretas. Por exemplo, se perguntarmos qual foi o primeiro presidente dos EUA, muitas pessoas não saberiam responder.
Os seres humanos não sabem as respostas para todas as perguntas feitas e, da mesma forma, a máquina também não precisa saber. E não é assim que ela seria reconhecida como um ser humano, mas na forma como ela se expressa, na forma como ela organiza o raciocínio, como ela consegue manter uma conversa, etc. Então, é dessa forma que ela vai nos enganar ou não que se trata de uma pessoa.
A lógica do Teste de Turing é nos enganar de que a máquina é uma pessoa e, é evidente que isto não poderia ser feito apenas uma vez, com um único juiz; pois um só juiz teria 50% de chance de acertar se ele chutasse qual seria a máquina e qual a pessoa.
O correto seria aplicar um teste com algumas centenas ou milhares de pessoas – fazer a mesma coisa: colocá-las conversando com uma pessoa e uma máquina – e fazer cada uma dessas centenas ou milhares de pessoas escreverem qual elas pensam ser a máquina e qual a pessoa.
E se o resultado for mais ou menos metade para cada lado, quer dizer que o palpite das pessoas não está sendo melhor do que o acaso; ou seja, a máquina passou no Teste de Turing.
O interessante de se considerar é que o Teste de Turing não é a respeito de as máquinas pensarem – o que é uma coisa que talvez esteja distante – mas é a respeito de as máquinas nos enganarem de que elas estejam pensando – o que, talvez, não esteja tão distante assim!
Hoje, com as tecnologias mais avançadas que temos, até pode ser possível passar no Teste de Turing dependendo de quanto tempo vamos limitar a máquina.
Porque se limitarmos a pessoa a falar com a máquina apenas por 30 segundos, ou por 1 minuto, ou por umas 10 frases ou algo assim, é bem possível que a máquina passasse no Teste de Turing, porque os agentes virtuais mais avançados hoje conseguem ter uma conversa em um nível que nos faz pensar que estamos conversando com uma pessoa culta.
Agora, o problema das máquinas hoje é que se conversarmos por muito tempo, elas começam a mostrar os seus defeitos: começam a entrar em delírios, contradições, esquecimento (não lembram de uma opinião que elas mesmas defendiam e começam a falar de outra coisa).
Ou seja, é numa conversa longa que começamos a distinguir que estamos conversando com uma máquina e não com um ser humano.
Se conversamos por um curto período ou, ainda, se nos limitamos a falar sobre um tópico específico, fica mais fácil para a máquina nos enganar a ponto de pensarmos não se tratar de uma máquina.
Isso mostra o poder do deep learning nesse aspecto da manipulação da linguagem natural, afinal, a linguagem nada mais é do que uma informação que, no caso de a máquina conseguir aprender a manipulá-la a partir de dados que nós mesmos fornecemos a ela (como os humanos manipulam essa informação), talvez ela aprenda a manipular.
Quando alguém estiver falando do Teste de Turing é importante lembrar que, talvez, isso não esteja tão distante assim e que, talvez, não seja algo para um futuro tão distante que uma máquina passe no Teste de Turing e, se ela vai ou não ter o pensamento suficiente, isto já é uma outra discussão que pode demorar mais ou menos tempo.
Quão longe estamos de uma máquina passar no Teste de Turing?
Até uns 5 anos atrás, praticamente ninguém diria que estamos perto de conseguir essa façanha. Porém as coisas mudaram radicalmente.
A evolução rápida de algoritmos avançados de NLP fez com que uma revolução tomasse forma nesse ramo. Em 2020, a empresa de inteligência artificial Open AI lançou o modelo GPT-3, que conseguia criar textos longos e estabelecer conversas ficando difícil de perceber que se tratava de uma máquina.
Tal performance causou um rebuliço no campo da linguagem natural, com outras empresas lançando modelos semelhantes meses depois.
Atualmente (2022), as expectativas são grandes para o lançamento da próxima versão do GPT-3, o GPT-4, que provavelmente terá capacidades ainda mais avançadas.
O CEO da Open AI já chegou a dizer que o GPT-5 deve passar no Teste de Turing, porém será um modelo muito custoso computacionalmente.
Para que o processamento de linguagem natural continue avançando, é importante que ocorram também avanços no hardware para treinamento dos modelos, já que estamos falando de redes neurais com bilhões e até trilhões de parâmetros.
Onde aprender mais sobre NLP
Conforme comentamos, aos estudar os detalhes podemos entender e até mesmo criar nossas próprias máquinas, que um dia poderão passar no Teste de Turing.
É evidente que este entendimento não virá de apenas uma leitura rápida como essa, porém, diferentemente do que muitos podem pensar, não é algo acessível somente para especialistas!
Em nosso curso Aprendizado por Reforço, Algoritmos Genéticos, NLP e GANs temos um tópico exclusivo com 50 aulas abordando apenas este assunto. Em conjunto com nossos módulos iniciais, este curso possibilita que mesmo aqueles sem conhecimento algum no assunto possam chegar em um nível avançado de entendimento e aplicação prática.
Não perca essa oportunidade incrível de aprendizado didático que você não vai encontrar em nenhum outro lugar.
Outros artigos relacionados: