terça-feira, 29 de janeiro de 2013

Qual abordagem de aprendizagem de máquina usar?


Existem várias abordagens de aprendizagem de máquina, mas qual devo usar por exemplo para meu sistema question answering??  O grafo ilustrado na Figura 1 pode responder a essa pergunta.




ACHADO

Primeiramente, desculpe por tantos dias sem postar nada. Estou trabalhando em um projeto e continuarei sem tempo para postar.


Só que nessas minha andanças,  achei um plugin para o PROTÉGÉ muito interessante:

http://protege.stanford.edu/plugins/psmtab/PSMTab.html

Esse plugin apoia a construção de sistemas baseados em conhecimento a partir de componentes reutilizáveis de conhecimento, conhecidos como PSM (Problem-Solving Methods). PSMs são algoritmos genéricos que codificam estratégias independentes de domínio para realizar tarefas cognitivas comuns (exemplo: classificação diagnóstico, projeto, etc.) pelo processamento de conhecimento do domínio.

sábado, 12 de janeiro de 2013

TUTORIAL PROTÉGÉ - PARTE 6


TUTORIAL PROTÉGÉ - PARTE 6

baseado no guia prático para construir ontologias OWL usando Protégé dos autores Horridge & Knublauch et al

PARTE 6: RELAÇÕES (PROPRIEDADES) FUNCIONAIS


Se a propriedade é funcional para um determinado indivíduo, pode existir mais de 1 indivíduo que é relacionado ao indivíduo por meio da propriedade. A Figura 1 mostra um exemplo de propriedade funcional temNasceuDaMãe - Alguém tem apenas 1 mãe de sangue. Se dizemos que o indivíduo Jean temNasceuDaMãe Peggy e também dizemos Jean temNasceuDaMãe Margaret, então  temNasceuDaMãe é uma propriedade funcional, podemos inferir que Peggy e Margaret são os mesmos indivíduos (É isso que uma máquina de inferência, como o Pellet, gera). Entretanto deve ser observado que se Peggy e Margaret foram explicitamente indicados para ser dois indivíduos diferentes então as sentenças acima levaria a uma inconsistência.

Figura 1

As propriedades funcionais são também conhecidas como propriedades de valores únicos ou características.

Próximo posting do tutorial será propriedades Propriedade Funcionais Inversas. Até a próxima.

sexta-feira, 4 de janeiro de 2013

Uma nova abordagem para um sistema question-answering

baseado no artigo Template-based Question Answering over RDF Data dos autores Unger et al.


Uma nova abordagem para um sistema 

question-answering





O artigo tema desse post é muito rico, por isso vale a pena depois baixar e ler por inteiro. Vou tentar resumi-lo. A maioria dos sistemas de question-answering que utilizam RDF (http://www.w3.org/RDF/) mapeiam a pergunta (linguagem natural) em uma representação de triplas RDF . Dessa forma obtém-se a resposta à pergunta por meio de um consulta a uma base de dados RDF. Alguns dos famosos sistemas que usam essa solução: Aqualog, PowerAqua, NLP-Reduce, FREyA, etc. Será que essa solução funciona em todos os casos?


Essas abordagens são muito boas para os casos em que o significado da consulta pode ser recuperado facilmente.Em muitos outros casos a estrutura semântica original da pergunta não pode ser fielmente capturada usando triplas, como por exemplo a pergunta: "Qual a cidade que tem mais de 3 universidades?". Consultas que usam agregação, filtros com quantidade específicas e intervalares não são fielmente capturados usando triplas.

A proposta desse sistema é gerar templates SPARQL que se aproximem da semântica da pergunta. Por exemplo: Quantos filmes Leonardo Dicaprio estrelou? Pode ser visto na figura 1 um dos templates proposto para a pergunta.



Figura 1




Para chegar no template SPARQL, alguns processos de PLN foram realizados. A arquitetura geral do sistema está ilustrada na Figura 2:

Figura 2



Nesse mesmo artigo fala sobre BOotstrapping linked datA.Você já ouviu falar sobre isso??? Vou preparar um posting sobre isso. até a próxima.

domingo, 23 de dezembro de 2012

Case-based reasoning Part IV


O texto é basedo no tutorial:
* Recio-Garcia , Díaz-Agudo , González-Calero (2008).
*Learning in Non-Stationary Environments - Methods and Applications (2012)
* Material de aula de Inteligência Artificial - Hugo Pedro Proença, (2007/2008)

Case-based reasoning (CBR) - Parte IV

Chegamos na parte prática desse tutorial. Usando a biblioteca JColibri  e a ferramenta eclipse INDIGO vamos entender um pouco mais como funciona CBR.

Para ilustrar as capacidades da biblioteca, nós implementaremos uma clássica aplicação CBR para determinar se devemos jogar tênis hoje conforme as experiências anteriores.

Antes de iniciar o desenvolvimento desse sistema inteligente, é necessário instalar a biblioteca JColibri no eclipse. Para fazer isso vá no menu help>>Install New Software. A seguinte janela(Figura 1) deve abrir:

Figura 1
Digite o endereço http://colibricbrstudio.net/update na caixa de texto work with. Selecione o item "COLIBRIStudio" e clique em next até instalar.

Para habilitar a visuliazação do Jcolibri no eclipse, vá no menu Windows>>Open Perspective>> Other. Selecione a opção COLIBRI. Agora podemos dar início ao desenvolvimento!

Vamos detalhar em passos o desenvolvimento:

1)  Vá no menu File>>New>> New k-NN CBR Project. A tela seguinte deve ser aberta (Figura 2):

Figura 2

Vamos dar uma pausa para entender o que é "k-NN". k-NN é um método de aprendizagem supervisionada.
[Sayed-Mouchaweh,2012].  O kNN segue a seguinte abordagem, para classificar x =(x1, x2, ...xn) encontra-se os k exemplos de treino mais próximos de "x", e o classifica com a classe moda nesses exemplos. 

Vejamos o seguinte exemplo que contém 3 classes, sendo necessário classificar "xu". … Usando k=5 , encontramos 4 dos vizinhos mais próximos na classe 1 e 1 exemplo na classe 3.… Atribui-se a observação xu à classe 1, uma que esta é a classe predominante. A Figura 3 ilustra esse exemplo:


Figura 3

Usando o kNN o aplicativo CBR deve tomar a decisão se joga tênis ou não. Deve-se observar que o algoritmo kNN não é muito eficiente para os casos em que o tamanho da base de treino é muito importante e k não é muito bem escolhido. [Sayed-Mouchaweh,2012]

No próximo tutorial de CBR continuamos o desenvolvimento do sistema. 



quarta-feira, 12 de dezembro de 2012

TUTORIAL PROTÉGÉ - PARTE 5

baseado no guia prático para construir ontologias OWL usando Protégé dos autores Horridge & Knublauch et al
Apostila de matemática discreta da Universidade de Caxias do Sul (2003)


PARTE 5: Relações (propriedades) inversas

É importante ter um noção básica sobre teoria de conjuntos campo de estudo da matemática discreta, antes de iniciar esse tutorial.

Então dados dois conjuntos A e B, uma relação binária R de A em B é um subconjunto de um produto cartesiano AXB , ou seja R está contido em AXB. Nesse caso R pode ser caracterizada como inversa, funcional, ou qualquer outra relação. 
*A é o domínio, origem ou conjunto de partida de R
*B é o contra-domínio, destino ou conjunto de chegada de R
Para R está contido em A|X|B , se <a,b> pertece a R , então afirmamos que "a relaciona-se com b". Podemos denotar uma relação R da seguinte forma: R : A-> B e, para um elemento <a,b> pertence a R , podemos denota-lo como aRb.


Simplificando a ideia, as propriedades inversas permitem um enrriquecimento nas descrições dos objetos e das classes.   Se alguma propriedade liga um indivíduo a ao indivíduo b então sua propriedade inversa deve unir b ao indivíduo a. Por exemplo: a propriedade temPai e sua propridade inversa temFilho - se Mateus temPai Jean, então pela propriedade inversa podemos inferir que Jean temFilho Mateus.

Dando continuidade a nossa ontologia de Pizza no Protégé e para fixar o conteúdo, vamos aos seguintes passos para adicionar a propriedade inversa.

(1) User o botão "add object property"  da aba "Object proprietis" para criar uma nova relação chamada isIngredientOf ( Essa se tornará a relação inversa de hasIngredient).
(2) Crie outra relação chamada hasIngredient.
(3) Selecione a relação isIngredientOf
(4) Clique no ícone "Add" próximo a " Inverse properties". Veja na figura 1

Figura 1 - Janela de tipos de relações da relação isIngredientOf

(5) Clique no ícone "Add" próximo a " Inverse properties". A seguinte janela será apresentada (Veja na figura 2). Selecione a relação hasIngredient e clique em Ok. A propriedade "hasIngredient" deve ser mostrado na janela "Inverse Property".

Figura 2 - janela de seleção de relação inversa
(6) Crie 2 novas relações "hasBase" e "IsBaseOf". Selecione a relação "hasBase".

(7) Clique no botão Add próximo a " Inverse properties". Selecione a relação "isBaseOf" e clique em OK. Observe que a relação "hasBase" agora tem a propriedade inversa "isBaseOf". Você pode opcionalmente colocar a relação "isBaseOf" como sub-relação de "isIngredientOf". (OBSERVE A DIFERENÇA AO APLICAR A MÁQUINA DE INFERÊNCIA - tema dos próximos capítulos.)
 

(8) Crie 2 novas relações "hasTopping" e "isToppingOf".  Inclua a relação "isToppingOf" como inversa de "hasTopping".

GALERA, preste atenção ao fato que ao descrevermos os conceitos do mundo com a matemática nos livramos principalmente da AMBIGUIDADE da linguagem natural.

No próximo tutorial espero falar sobre relações FUNCIONAIS. GOOD LOCK!!

segunda-feira, 3 de dezembro de 2012

Case-based reasoning Part III

O texto é basedo no tutorial:
* Recio-Garcia , Díaz-Agudo , González-Calero (2008).
* AquaStress Technical Instruments (2007).


Case-based reasoning (CBR) - Parte III

 

Antes de inicarmos o desenvolvimento de uma aplicação prática usando o JColibri, vale a pena mostrar uses cases. O AquaStress é um framework inteligente construído a partir dos conceitos do CBR.

Contextualizando o problema do Aquatress. Há muitas regiões da Europa expostas ao problema de falta de água devido a demanda excessiva, que desencadeia medidas sérias de mitigação. Esse tipo de problema e as regiões afetadas podem ser comparáveis entre si. Isso portanto é útil para pesquisar por "casos" similares e (re)utilizar as experiências em situações problemáticas e medidas de mitigação observadas em outros lugares.

A metodologia CBR é muito apropriada para comparação de casos complexos onde a informação é imcompleta. O AquaStress é baseado no jCOLIBRI (um framework que gera código CBR) e consiste de vários componentes, a saber: um construtor, um publicador, um banco de dados, serviços e uma interface web.

Para mais informações sobre o Aquastress: http://i3s.aquastress.net

Existem outras situações práticas do CBR:

Otimização da eficiência energética: http://www.ami-moses.eu/
Classificação do câncer de mama maligno/benigno: http://proceedings2010.imcsit.org/pliks/192.pdf