Entendimento de linguagem natural

Origem: Wikipédia, a enciclopédia livre.

Entendimento de linguagem natural ou interpretação de linguagem natural (em inglês, Natural Language Understanding, NLU, Natural Language Interpretation ou NLI)[1] é um subtópico do processamento de linguagem natural em inteligência artificial que lida com a compreensão de leitura por máquina. A compreensão da linguagem natural é considerada um problema IA-difícil (AI-hard).[2]

Há um interesse comercial considerável na área por causa de sua aplicação ao raciocínio automatizado,[3] tradução automática,[4] resposta a perguntas,[5] coleta de notícias, categorização de texto, ativação por voz, arquivamento e análise de conteúdo em larga escala.

História[editar | editar código-fonte]

O programa STUDENT, escrito em 1964 por Daniel Bobrow para sua dissertação de doutorado no MIT, é uma das primeiras tentativas conhecidas de compreensão da linguagem natural por um computador.[6][7][8][9][10] Oito anos depois que John McCarthy cunhou o termo inteligência artificial, a dissertação de Bobrow (intitulada Entrada de linguagem natural para um sistema de solução de problemas de computador) mostrou como um computador poderia entender entrada de linguagem natural simples para resolver problemas de álgebra.

Um ano depois, em 1965, Joseph Weizenbaum do MIT escreveu ELIZA, um programa interativo que mantinha um diálogo em inglês sobre qualquer assunto, sendo o mais popular a psicoterapia. ELIZA funcionava através da análise simples e substituição de palavras-chave em frases enlatadas e Weizenbaum evitou o problema de dar ao programa um banco de dados de conhecimento do mundo real ou um léxico rico. Ainda assim, ELIZA ganhou popularidade surpreendente como um projeto de brinquedo e pode ser visto como um precursor inicial dos sistemas comerciais atuais, como os usados pelo Ask.com.[11]

Em 1969, Roger Schank, da Universidade Stanford, introduziu a teoria da dependência conceitual para o entendimento da linguagem natural.[12] Este modelo, parcialmente influenciado pelo trabalho de Sydney Lamb, foi amplamente utilizado pelos alunos de Schank na Universidade Yale, comoRobert Wilensky, Wendy Lehnert e Janet Kolodner.

Em 1970, William A. Woods introduziu a rede de transição aumentada (ATN) para representar a entrada de linguagem natural.[13] Em vez de regras de estrutura frasal, os ATNs usaram um conjunto equivalente de autômatos de estado finito que eram chamadas recursivamente. Os ATNs e seu formato mais geral, chamados de "ATNs generalizados", continuaram a ser usados por vários anos.

Em 1971, Terry Winograd terminou de escrever o SHRDLU para sua tese de doutorado no MIT. O SHRDLU podia entender frases simples em inglês em um mundo restrito de blocos infantis para direcionar um braço robótico para mover itens. A demonstração bem-sucedida do SHRDLU proporcionou um impulso significativo para a continuidade da pesquisa na área.[14][15] Winograd continuou a ser uma grande influência na área com a publicação de seu livro Language as a Cognitive Process.[16] Em Stanford, Winograd orientaria mais tarde Larry Page, co-fundador do Google.

Nas décadas de 1970 e 1980, o grupo de processamento de linguagem natural da SRI International continuou a pesquisa e o desenvolvimento no campo. Vários esforços comerciais com base na pesquisa foram realizados, 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 por mouses, a Symantec mudou de direção. Vários outros esforços comerciais foram iniciados na mesma época, por exemplo, Larry R. Harris na Artificial Intelligence Corporation e Roger Schank e seus alunos na Cognitive Systems Corp.[17][18] Em 1983, Michael Dyer desenvolveu o sistema BORIS em Yale, que apresentava semelhanças com o trabalho de Roger Schank e WG Lehnert.[19]

O terceiro milênio viu a introdução de sistemas que usam aprendizado de máquina para classificação de texto, como o Watson da IBM. No entanto, os especialistas discutem o quanto de "compreensão" tais sistemas demonstram: por exemplo, de acordo com John Searle, Watson nem mesmo entendeu as perguntas.[20]

John Ball, cientista cognitivo e inventor da Teoria Patom, apoia essa avaliação. O processamento de linguagem natural fez incursões para aplicativos para apoiar a produtividade humana em serviços e comércio eletrônico, mas em grande parte isso foi possível estreitando o escopo do aplicativo. Existem milhares de maneiras de solicitar algo em uma linguagem humana que ainda desafia o processamento de linguagem natural convencional. "Ter uma conversa significativa com as máquinas só é possível quando combinamos cada palavra com o significado correto com base nos significados das outras palavras na frase - assim como uma criança de 3 anos faz sem suposições."

Escopo e contexto[editar | editar código-fonte]

O termo genérico "compreensão de linguagem natural" pode ser aplicado a um conjunto diversificado de aplicativos de computador, desde tarefas pequenas e relativamente simples, como comandos curtos emitidos para robôs, até iniciativas altamente complexas, como a compreensão total de artigos de jornal ou trechos de poesia. Muitos aplicativos do mundo real caem entre os dois extremos, por exemplo, a classificação de texto para a análise automática de e-mails e seu roteamento para um departamento adequado em uma empresa não requer um entendimento profundo do texto,[21] mas precisa lidar com um vocabulário muito maior e sintaxe mais diversa do que o gerenciamento de consultas simples a tabelas de banco de dados com esquemas fixos.

Ao longo dos anos, várias tentativas de processar frases em linguagem natural ou frases semelhantes ao inglês apresentadas a computadores ocorreram em níveis variados de complexidade. Algumas tentativas não resultaram em sistemas com entendimento profundo, mas ajudaram na usabilidade geral do sistema. Por exemplo, Wayne Ratliff desenvolveu originalmente o programa Vulcan com uma sintaxe semelhante ao 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 computadores pessoais.[22][23] Os sistemas com uma sintaxe fácil de usar ou semelhante ao 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 frases em linguagem natural.

Portanto, a amplitude e a profundidade do "entendimento" almejado por um sistema determinam tanto a complexidade do sistema (e os desafios implícitos) quanto os tipos de aplicativos com os quais ele pode lidar. A "amplitude" de um sistema é medida pelos tamanhos de seu vocabulário e gramática. A "profundidade" é medida pelo grau em que sua compreensão se aproxima da de um falante nativo fluente. Entre os mais estreitos e superficiais, os interpretadores de comandos semelhantes ao inglês requerem complexidade mínima, mas têm uma pequena variedade de aplicações. Sistemas estreitos, mas profundos, exploram e modelam mecanismos de compreensão,[24] mas ainda têm aplicação limitada. Os sistemas que tentam entender o conteúdo de um documento, como um comunicado à imprensa, para além da simples correspondência de palavras-chave, e julgar sua adequação para um usuário, são mais amplos e exigem uma complexidade significativa,[25] mas ainda são um tanto superficiais. Sistemas que são muito amplos e profundos estão além do estado da arte atual.

Componentes e arquitetura[editar | editar código-fonte]

Independentemente da abordagem usada, a maioria dos sistemas de compreensão de linguagem natural compartilham alguns componentes comuns. O sistema precisa de um léxico da linguagem e um analisador e regras gramaticais para quebrar as sentenças em uma representação interna. A construção de um léxico rico com uma ontologia adequada requer um esforço significativo, por exemplo, o léxico Wordnet exigiu muitos anos de esforço por pessoa.[26]

O sistema também precisa da teoria da semântica para guiar a compreensão. As capacidades de interpretação de um sistema de compreensão de linguagem dependem da teoria semântica que ele usa. As teorias semânticas concorrentes da linguagem têm compensações específicas em sua adequação como base da interpretação semântica automatizada por computador.[27] Elas variam de semântica ingênua ou análise semântica estocástica ao uso de pragmática para derivar significado do contexto.[28][29][30] Os analisadores semânticos convertem textos de linguagem natural em representações de significado formal.[31]

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 em lógica de predicados e, então, usando dedução lógica para chegar a conclusões. Portanto, os sistemas baseados em linguagens funcionais como o Lisp precisam incluir um subsistema para representar asserções lógicas, enquanto os sistemas orientados à lógica, como aqueles que usam a linguagem Prolog, geralmente dependem de uma extensão da estrutura de representação lógica embutida.[32][33]

A gestão do contexto na compreensão da linguagem natural pode se mostrar especialmente desafiadora. Uma grande variedade de exemplos e contra-exemplos resultou em várias abordagens para a modelagem formal de contexto, cada uma com pontos fortes e fracos específicos.[34][35]

Ver também[editar | editar código-fonte]

Referências[editar | editar código-fonte]

  1. Semaan, P. (2012). Natural Language Generation: An Overview. Journal of Computer Science & Research (JCSCR)-ISSN, 50-57
  2. Roman V. Yampolskiy. Turing Test as a Defining Feature of AI-Completeness . In Artificial Intelligence, Evolutionary Computation and Metaheuristics (AIECM) --In the footsteps of Alan Turing. Xin-She Yang (Ed.). pp. 3-17. (Chapter 1). Springer, London. 2013. http://cecs.louisville.edu/ry/TuringTestasaDefiningFeature04270003.pdf
  3. Van Harmelen, Frank, Vladimir Lifschitz, and Bruce Porter, eds. Handbook of knowledge representation. Vol. 1. Elsevier, 2008.
  4. Macherey, Klaus, Franz Josef Och, and Hermann Ney. "Natural language understanding using statistical machine translation." Seventh European Conference on Speech Communication and Technology. 2001.
  5. Hirschman, Lynette, and Robert Gaizauskas. "Natural language question answering: the view from here." natural language engineering 7.4 (2001): 275-300.
  6. American Association for Artificial Intelligence Brief History of AI
  7. Daniel Bobrow's PhD Thesis Natural Language Input for a Computer Problem Solving System.
  8. Machines who think by Pamela McCorduck 2004 ISBN 1-56881-205-1 page 286
  9. Russell, Stuart J.; Norvig, Peter (2003), Artificial Intelligence: A Modern Approach Prentice Hall, ISBN 0-13-790395-2, http://aima.cs.berkeley.edu/, p. 19
  10. Computer Science Logo Style: Beyond programming by Brian Harvey 1997 ISBN 0-262-58150-7 page 278
  11. Weizenbaum, Joseph (1976). Computer power and human reason: from judgment to calculation W. H. Freeman and Company. ISBN 0-7167-0463-3 pages 188-189
  12. Roger Schank, 1969, A conceptual dependency parser for natural language Proceedings of the 1969 conference on Computational linguistics, Sång-Säby, Sweden, pages 1-3
  13. Woods, William A (1970). "Transition Network Grammars for Natural Language Analysis". Communications of the ACM 13 (10): 591–606
  14. Artificial intelligence: critical concepts, Volume 1 by Ronald Chrisley, Sander Begeer 2000 ISBN 0-415-19332-X page 89
  15. Terry Winograd's SHRDLU page at Stanford SHRDLU
  16. Winograd, Terry (1983), Language as a Cognitive Process, Addison–Wesley, Reading, MA.
  17. Larry R. Harris, Research at the Artificial Intelligence corp. ACM SIGART Bulletin, issue 79, January 1982
  18. Inside case-based reasoning by Christopher K. Riesbeck, Roger C. Schank 1989 ISBN 0-89859-767-6 page xiii
  19. In Depth Understanding: A Model of Integrated Process for Narrative Comprehension.. Michael G. Dyer. MIT Press. ISBN 0-262-04073-5
  20. Searle, John (23 de fevereiro de 2011). «Watson Doesn't Know It Won on 'Jeopardy!'». Wall Street Journal 
  21. An approach to hierarchical email categorization by Peifeng Li et al. in Natural language processing and information systems edited by Zoubida Kedad, Nadira Lammari 2007 ISBN 3-540-73350-7
  22. InfoWorld, Nov 13, 1989, page 144
  23. InfoWorld, April 19, 1984, page 71
  24. Building Working Models of Full Natural-Language Understanding in Limited Pragmatic Domains by James Mason 2010
  25. Mining the Web: discovering knowledge from hypertext data by Soumen Chakrabarti 2002 ISBN 1-55860-754-4 page 289
  26. G. A. Miller, R. Beckwith, C. D. Fellbaum, D. Gross, K. Miller. 1990. WordNet: An online lexical database. Int. J. Lexicograph. 3, 4, pp. 235-244.
  27. Using computers in linguistics: a practical guide by John Lawler, Helen Aristar Dry 198 ISBN 0-415-16792-2 page 209
  28. Naive semantics for natural language understanding by Kathleen Dahlgren 1988 ISBN 0-89838-287-4
  29. Stochastically-based semantic analysis by Wolfgang Minker, Alex Waibel, Joseph Mariani 1999 ISBN 0-7923-8571-3
  30. Pragmatics and natural language understanding by Georgia M. Green 1996 ISBN 0-8058-2166-X
  31. Wong, Yuk Wah, and Raymond J. Mooney. "Learning for semantic parsing with statistical machine translation." Proceedings of the main conference on Human Language Technology Conference of the North American Chapter of the Association of Computational Linguistics. Association for Computational Linguistics, 2006.
  32. Natural Language Processing Prolog Programmers by M. Covington, 1994 ISBN 0-13-629478-2
  33. Natural language processing in Prolog by Gerald Gazdar, Christopher S. Mellish 1989 ISBN 0-201-18053-7
  34. Understanding language understanding by Ashwin Ram, Kenneth Moorman 1999 ISBN 0-262-18192-4 page 111
  35. Formal aspects of context by Pierre Bonzon et al 2000 ISBN 0-7923-6350-7
  36. Programming with Natural Language Is Actually Going to Work—Wolfram Blog
  37. Van Valin, Jr, Robert D. «From NLP to NLU» (PDF) 
  38. Ball, John. «multi-lingual NLU by Pat Inc». Pat.ai