E complicado achar uma definicao exata sobre o que seria ontologia. Em ciencias da computacao e informacao, ontologia pode ser entendida como uma representacao formal do conhecimento, sendo um conjunto de conceitos, propriedades e atributos dentro de um dominio e as relacoes entre estes. O paper [1] contem uma definicao de ontologia interessante: "e uma especificacao explicita da conceitualizacao". Enquanto a conceitualizacao e definida como "uma abstracao simplificada de uma visao do mundo que gostariamos de representar para algum proposito".O objetivo da ontologia e facilitar a comunicacao e o intercambio de informacoes entre diferentes sistemas e entidades e sao usadas para realizar inferencias sobre os objetos do dominio. Ontologias sao usadas em varios campos da computacao tais como Inteligencia Artificial, Web Semantica, Engenharia de Software e de Sistemas, como uma representacao do conhecimento sobre o mundo ou de parte deste. Programas de computadores podem usar a ontologia para resolucao de problemas de raciocinio indutivo e classificacao por exemplo.De acordo com [2], ontologias geralmente descrevem:Individuos: os objetos basicos;Classes: conjuntos, colecoes ou tipos de objetos;Atributos: propriedades, caracteristicas ou parametros que os objetos podem ter e compartilhar;Relacionamentos: as formas como os objetos podem se relacionar com outros objetos.Desde a metade da decada de 1970, pesquisadores no campo da Inteligencia Artificial tem reconhecido que a captura do conhecimento e a chave para a construcao de grandes e poderosos sistemas de IA. Estes pesquisadores argumentavam que poderiam criar novas ontologias como modelos computacionais que permitiriam certos tipos de raciocinio automatizado. Ja na decada de 1980, a comunidade de IA comecou a usar o termo ontologia para se referir tanto a teoria de um mundo modelado quanto a um componente de um sistema de conhecimento. Alguns pesquisadores, inspirados pela ontologia filosofica, enxergaram a ontologia computacional como um tipo de filosofia aplicada.[3][1]http://tomgruber.org/writing/ontolingua-kaj-1993.pdf[2] http://pt.wikipedia.org/wiki/Ontologia_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)[3] http://en.wikipedia.org/wiki/Ontology_(information_science) Tudo comecou com a leitura de um post num blog, sobre Online Learning [1], sugestao de um amigo do estagio.Nos comentarios tinha um link para um site com video aulas [2].Chegando la, ja no primeiro link no topo da pagina [3] me interessei e comecei a assistir uma aula de uma hora sobre aprendizado semi-supervisionado.Existem metodos de inferir/formular modelos a partir de um conjunto de dados no qual temos como entrada pares de entrada+saida. Sao os chamados metodos supervisionados.Por exemplo, podemos ter como entrada 1000 emails e saber se cada um deles e um spam ou nao.Seria interessante agora inferir coisas a partir dos dados nao classificados, classificacao nao-supervisionada.Este e o caso quando queremos por exemplo encontrar grupos atraves de uma funcao de similaridade.O aprendizado semi-supervisionado e quando temos alguns dados classificados, e outros nao classificados. Ou seja, temos 1000 emails que sabemos distinguir entre spam e nao-spam, mais digamos 9000 emails que nao sabemos a classificacao.Esses 9000 emails podem ajudar substancialmente a desenvolver um modelo que dado um novo email ele seja classificado corretamente como spam ou nao-spam.Na aula sao mostradas duas categorias de problemas, e que tipo de conjunto de dados funcionam bem usando as tecnicas apresentadas.Expectation Maximization (EM) [4]Co-training [5]Essas tecnicas me deram uma ideia de como posso classificar tweets como positivos