Artigos

NLP ou NLU: como escolher a melhor opção para seu projeto

Em uma publicação anterior, falamos sobre como organizações podem se beneficiar do aprendizado de máquina, especialmente do processamento de linguagem natural, sem um grande investimento. Agora vamos aprofundar o processamento de linguagem natural (NLP), explicar suas diferenças em relação à compreensão de linguagem natural (NLU) e dar dicas para escolher a melhor solução para sua empresa.

NLP versus NLU

Como explicamos em uma publicação recente, NLP é uma área da inteligência artificial focada no processamento da linguagem natural, humana. Porém, ainda não discutimos o que significa exatamente “processamento de linguagem natural”. Vamos falar um pouco sobre isso.

Como o nome indica, NLP foca em processar linguagem natural. A definição não esclarece qual nível de processamento pode ser aplicado. Uma frase pode ser analisada por diferentes perspectivas linguísticas: sintática, gramatical e semântica, entre outras. Da mesma forma, NLP pode executar processos em níveis diferentes. Algumas tarefas que mostram essa variedade são:

  • Reconhecimento de entidades nomeadas (NER)

  • Etiquetagem de classes gramaticais (POS tagging)

  • Análise sintática

  • Análise estrutural semântica

  • Resposta a perguntas

  • Análise semântica

  • Resumo automático

As três primeiras tarefas da lista, NER, POS tagging e análise sintática, são processos sintáticos; as quatro últimas são semânticos. A complexidade e os mecanismos necessários variam. Problemas sintáticos são mais fáceis de resolver e há muitos mecanismos e algoritmos, alguns bastante antigos, para isso. A maioria é fácil de definir e permite implementar uma solução aceitável sem aprendizado de máquina.

Problemas semânticos, por outro lado, são mais complexos. Definir conceitos semânticos não é trivial e costuma haver divergências entre as pessoas. Além disso, resolver um problema semântico envolve entender o significado de uma frase. Para humanos, parece simples, mas para um computador é muito complexo. Tentar resolvê-lo sem algoritmos de aprendizado de máquina costuma dar resultados ruins em precisão ou revocação.

Agora que definimos o alcance de NLP e a diversidade de seus problemas, podemos explicar a compreensão de linguagem natural (NLU). Ela é uma subárea de NLP que inclui todos os algoritmos que tentam compreender a linguagem natural. Aqui, “compreender” se refere ao significado semântico da linguagem.

Compreender a linguagem natural é diferente de processá-la. Voltando aos exemplos anteriores, a maioria dos problemas sintáticos pode ser resolvida com algoritmos NLP sem técnicas NLU. Há algoritmos que resolvem POS tagging com desempenho aceitável sem considerar o significado semântico; por exemplo, o pacote NLTK. Uma solução semântica talvez alcance melhores resultados, mas o problema pode ser resolvido sem ela.

Problemas semânticos se ajustam melhor a NLU porque os conceitos de “compreensão” e “semântica” são semelhantes. Às vezes, essa semelhança leva a supor que todos os algoritmos NLP que resolvem problemas semânticos usam NLU. Isso é incorreto: compreender uma linguagem envolve mais do que resolver um problema semântico. NLU exige uma solução que compreenda a semântica e possa generalizar. Ela deve entender uma situação nunca vista e dar os resultados esperados.

Vamos usar um exemplo para explicar a diferença. Imagine um algoritmo de análise de sentimentos: dada uma frase, ele retorna Positivo ou Negativo conforme o sentimento. É claramente uma tarefa semântica. Imagine aplicá-lo a um âmbito bem definido, como avaliações de filmes. Uma possível solução seria baixar um corpus de avaliações e treinar uma rede neural para detectar o sentimento da frase.

Essa solução é um algoritmo NLP que resolve um problema semântico. Mas o que acontece se a entrada for “Hoje é segunda-feira”? A frase não tem sentimento e provavelmente nunca foi vista pelo algoritmo, já que ele foi treinado com avaliações de filmes. Provavelmente retornará Positivo ou Negativo, quando o esperado seria “Essa frase não tem sentimento” ou “Não fui treinado para processar esse tipo de frase”.

Com uma abordagem NLU, em vez de treinar o modelo apenas com avaliações, usamos mais dados, como um corpus da Wikipedia. O modelo provavelmente detectará que a frase não contém informações de sentimento e dará o resultado esperado.

Se NLU generaliza melhor do que NLP tradicional em algumas tarefas semânticas, por que não o usamos sempre? Há dois motivos principais. Primeiro, treinar um algoritmo que processe NLU com eficiência é complexo e exige muitos dados. Idiomas são muito complexos e evoluem continuamente: surgem palavras e expressões novas. Manter um algoritmo NLU atualizado exige treiná-lo novamente de forma periódica. Segundo, uma generalização melhor costuma implicar menor precisão. No exemplo anterior, a primeira abordagem, treinada apenas com avaliações de filmes, provavelmente terá melhores resultados com uma nova avaliação do que a abordagem NLU.

Como escolher a melhor opção

Agora que definimos os problemas NLP que podemos processar e explicamos brevemente NLU, a próxima pergunta é como escolher a melhor opção para sua empresa. Estas dicas podem ajudar.

Verifique se NLU é uma abordagem válida para seu negócio.

Como mencionamos, NLP inclui muitas subáreas. NLU é muito útil para problemas semânticos. Antes de pensar em aplicá-lo, entenda qual tipo de problema você tem: semântico ou sintático?

Analise qual métrica importa mais para seu negócio: generalização ou precisão/revocação.

Como vimos, soluções NLU costumam generalizar muito bem, mas sacrificam precisão/revocação. Antes de escolher uma estratégia, é essencial definir o que importa mais.

Analise as características dos dados de entrada.

Se vêm de uma fonte conhecida e sempre têm um determinado estilo, talvez você não precise de generalização nem de NLU. Se são diversos, NLU possivelmente será a melhor abordagem.

Determine se uma abordagem NLU é viável.

Você precisa definir esse ponto antes de implementar algo. Às vezes, NLU é impossível porque não há dados suficientes para treinar o modelo. Por exemplo, se trabalha com um idioma pouco difundido ou em uma área como medicina ou transporte que usa terminologia muito específica, talvez NLU não consiga processá-lo.


NLP e NLU são campos fascinantes que oferecem grandes oportunidades para criar soluções inovadoras e competitivas. Esperamos que esta publicação ajude você a entender suas diferenças essenciais e identificar as perguntas importantes a responder antes de implementar NLP ou NLU no seu produto.

“NLP ou NLU: como escolher a melhor opção para seu projeto” por Pablo Grill está sob a licença CC BY SA. Os exemplos de código-fonte estão sob a licença MIT.

Foto de Brendan Church.

Classificado em Pesquisa e aprendizado.

Leituras relacionadas