o que e PLN processamento de linguagem natural

O que é Processamento de Linguagem Natural?

O Processamento de Linguagem Natural, também chamado de PLN e NLP (do inglês Natural Language Processing) permite que uma máquina entenda o significado de frases ditas e escritas por humanos, seja por texto ou por voz.

Nos filmes de ficção científica, um elemento fundamental se esconde por trás da Inteligência Artificial: o Processamento de Linguagem Natural. Essa tecnologia, que tem se popularizado cada vez mais, é fundamental para dar às máquinas a habilidade de entender humanos, do exato modo como falamos e escrevemos.

Diante da popularização dos chatbots e das FAQs inteligentes, a capacidade de lidar com clientes de forma natural, ainda que automatizada, passou a ser o maior desejo das grandes empresas. Nesse cenário, o PLN se apresenta para resolver um problema, unindo áreas linguísticas e técnicas.

Além disso, o Processamento de Linguagem Natural chega também para responder algumas perguntas: Por que é tão difícil preparar um robô para agir como uma pessoa? Como uma máquina entende o que alguém fala? Quais são as melhores ferramentas dessa área?

Porém, antes de tudo isso, há conceitos que essa ciência carrega que são fundamentais para fazer a comunicação entre humanos e máquinas funcionar bem. O primeiro deles, e talvez o mais elementar, é a própria linguagem natural.

O que é linguagem natural? 

Ainda que o tema demande conhecimento linguístico e técnico intermediário, a definição de linguagem natural é bem simples. Trata-se da pura forma como os humanos se comunicam. Os idiomas são um ótimo exemplo de linguagem natural.

É bem verdade que as linguagens das quais os computadores estão habituados a lidar, como XML, SQL e PHP, possuem complexidades. Entretanto, o modo como nos comunicamos, com todas as regras da gramática e ambiguidades, superam essa dificuldade de longe.

Sabendo disso, o desafio que emerge é o de conectar essas duas formas de comunicação, de modo que os dois se entendam, em uma interação coesa e natural.

O que é Processamento de Linguagem Natural?

O Processamento de Linguagem Natural é a forma que permite aos computadores processar a linguagem natural e começar a entender o significado da linguagem humana.

O termo “processamento”, no caso, significa análise e entendimento. Isto é, trata-se da capacidade das máquinas de lidar com a forma que falamos, superando nossos erros de ortografia, ambiguidades, abreviações, gírias e expressões coloquiais.

Por exemplo, quando falamos “botar a bota”, queremos dizer “vestir o calçado, que, no caso, é uma bota”. Entretanto, fazer a análise sintática deste período e separar verbo de artigo e substantivo é tarefa complexa para uma máquina.

Neste caso, vale lembrar que, ainda que o computador esteja habilitado para realizar esse entendimento, a ambiguidade se mantém como uma adversidade. Afinal, “botar a bota” e “botar açúcar” se parecem, mas são completamente diferentes semanticamente.

É por isso que o casamento entre Processamento de Linguagem Natural e Semântica é tão fundamental para esse cenário. Em especial para o atendimento ao cliente.

Qual a diferença entre Machine Learning e Processamento de Linguagem Natural?

O Machine Learning, traduzido literalmente do inglês como “aprendizado de máquina”, é o modo de utilizar Inteligência Artificial para ensinar aos programas de computador como se comportarem.  Embora o conceito seja semelhante ao de Processamento de Linguagem Natural, há uma diferença significativa.

Isso porque o PLN atua de forma antecipada ao tempo e esforço dedicados pelo Machine Learning. 

Por exemplo: um chatbot criado para atender questões financeiras, quando alimentado via Machine Learning, precisará levar um certo tempo para aprender que “boleto”, “fatura” e “conta” são termos relacionados. 

Por outro lado, o Processamento de Linguagem Natural inicia sua curva de aprendizado já em posição privilegiada. Todos os termos citados acima, aliás, já estariam inseridos na inteligência do chatbot.

Como funciona o Processamento de Linguagem Natural?

Um exemplo clássico de entrave dentro do autoatendimento se apresenta quando um usuário faz uma pergunta e não encontra respostas. O problema fica ainda maior quando a informação que deveria aparecer existe, de fato, mas, por algum problema de matching, não foi encontrada.

Imagine que você trabalha em uma empresa de telecomunicações e precisa preencher sua FAQ com informações sobre ligações internacionais. Então, o seguinte conteúdo é criado:

Processamento de Linguagem Natural - Exemplo 1

A probabilidade de os clientes buscarem pela informação acima utilizando as mesmas palavras-chave é baixíssima. Muito pelo contrário. Durante o uso da FAQ, é esperado que os consumidores digitem algo mais parecido com isso aqui:

Processamento de Linguagem Natural - Exemplo 2

Os consumidores vão sempre realizar buscas utilizando palavras do seu cotidiano, que descrevem situações bem específicas. Essa prática reúne, além disso, abreviações e erros de ortografia. É por isso que Processamento de Linguagem Natural da Inbenta, por exemplo, é tão importante. Basicamente, seu bom funcionamento consegue atrelar os significados das duas frases destacadas acima.

Para isso acontecer, a tecnologia costuma seguir alguns passos:

1 – Verificação do erro de ortografia

A primeira tarefa do Processamento de Linguagem Natural é verificar se a sentença digitada apresenta algum erro de ortografia. Seja por acidente ao pressionar as teclas ou desconhecimento da gramática, os erros ortográficos são encontrados por meio de um poderoso algoritmo.

Retomando o exemplo sobre a suposta pergunta feita por um cliente de uma empresa de telecomunicação, alguns erros são facilmente identificáveis por um humano. Porém, como a Inteligência Artificial consegue captá-los e corrigi-los?

Na frase, duas palavras não existem: são “ligá” e “Françs”. Em ambos os casos, como mostra a imagem abaixo, a tecnologia faz uma varredura dos termos para saber se elas realmente existem. Não existindo, há duas hipóteses:

  1. as palavras estão corretas, mas não existem no dicionário (e podem ser criadas);
  2. as palavras são versões erradas de palavras que existem

As palavras do nosso exemplo se enquadram no item 2. Partindo disso, começa-se, então, a verificação de erros de ortografia. A correção acontece por meio de uma busca de todos os termos semelhantes e que podem substituir o erro cometido.

No caso do “ligá”, é possível fazer a substituição por “liga”, “ligação” e “ligar”. Já no caso de “Françs”, as adequações cabíveis são “franco”, “francês”, “Franca” e “França”.

Os termos corretos, que são “ligar” e “França”, são escalados após um trabalho de comparação automática. Basicamente, o algoritmo faz um cálculo do quão provável é a combinação da palavra escrita errada com as versões corretas. O melhor resultado é “escalado” para corrigir a versão digitada.

Processamento de Linguagem Natural - erro de ortografia

O cálculo leva em consideração os conteúdos existentes na base de conhecimento, isto é, na inteligência da FAQ ou do chatbot. E também todas as particularidades e características do idioma.

Depois de todo esse processo, a pergunta já não é mais lida na versão original e passa a ser tratada pela ferramenta como uma nova (e correta) interação.

Processamento de Linguagem Natural - corrigindo erro de ortografia

2 – Resolução de ambiguidades

O próximo passo é identificar se cada uma das palavras que compõem a frase realmente são o que parecem. Ou seja, se o sentido colocado foi literal ou se a junção de alguns termos pode ter um significado diferente dentro da linguagem natural.

Esse processo tem nos bastidores uma série de artifícios. No caso da Inbenta, as ferramentas utilizadas são o próprio dicionário local, além de gramáticas locais e funções lexicais. A realização da análise sintática e semântica correta é crucial para encontrar respostas relevantes.

Por meio da análise sintática, a Inbenta determina a função precisa de cada palavra nesta questão em particular. O resultado desta análise é o seguinte:

Processamento de Linguagem Natural - análise sintática

Em seguida, são levadas em consideração as regras de desambiguação e contexto. Por exemplo, o verbo “ligar” pode significar algo fora da rotina de telecomunicações, como “acionar” (um liquidificador) ou “juntar” (dois pontos). Entretanto, no âmbito de telefonia, a relação é óbvia com o ato de “fazer uma chamada por telefone”.

Fazendo uso do algoritmo semântico-estatístico, o nosso Processamento de Linguagem Natural, então, executa a tarefa de remover os “ruídos”. Aqui, os ruídos são as palavras irrelevantes digitadas pelos usuários, que não adicionam nada para o entendimento da pergunta. Aliás, na maioria dos casos, acabam atrapalhando.

Depois da análise, cada um dos fragmentos da sentença recebe um valor. Esse peso semântico determina o real objetivo da pergunta. Veja abaixo o percentual distribuído automaticamente:

Processamento de Linguagem Natural - análise sintática percentual

3 – Reconhecimento por funções lexicais

O passo final, a fim de completar o entendimento e exibir o melhor resultado para a pergunta, é recorrer ao dicionário. Isso porque, mantendo o exemplo do autoatendimento em uma empresa de telecomunicação, além de analisar a pergunta do cliente, é preciso verificar os conteúdos que estão prontos para respondê-la. Utilizando a mesma técnica e processo.

No caso da Inbenta, o dicionário oferece centenas de milhares de relações prontas, que são chamadas Funções Lexicais. Elas são fundamentais e incluem relações fáceis, como sinônimos, mas também relações mais complexas que dependem do contexto em que o termo aparece.

É assim que acontece o reconhecimento de frases com o mesmo significado, apesar de usarem palavras diferentes na expressão desse significado.

A situação que nos serve de caso de estudo fez uso de duas funções lexicais:

  1. O termo “internacional” está relacionado com “nação”, que, por sua vez, está diretamente relacionada com todos os nomes das nações, países. Em outras palavras, isso quer dizer que “França” e “internacional” estão relacionados, de alguma maneira
  2. Enquanto o usuário digitou a palavra “custa”, o criador do conteúdo utilizou o termo “preço”. Embora diferentes, o conceito é o mesmo. Portanto, também estão relacionados.
O funcionamento da relação de palavras dentro do dicionário (Inbenta)

Em conclusão, o PLN compreende que a pergunta original “Quanto custa pra ligá pra Françs?” deve ser entendida como “preço de ligação internacional”.

Conclusão

O Processamento de Linguagem Natural compreende a parte da Inteligência Artificial que visa a aproximação do comportamento humano. As experiências negativas com chatbots e outras ferramentas de autoatendimento, normalmente, são justificadas por uma expectativa equivocada por parte dos usuários, e certo despreparo dos assistentes virtuais.

O uso do PLN chega para ocupar essa lacuna. Antes da imitação da linguagem humana, é preciso entendê-la. Juntamente com suas complexidades e ambiguidades. 

A função do Processamento de Linguagem Natural está muito mais centrada na compreensão do modo com as pessoas falam, do que na humanização do atendimento. Embora essa área também ganhe com isso. 

Tal constatação ajuda a responder à clássica pergunta se “os robôs vão substituir pessoas no mercado de trabalho”.

by Adriano Bertin