O Processamento da Linguagem Natural ou como é conhecido na Língua Inglesa – “Natural Language Processing” (NLP), é um dos campos da Inteligência Artificial que foca na interação entre computadores e a linguagem humana. Ela é responsável por capacitar os computadores a entender, interpretar e gerar linguagem humana de forma precisa e significativa como realiza um ser humano. Para isso, foram e continua a condução a análise linguística a vários níveis, incluindo phonetica, semântica, sintaxe, e gramática. Os sistemas NLP procuram extrair significado, relacionamento, e contexto de um texto ou de dados de uma conversa. Atualmente, NLP possui inúmeras aplicações em diversas indústrias e setor de atividade humana.
Ao desenvolver um sistema ou mesmo uma simples realização de tarefas com recurso a NLP, os especialistas consideram algumas das seguintes abordagens a seguir:
Tokenization (Tokenização): separar texto em palavras, frases, ou parágrafos
Part-of-Speech Tagging (Marcação de classes gramaticais): identificar e classificar num texto as palavras pela sua função gramatical (ex., nomes, verbos, adjetivos, etc.)
Named Entity Recognition (NER) (Reconhecimento de Entidades Nomeadas): identificar e classificar num texto nomes das entidades (ex. nomes de pessoas, organização, localização)
Sentiment Analysis (Análise de Sentimento): determinar o sentimento e emoções expressa no texto, atribuindo um valor como: positivo (1), negativo (-1), e neutro (0)
Language Translation (Tradução de idiomas): converter textos de uma linguagem para outra.
Text Summarization (Resumo de Texto): a partir de um texto longo gerar um resumo preciso e coerente
Speech Recognition (Reconhecimento de fala): converter uma fala em um texto.
Question Answering (Resposta a perguntas): responder de forma automática as questões a partir de um texto.
Chatbots and Virtual Assistants (Chatbots e assistentes virtuais): desenvolver um agente virtual capaz de entender e responder às consultas de um ser humano.
Machine Learning (Aprendizado da Máquina): NLP depende imenso dos algoritmos de Aprendizado de Máquina (ML), incluindo a aprendizagem profunda (deep learning) como redes neurais (neural networks).
Word Embeddings: Técnica como Word2Vec and GloVe são usadas para representar palavras como vetores, permitindo modelos capturar a relação semântica entre palavras.
Language Models (Modelo de Linguagem): modelos pré-treinados como BERT, GPT, e modelos baseados em Transformer. Trata-se de modelos pré-treinados com recursos a sistemas de processamento considerável, e hoje disponíveis para qualquer indivíduo com interesse. Por exemplo, a BERT foi desenvolvida pela Google. Estes modelos pré-trained associam palavras a um vector (séries de números) permitindo aos computadores capturar a proximidade e relações entre palavras. Assim, melhor grandemente a eficiência dos mais variados sistemas que usam NLP, desde chatbots, resumo de textos, tradução, sistema com Siri, Alexa, Cortana, etc.
Rule-Based-Approaches (Abordagens baseadas em regras): Os sistemas tradicionais baseados em regras usam regras linguísticas e dicionários para processar texto.