O entendimento da linguagem natural ( inglês NLU ) ou interpretação em linguagem natural ( NLI ) é um subconjunto do processamento da linguagem natural na inteligência artificial que lida com o entendimento da reprodução automática. Compreender a linguagem natural é considerado um problema difícil em IA.
O interesse comercial neste campo é considerável devido à sua aplicação em coleta de notícias, categorização de textos, ativação de voz, arquivamento e análise de conteúdo em larga escala.
O programa STUDENT, escrito em 1964 por Daniel Bobrow para sua tese de doutorado no MIT , é uma das primeiras tentativas de compreensão da linguagem natural por um computador. Oito anos depois que John McCarthy cunhou o termo inteligência artificial , a dissertação de Bobrow (intitulada Natural Language Input for a Computer Problem Solving System) mostrou como um computador pode entender linguagem natural simples para resolver problemas algébricos de palavras.
Um ano depois, em 1965, Joseph Weizenbaum do MIT escreveu ELIZA , um programa interativo que apresentava diálogos em inglês sobre qualquer assunto, o mais popular dos quais era psicoterapia. ELIZA trabalhou pela análise simples e substituição de palavras-chave em frases em caixas e Weizenbaum evitou o problema de dar ao programa um banco de dados de conhecimento do mundo real ou um léxico rico. O ELIZA, no entanto, ganhou popularidade surpreendente e pode ser considerado um precursor inicial dos sistemas de negociação atuais, como os usados pelo Ask.com.
Em 1969, Roger Schank, da Stanford University, introduziu a teoria da dependência conceitual para a compreensão da linguagem natural. Esse modelo, em parte influenciado pelo trabalho de Syndney Lamb, foi usado extensivamente por alunos de Schank na Universidade de Yale , como Robert Wilensky, Wendy Lehnert e Janet Kolodner.
Em 1970, William A. Woods introduziu a Rede de Transição Aumentada (ATN) para representar a contribuição da linguagem natural. Em vez de regras de estrutura de sentenças, os ATNs usaram um conjunto equivalente de autômatos de estado finito chamados recursivamente. Os ATNs e seu formato mais geral, denominado "ATN generalizado", continuaram a ser usados por vários anos.
Em 1971, Terry Winograd terminou de escrever SHRDLU para sua tese de doutorado no MIT. SHRDLU podia entender frases simples em inglês em um pequeno mundo de blocos infantis para direcionar um braço robótico para mover objetos. A demonstração bem-sucedida de SHRDLU forneceu um impulso importante para futuras pesquisas de campo. Winograd continuou a ser uma grande influência na área com a publicação de seu livro Language as a Cognitive Process. Em Stanford, Winograd seria mais tarde conselheiro de Larry Page, co-fundador do Google.
Nas décadas de 1970 e 1980, o grupo de processamento de linguagem natural da SRI International continuou suas atividades de pesquisa e desenvolvimento no campo. Uma série de esforços comerciais orientados para pesquisa foram empreendidos, por exemplo, em 1982 Gary Hendrix formou a Symantec Corporation originalmente como uma empresa para desenvolver uma interface de linguagem natural para consultas de banco de dados em computadores pessoais. No entanto, com o advento das interfaces gráficas do usuário acionadas pelo mouse, a Symantec mudou de direção. Vários outros esforços comerciais foram lançados na mesma época, por exemplo, Larry R. Harris na Artificial Intelligence Corporation e Roger Schank e seus alunos na Cognitive Systems corp. Em 1983, Michael Dyer desenvolveu o sistema BORIS em Yale, que era semelhante ao trabalho de Roger Schank e WG Lehnart.
O terceiro milênio viu a introdução de sistemas que usam aprendizado de máquina para a classificação de textos, como o Watson da IBM . No entanto, não se trata de compreender a linguagem natural. De acordo com John Searle, Watson nem mesmo recebeu as perguntas.
John Ball , cognitivo e inventor da Teoria Pathom apóia esta avaliação. O processamento de linguagem natural fez incursões em aplicativos para apoiar a produtividade humana em serviços e e-commerce, mas isso foi amplamente possibilitado pela redução do escopo do aplicativo. Existem milhares de maneiras de perguntar algo em linguagem humana que ainda desafia o natural convencional processamento de linguagem. "Ter uma conversa significativa com as máquinas só é possível se associarmos cada palavra ao significado correto de acordo com o significado das outras palavras da frase - assim como uma criança de 3 anos não faz suposições."
O termo genérico "compreender a linguagem natural" pode ser aplicado a um conjunto diversificado de aplicativos de computador, desde tarefas pequenas e relativamente simples, como comandos curtos submetidos a robôs, até tarefas complexas, como compreender artigos de jornais ou ler livros. Muitos aplicativos do mundo real caem entre os dois extremos, por exemplo, classificar texto para análise automática de e-mails e encaminhá-los para um departamento apropriado em uma empresa não requer um conhecimento profundo do texto, mas deve lidar com um vocabulário. Muito mais amplo e uma sintaxe mais diversa do que lidar com consultas simples em um banco de dados com esquemas fixos.
Ao longo dos anos, várias tentativas de processar a linguagem natural ou frases em inglês apresentadas aos computadores ocorreram em vários graus de complexidade. Algumas tentativas não resultaram em sistemas com um conhecimento profundo, mas contribuíram para a usabilidade geral do sistema. Por exemplo, Wayne Ratliff desenvolveu originalmente o programa Vulcan com sintaxe no estilo inglês para imitar o computador que fala inglês em Star Trek . Vulcan mais tarde se tornou o sistema dBase , cuja sintaxe fácil de usar efetivamente lançou a indústria de banco de dados de computador pessoal. Os sistemas com sintaxe fácil de usar ou em inglês são, no entanto, bastante distintos dos sistemas que usam um léxico rico e incluem uma representação interna (frequentemente como lógica de primeira ordem ) da semântica das sentenças em linguagem natural.
Portanto, a amplitude e a profundidade do "entendimento" que um sistema busca determinam tanto a complexidade do sistema (e os desafios envolvidos) quanto os tipos de aplicativos que ele pode manipular. A "amplitude" de um sistema é medida pelo tamanho de seu vocabulário e gramática. "Profundidade" é medida pelo grau em que a compreensão de uma pessoa se aproxima da de um falante nativo fluente. No nível mais restrito e superficial, os intérpretes de comando no estilo inglês exigem complexidade mínima, mas têm um pequeno número de aplicativos. Sistemas estreitos, mas profundos, exploram e modelam mecanismos de compreensão, mas ainda têm aplicação limitada. Os sistemas que tentam entender o conteúdo de um documento, como um comunicado à imprensa, além de apenas combinar palavras-chave e julgar sua adequação para um usuário, são mais amplos e exigem uma complexidade considerável, mas ainda são superficiais. Tanto os sistemas muito amplos quanto os muito profundos estão além do estado da arte atual.
Independentemente da abordagem usada, a maioria dos sistemas de compreensão de linguagem natural compartilham alguns elementos comuns. O sistema precisa de um léxico da língua, um analisador e regras gramaticais para dividir as sentenças em uma representação interna. Construir um léxico rico com uma ontologia apropriada requer um grande esforço, por exemplo, o léxico Wordnet exigiu muitos anos de esforço por pessoa.
O sistema também precisa de uma teoria semântica para orientar a compreensão. As capacidades de interpretação de um sistema de compreensão de linguagem dependem da teoria semântica que ele usa. Teorias semânticas concorrentes da linguagem têm compromissos específicos em sua relevância como base para a interpretação semântica computadorizada. Estes variam de semântica ingênua ou análise semântica estocástica ao uso de pragmática para derivar significado do contexto.
Aplicações avançadas de compreensão de linguagem natural também tentam incorporar inferência lógica em sua estrutura. Isso geralmente é obtido mapeando o significado derivado em um conjunto de afirmações na lógica de predicados e, em seguida, usando a dedução lógica para chegar a conclusões. Portanto, os sistemas baseados em linguagens funcionais como Lisp devem incluir um subsistema para representar asserções lógicas, enquanto os sistemas orientados à lógica, como aqueles que usam a linguagem Prolog , geralmente contam com uma extensão da estrutura de representação lógica embutida.
Gerenciar o contexto na compreensão da linguagem natural pode apresentar desafios especiais. Uma ampla variedade de exemplos e contra-exemplos resultou em várias abordagens para a modelagem de contexto formal, cada uma com pontos fortes e fracos específicos.