Skip to content
rafapolo edited this page Jun 10, 2012 · 53 revisions

Consulta-Natural

  • A linguagem natural, tal como falamos, permite manifestar e navegar numa infinidade de significados.
  • O conhecimento explícito é um grafo entre informações, que por sua vez, é constituída por dados.
  • Um arquivo no padrão RDF (Resource Description Framework), recomendado pela W3C, tal como o HTML, é uma modelagem conceitual de informações em grafo – um repositório de conhecimento.

Consulta-Natural mapeia a relação entre as palavras de uma pergunta com as palavras do repositório, interpretando em parte a semântica da consulta.

pergunta: De que banda é o álbum Nevermind?
resposta: Nirvana.

pergunta: De que cor é o S da Perdigão?
resposta: Não sei.

Quais albuns da banda “The Beatles”?
…[lista]…

Como?

Para tal, a ontologia mapeada no .RDF deve seguir como a descrição de fatos.
Fato, nesse contexto, é uma triade sujeito-predicado-objeto.

Supondo um repositório cujos recursos descritos são álbuns, todos os sujeitos dos fatos são álbuns.
As afirmações dos fatos nesse repositório parecem:

  • Nevermind ano 1991
  • In Rainbows banda Radiohead
  • Warning link megaupload.com/xyz
  • Nevermind banda Nirvana

Assim:
pergunta: “Qual o ano do album Nevermind?”
>> sujeito = Nevermind > predicado = ano > objeto = x
resposta: 1991

Portanto, toda consulta válida deve satisfazer dois termos entre o sujeito-predicado-objeto. O termo sem
correspondência é o termo-pergunta a ser descoberto entre os fatos do RDF.

Arquivos

consulta_natural.rb é o interpretador que gera consultas ao RDF a partir do texto da pergunta.
console_consulta.rb é um console UNIX-like para as consultas em linguagem natural. (exemplo console)
agente_conversa.rb permite usar o interpretador como um usuário no GTalk/Jabber.


Referência
Natural Language Query System for RDF Repositories ( ler )
Nokia Research Center Cambridge, 2007
Proceedings of the Seventh International Symposium on Natural Language Processing, SNLP



Rafael Polo jun.2010
Clone this wiki locally