1 faculdades coc trabalho de conclusão de curso
Transcrição
1 faculdades coc trabalho de conclusão de curso
FACULDADES COC TRABALHO DE CONCLUSÃO DE CURSO BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO SISTEMA INTELIGENTE PARA GERAÇÃO DE PSEUDOPALAVRAS Henrique Vieira Lopes Marcel Ferreira Nascimento Orientador: Prof. Lúcio André Castro Jorge RIBEIRÃO PRETO 2011 1 HENRIQUE VIEIRA LOPES MARCEL FERREIRA NASCIMENTO SISTEMA INTELIGENTE PARA GERAÇÃO DE PSEUDOPALAVRAS Trabalho de conclusão de curso apresentado ao Centro Universitário UNISEB de Ribeirão Preto, como parte dos requisitos para obtenção do grau de Bacharel em Ciência da Computação. Orientador: Prof. Lúcio André Castro Jorge RIBEIRÃO PRETO 2011 2 3 TRABALHO DE CONCLUSÃO DE CURSO Aluno: Henrique Vieira Lopes Código: 5875 Aluno: Marcel Ferreira Nascimento Código: 6133 Curso: Ciência da Computação Semestre/Ano: 8º/2011 Tema: Sistema para geração de pseudopalavras usando método de aprendizado inteligente. Objetivos pretendidos: Estudar a viabilidade de se construir um sistema de aprendizado inteligente que reconheça o padrão existente na ordem das letras em palavras contidas em um banco de dados para a criação de pseudopalavras. ___/___/______ _____________________________ Lúcio André Castro Jorge Professor Orientador ___/___/______ _____________________________ Henrique Vieira Lopes Aluno ___/___/______ _____________________________ Marcel Ferreira Nascimento Aluno ___/___/______ _____________________________ Paulo Cesar de Carvalho Dias Coordenador do Curso 4 ___/___/______ _____________________________ Prof. Reginaldo Arthus Vice-Reitor 5 FORMULÁRIO DE AVALIAÇÃO – FATCC Tema: Sistema para geração de pseudopalavras usando método de aprendizado inteligente. Data da apresentação: _____/_____/________ Horário: ____________ Local: _________________________________ Comissão Julgadora: 1) Professor Orientador: _________________________________________________ 2) Professor da Área: ____________________________________________________ 3) Professor Convidado: _________________________________________________ 6 Fatores de Avaliação Pontuação (0.0 a 2.0) 1. Atualidade e relevância do tema proposto. 2. Linguagem técnica utilizada em relação ao tema e aos objetivos, e competência linguística. 3. Aspectos metodológicos e formais da editoração do trabalho escrito - sequência lógica e coerência interna. 4. Revisão Bibliográfica realizada em relação ao tema pesquisado. 5. Apresentação oral – segurança e coerência em relação ao trabalho escrito. Média: ____________ (_________________________________________________) Assinaturas dos membros da Comissão Julgadora: 1) _____/_____/________ ________________________________________________ 2) _____/_____/________ ________________________________________________ 3) _____/_____/________ ________________________________________________ 7 A nossos pais pela paciência e apoio. 8 AGRADECIMENTOS Ao nosso orientador, Prof. Lúcio André Castro Jorge pela dedicação e contribuição, para a concretização deste trabalho. Ao mestre Ricardo Basso Garcia que contribuiu com a sugestão do nosso tema de TCC. Ao Prof. Jean Jacques Groote por nos ajudar a determinar os seguimentos de pesquisa e desenvolvimento do nosso trabalho. Ao Prof. Wagner Aparecido Cavali por contribuir com seu conhecimento estatístico para compreendermos melhor os algoritmos utilizados. A todos os professores que nos lecionaram aulas durante o curso proporcionando todo conhecimento necessário para nossa formação acadêmica e profissional. 9 A imaginação é mais importante que o conhecimento - Albert Einstein 10 RESUMO Este trabalho buscou contribuir para a análise feita por psicólogos, pedagogos e fonoaudiólogos no diagnóstico de consciência fonológica com o estudo das técnicas mais utilizadas no reconhecimento de padrão para desenvolvimento de um programa que utilize uma delas para reconhecer o padrão existente na ordem das letras em palavras de um banco de dados. A partir do padrão reconhecido, criar uma lista de pseudopalavras. Uma vez que criado, foram documentados todos os testes efetuados e também criado outro programa que faz o mesmo procedimento, mas construído de uma forma mais simples para compararmos os resultados. Entre os dois resultados, a rede de bayes apresentou-se melhor, devido a seu poderoso mecanismo de reconhecimento de padrão, porém as palavras geradas tendiam a um padrão, já o outro algoritmo, mesmo com uma taxa de acerto inferior gerou palavras uma variabilidade de letras maior. 11 SUMÁRIO SUMÁRIO .......................................................................................................................... 12 INTRODUÇÃO .................................................................................................................... 20 CAPITULO 1. RECONHECIMENTO DE PADRÕES ................................................................. 24 1.1 CONSIDERAÇÕES INICIAIS ................................................................................................ 24 1.2 INTRODUÇÃO AO RECONHECIMENTO DE PADRÕES ................................................................. 24 1.3 TÉCNICAS DE RECONHECIMENTO DE PADRÕES ....................................................................... 25 1.3.1 TÉCNICA POR CASAMENTO DE MODELOS .................................................................................. 26 1.3.2 CLASSIFICAÇÃO EM ÁRVORE ................................................................................................... 26 1.3.3 TÉCNICA SINTÁTICA .............................................................................................................. 26 1.3.4 TÉCNICA FUZZY ................................................................................................................... 27 1.3.5 TÉCNICA CONEXIONISTA ........................................................................................................ 28 1.3.6 ALGORITMOS GENÉTICOS ...................................................................................................... 28 1.3.7 TÉCNICAS ESTATÍSTICAS......................................................................................................... 29 1.4 CONSIDERAÇÕES FINAIS .................................................................................................. 30 CAPITULO 2. REDES BAYESIANAS ..................................................................................... 31 2.1 CONSIDERAÇÕES INICIAIS................................................................................................. 31 2.2 TEORIA DA PROBABILIDADE .............................................................................................. 31 2.2.1 NOTAÇÃO PROPOSICIONAL .................................................................................................... 31 2.2.2 ESPAÇO AMOSTRAL, EVENTOS E VARIÁVEIS ALEATÓRIAS. ............................................................. 32 2.2.3 DISTRIBUIÇÃO DE PROBABILIDADE CONJUNTA ........................................................................... 33 2.2.4 PROBABILIDADE A PRIORI ...................................................................................................... 33 2.2.5 PROBABILIDADE CONDICIONAL ............................................................................................... 33 2.2.6 AXIOMAS DA PROBABILIDADE................................................................................................. 34 2.2.7 INDEPENDÊNCIA .................................................................................................................. 34 2.3 REDES BAYESIANAS ........................................................................................................ 35 2.3.1 RACIOCÍNIO PROBABILÍSTICO.................................................................................................. 35 2.3.2 TEOREMA DE BAYES ............................................................................................................. 35 2.3.3 DEFINIÇÃO DE REDES BAYESIANAS ........................................................................................... 36 12 2.3.4 CONSTRUÇÃO DE REDES BAYESIANAS ....................................................................................... 37 2.4 INFERÊNCIA BAYESIANA ................................................................................................... 38 2.4.1 MÉTODOS EXATOS ............................................................................................................... 38 2.4.2 MÉTODOS APROXIMADOS ..................................................................................................... 41 2.5 APRENDIZADO BAYESIANO .............................................................................................. 43 2.5.1 ALGORITMO K2 ................................................................................................................... 43 2.5.2 ALGORITMO EM ................................................................................................................. 44 2.6 CONSIDERAÇÕES FINAIS .................................................................................................. 45 CAPITULO 3. IMPLEMENTAÇÃO. ...................................................................................... 46 3.1 CONSIDERAÇÕES INICIAIS................................................................................................. 46 3.2 BASE DE PALAVRAS ........................................................................................................ 46 3.3 REDE DE BAYES ............................................................................................................. 48 3.3.1 WEKA ................................................................................................................................ 48 3.3.2 DEFINIÇÃO DE ATRIBUTOS ..................................................................................................... 48 3.3.3 PROJETO ............................................................................................................................ 50 3.4 ALGORITMO DE MÉDIA PONDERADA ................................................................................... 51 3.4.1 DEFINIÇÃO DE ATRIBUTOS ..................................................................................................... 51 3.4.2 CALCULO DE MÉDIAS PONDERADAS ......................................................................................... 51 3.4.3 ESTRUTURA ........................................................................................................................ 51 3.4.4 PROJETO ............................................................................................................................ 52 3.4.5 CONSIDERAÇÕES FINAIS ........................................................................................................ 55 CAPITULO 4. RESULTADO, TESTES E DISCUSSÃO. .............................................................. 57 4.1 CONSIDERAÇÕES INICIAIS ................................................................................................ 57 4.2 REDE DE BAYES ............................................................................................................. 57 4.2.1 TESTES DE TREINAMENTO DA REDE DE BAYES COM A BASE DE PALAVRAS COMPLETA ....................... 57 4.2.2 TESTES DE TREINAMENTO DA REDE DE BAYES APENAS COM PALAVRAS DISTINTAS ........................... 58 4.2.3 RESULTADO DA GERAÇÃO DE PSEUDOPALAVRAS ........................................................................ 59 4.2.4 DISCUSSÃO ......................................................................................................................... 61 4.3 ALGORITMO DE MÉDIA PONDERADA................................................................................... 62 4.3.1 RESULTADOS E TESTES .......................................................................................................... 62 4.3.2 DISCUSSÃO ......................................................................................................................... 67 13 4.4 CONSIDERAÇÕES FINAIS .................................................................................................. 67 CAPITULO 5. CONCLUSÃO E TRABALHOS FUTUROS. ......................................................... 68 CAPITULO 6. REFERÊNCIAS .............................................................................................. 69 14 LISTA DE QUADROS Quadro 1 - Exemplo de proposições .............................................................................. 31 Quadro 2 - Proposições compostas................................................................................. 32 Quadro 3 - Tabela verdade ............................................................................................. 32 Quadro 4 - Exemplo de eventos no espaço amostral ...................................................... 32 Quadro 5 - Exemplo de distribuição de probabilidade (DEVORE, 2006) ..................... 33 Quadro 6 - Probabilidade a priori (RUSSEL & NORVIG, 2004) .................................. 33 15 LISTA DE TABELAS Tabela 1 – Representação da probabilidade de acerto após o treinamento da Rede de Bayes .............................................................................................................................. 57 Tabela 2 - Representação da probabilidade de acerto após o treinamento da Rede de Bayes com palavras distintas .......................................................................................... 58 Tabela 3 - Pseudopalavras geradas pela rede ................................................................. 60 Tabela 4 - Pseudopalavras geradas pela rede ................................................................. 60 Tabela 5 - Pseudopalavras geradas pela rede ................................................................. 61 Tabela 6 - Teste para geração de pseudopalavras com 4 letras ...................................... 62 Tabela 7 - Teste para geração de pseudopalavras com 5 letras ...................................... 63 Tabela 8 - Teste para geração de pseudopalavras com 6 letras ...................................... 65 Tabela 9 - Teste para geração de pseudopalavras com 7 letras ...................................... 66 16 LISTA DE ILUSTRAÇÕES Figura 1 – Intersecção (DEVORE, 2006) ....................................................................... 34 Figura 2 - Rede Bayesiana - (RUSSEL & NORVIG, 2004). ......................................... 37 Figura 3 - Algoritmo Enumeração - (RUSSEL & NORVIG, 2004). ............................. 40 Figura 4 - Representação gráfica do processo de construção da base de palavras. ........ 47 Figura 5 - Representação gráfica do processo de geração de pseudopalavras através da rede de bayes. ................................................................................................................. 50 Figura 6 - Exemplo da estrutura de dados arvore utilizada pelo algoritmo de média ponderada........................................................................................................................ 52 Figura 7 - Representação gráfica do processo de geração de pseudopalavras através do algoritmo de média ponderada. ...................................................................................... 53 17 LISTA DE ALGORITMOS Algoritmo 1 - Enumeração - (VALENTIM , 2007). ...................................................... 39 Algoritmo 2 - Eliminação de Variáveis - (VALENTIM , 2007). ................................... 41 Algoritmo 3 - Ponderação de Amostragem - (VALENTIM , 2007). ............................. 42 Algoritmo 4 - Amostragem de Gibbs - (VALENTIM, 2007) ........................................ 43 Algoritmo 5 - Algoritmo K2 - (COOPER & HERSKOVITS, 1992) ............................. 44 18 LISTA DE EQUAÇÕES Equação 1 - Probabilidade condicional .......................................................................... 34 Equação 2 - Independência ............................................................................................. 35 Equação 3 - Regra de bayes ............................................................................................ 35 Equação 4 - Somatório dos termos da distribuição conjunta de probabilidade .............. 38 Equação 5 - Cálculos iniciais de média ponderada ........................................................ 54 Equação 6 - Cálculo da probabilidade do novo nó ......................................................... 54 Equação 7 - Recalculo do valor do nó ............................................................................ 54 19 INTRODUÇÃO Em grande parte as crianças possuem problemas quanto à aprendizagem da leitura e escrita no ensino fundamental. Com o interesse de resolver esse problema, psicólogos, pedagogos e fonoaudiólogos buscam investigar a capacidade com que as crianças desenvolvem a interpretação sobre os símbolos já que a linguagem escrita é a representação visual da linguagem oral. Este estudo avalia a capacidade de reconhecimento de palavras após a criança passar pelo processo de informação fonológico e ortográfico, que lhes ensina as relações entre grafemas e fonemas na qual uma silaba corresponde a pequenos segmentos sonoros, dando assim a noção de que a combinação entre as letras do alfabeto produz um som e a combinação desses sons produz uma palavra (BARREIRA; MALUF, 2003; GINDRI; KESKE-SOARES; MOTA, 2007). O reconhecimento de palavras é feito por duas rotas distintas, rota fonológica e a rota lexical. A rota fonológica utiliza o conhecimento das regras de conversão entre grafema e fonema para que a construção da pronúncia da palavra possa ser efetuada, para avaliar esse processo de decodificação é recomendada a leitura de pseudopalavras, pois determina a capacidade do leitor identificar palavras que ele não conhece. A rota lexical depende do reconhecimento de uma palavra previamente adquirida, memorizada no sistema de reconhecimento visual de palavras, recuperação do significado e da pronúncia por meio de endereçamento direto ao léxico. A avaliação desse processo de reconhecimento é feito através da leitura de palavras reais isoladas, pois desta forma não há sugestões psicolinguísticas, pictóricas ou contextuais (CUNHA; CAPELLINI, 2010). Uma pseudopalavras é uma sequência de fonemas ou grafemas que não determinam uma palavra da língua (SALLES; PARENTE, 2006). A avaliação da deficiência de reconhecimento de palavras pode ser realizada pelo processo de leitura em voz alta, conforme descrito na pesquisa de Marco Pezzani França (FRANÇA, 2007). França conta que, diante de palavras reais, a pronúncia é recuperada pela rota lexical, pois após serem reconhecidas no léxico visual de entrada, a pronúncia é recuperada do léxico fonêmico de saída. No caso da leitura de pseudopalavras, a identidade dos grafemas é transmitida do sistema de análise visual para o sistema de conversão grafema-fonema, onde os elementos fonêmicos podem ser recuperados e agrupados para produzir a pronúncia, utilizando assim a rota fonológica. França (2007) completa que palavras mais familiares tendem a serem 20 reconhecidas/produzidas mais rapidamente ou mais corretamente e isto caracteriza o uso da rota lexical na leitura em voz alta, ao passo que, palavras pouco familiares são reconhecidas/produzidas mais lentamente, de forma silabada ou com omissões/substituições de fonemas, o que caracteriza o uso da rota fonológica. Este trabalho propõe a geração automática de pseudopalavras para auxiliar psicólogos, terapeutas, pedagogos, professores e pesquisadores no teste de avaliação da capacidade de reconhecimento de palavras e assim melhorar o diagnóstico de deficiências no processo de alfabetização. Este é o primeiro estudo em nosso conhecimento direcionado a geração de pseudopalavras, porém se assemelha com trabalhos em reconhecimento de padrões linguísticos. Laila Beatriz Soares Melo (MELO, 2007) utiliza técnicas probabilísticas de aprendizado de máquina para buscar semelhanças em um texto e categoriza-lo automaticamente. Ricardo Basso Garcia (GARCIA, 2006) replicou uma experiência utilizando redes neurais artificiais que extrai o conhecimento sintático-semântico para formar sentenças linguísticas. José Mauro da Silva (SILVA, 2007) em seu mestrado, desenvolveu a extração de conhecimento de objetos textuais por meio de reconhecimento de padrões, mais especificamente com técnicas de processamento de linguagem natural e Naive-bayes (técnica probabilística de mineração de dados). Em todos estes trabalhos o reconhecimento de padrões é estudado através de um recurso da inteligência artificial chamado de aprendizagem de máquina. Na aprendizagem de máquina o reconhecimento de padrão se divide em duas áreas: reconhecimento de padrão supervisionado, na qual consiste de um professor que interfere no processo de correção de erros buscando o padrão desejado. A outra área é o reconhecimento de padrão não supervisionado que consiste na aprendizagem sem professor ou qualquer outra estrutura que interfira na classificação dos dados (HAYKIN, 2001). Dentre as principais técnicas de aprendizagem de maquina que existem podemos citar redes neurais artificiais, árvores de decisão, mapas auto-organizáveis, redes bayesianas e modelos de markov. Escolhemos a rede de bayesiana por admitir o aprendizado a partir da experiência e combinar o melhor da inteligência artificial clássica e das redes neurais. A rede bayesiana é definida como uma rede probabilística que utiliza a regra de bayes para calcular suas hipóteses ponderadas por suas 21 probabilidades, onde a hipótese determina a distribuição de probabilidade. A cada hipótese existe uma probabilidade a priori correspondente. Cada nó da rede possui um rótulo com a hipótese e uma tabela com as probabilidades, e o padrão reconhecido pela rede é encontrado de acordo com o percurso feito na mesma, depois de uma série de treinamentos que permitiu que ela se adaptasse ao número expressivo de dados correspondentes a uma determinada sequencia de hipóteses (STUART; PETER, 2004). Com o apoio das redes bayesianas, aplicado na extração do padrão de relacionamento entre letras de uma palavra, este trabalho propõe extrair de uma linguagem o padrão de formação das palavras (grafemas) e posteriormente utilizar este para criar possíveis pseudopalavras. Para isso precisamos de uma base de palavras que represente a linguagem a quem deve pertencer a pseudopalavra. A partir da base de palavras, nosso sistema utilizará as técnicas citadas de reconhecimento de padrão com o objetivo de identificar um padrão estatístico de combinações de letras, estes padrões serão recombinados para gerar uma nova pseudopalavra. Para efeito de comparação de resultados, também foi desenvolvido um programa que faça a geração de pseudopalavras através de um simples cálculo de média ponderada, utilizando a mesma base de palavra e os mesmos atributos. Com esta comparação foi analisado a eficiência de um programa simples versus um sistema inteligente. Os produtos deste trabalho serão uma contribuição científica, através de um trabalho de conclusão de curso, e uma ferramenta que auxilie o diagnóstico de testes da consciência fonológica na investigação dos processos cognitivos no conhecimento linguístico. Como base para o desenvolvimento do sistema proposto neste trabalho, no capitulo 1 é apresentada uma revisão teórica referente aos conhecimentos necessários para desenvolvimento do projeto, como conceitos e técnicas de aprendizado de máquina que é a base para o reconhecimento de padrão dos grafemas, que será realizado no processamento das palavras. No capítulo 2 foi aprofundado o estudo de uma técnica probabilística de reconhecimento de padrão. A Rede de Bayes é um dos ramos de aprendizado de máquinas e será utilizada na extração e representação do conhecimento referente à formação das palavras. 22 O capítulo 3 relata a definição da base de palavras e dos atributos necessários para representação do relacionamento entre as letras, bem como o desenvolvimento dos sistemas de geração de pseudopalavras a partir dos conceitos citados nos capítulos anteriores. O capítulo 4 apresenta testes realizados com a ferramenta desenvolvida, os resultados, mostrando a probabilidade de acerto e a discussão sobre os resultados obtidos. No último capítulo serão apresentadas as conclusões e trabalhos futuros. 23 CAPÍTULO 1 RECONHECIMENTO DE PADRÕES 1.1 CONSIDERAÇÕES INICIAIS O fato de algumas palavras pertencerem a mesma linguagem implica que elas possuem um padrão que às define como participante desta, devemos então reconhecer este padrão para conseguir reproduzi-lo e posteriormente gerar novas palavras. Neste capítulo, é o início do estudo ao reconhecimento de padrão e algumas de suas técnicas com o objetivo de aprendê-las para posteriormente aprofundar em uma específica. 1.1.1 INTRODUÇÃO AO RECONHECIMENTO DE PADRÕES Reconhecimento de padrões é a área de pesquisa que tem por objetivo a classificação de objetos em categorias ou classes (THEODORIDIS, 1999). Ele é formalmente definido como o processo pelo qual um padrão/sinal recebido é atribuído a uma classe dentre um número predeterminado de classes (HAYKIN, 2001). Os seres humanos são bons no reconhecimento de padrões, através de um processo de aprendizagem analisamos o mundo a nossa volta e sem esforço podemos reconhecer a fonte dos dados (HAYKIN, 2001). A experiência humana de reconhecimento de padrões se refere a um processo perceptivo em que os padrões (sensorial, conceitual ou lógico) são analisados e classificados como sendo familiar, quer no sentido de ter sido uma experiência prévia ou, sendo semelhante ou associado a uma experiência anterior (HEDE, 1994). Apesar da naturalidade e simplicidade que o ser humano reconhece padrões, sua implementação em meios computacionais pode requerer processos bastante complexos (SILVA, 2007), este trabalho e outras técnicas que permitem aos computadores fazerem coisas que parecem inteligentes quando feitas por pessoas é estudado em inteligência artificial (HEDE, 1994). Embora não seja certamente possível descrever o método o qual o cérebro humano aprende com experiências passadas para realizar o reconhecimento de padrões, fica evidente que o aprendizado é um componente indispensável nesta tarefa, tanto para máquinas quanto para humanos. Em alguns casos o aprendizado é feito com a ajuda de um professor, ou seja, um agente externo fornece amostras de treinamento já classificadas, tais amostras tornam-se representantes das classes a que pertencem, elas 24 então podem ser processadas de forma adequada para que as informações específicas de sua classificação possam ser extraídas através delas. Este processo denomina-se reconhecimento de padrões supervisionado. Se as amostras fornecidas para aprendizagem não foram previamente classificadas, temos um caso de reconhecimento de padrões não supervisionado. Nesses casos, a aprendizagem se dá pela descoberta dos grupos naturais inerentes ao conjunto de treinamento, ou seja, os padrões são associados a uma classe que é aprendida de acordo com a semelhança dos padrões de treinamento (PAL S.; PAL A., 2001). Aplicações de reconhecimento de padrões incluem reconhecimento de caracteres, diagnóstico médico, problemas bancários, análise de sinais e imagens biomédicas, reconhecimento e compreensão de línguas, identificação de faces humanas e impressões digitais, confiabilidade, automação industrial, socioeconômica, arqueologia, controle de qualidade e outras (STEINER, 1995). 1.2 TÉCNICAS DE RECONHECIMENTO DE PADRÕES A maioria das abordagens concebidas para resolver problemas de reconhecimento de padrão utiliza um conjunto de medidas que definem a característica de um padrão. Assim a escolha cuidadosa dessas medidas é importante, pois o ideal é utilizar todas as medições de um determinado padrão, em contra partida muitas características tornam o classificador confuso e podem ser redundantes. Duas grandes abordagens são utilizadas tradicionalmente para ajudar nesta tarefa. A primeira é a seleção de recursos que visa selecionar um subconjunto das medidas que com o objetivo de otimizar a separação das classes e ao mesmo tempo aumentar a homogeneidade dentro da própria classe. Outra abordagem é chamada de extração de características, que visa reduzir o número de medidas disponíveis através de uma transformação sobre o vetor original de medidas que otimize algum critério de separação entre as classes (PAL S.; PAL A., 2001). Diversas técnicas vêm surgindo ao longo dos anos, graças ao grande interesse e avanços na área de reconhecimento de padrões a fim de fornecer técnicas progressivamente melhores, dentre elas podemos citar como as mais importantes o casamento de modelos, classificação em arvore, sintática, Fuzzy, conexionista, algoritmos genéticos e, estatísticas (JAIN; DUIN; MAO, 2000) (PAL S.; PAL A., 2001). 25 1.2.1 TÉCNICA POR CASAMENTO DE MODELOS É uma das abordagens mais antigas e simples para reconhecimento de padrões. Casamento é uma operação genérica de reconhecimento de padrão que é utilizado para determinar a similaridade entre duas entidades do mesmo tipo. Nesta técnica, um padrão a ser reconhecido é comparado com um modelo armazenado, muitas vezes aprendido a partir do conjunto de treinamento (JAIN; DUIN; MAO, 2000). Por exemplo, no caso de imagens o modelo é uma forma 2D a qual é levado em consideração suas variações como translação, rotação e mudanças na escala, a medida de similaridade entre os modelos é que definirá o reconhecimento do padrão. A maior desvantagem desta técnica está no alto custo computacional, mais a disponibilidade de processadores mais rápidos a tornou mais viável. 1.2.2 CLASSIFICAÇÃO EM ÁRVORE O modelo de classificação em árvore fornece uma descrição hierárquica da base de conhecimento onde a raiz é o topo e cada exemplo é passado para baixo da árvore. Em cada nó são tomadas decisões até chegar a um nó terminal, este nó é responsável pelo rótulo de classificação do padrão. O aspecto mais crucial de classificação baseado em árvores é a construção automática de árvores a partir de um conjunto de exemplos. Dentre a grande diversidade de algoritmos existentes as principais diferenças são as regras usadas para decidir e na estratégia de poda (a remoção de sub-árvores redundantes). Para ambas as atividades são utilizados critérios de otimização como ganho de informação ou entropia. Por ser de fácil compreensão este modelo tem sido popular em áreas como biologia e as ciências médicas (PAL S.; PAL A., 2001). 1.2.3 TÉCNICA SINTÁTICA Esta abordagem faz uma analogia entre a estrutura hierárquica de padrões e a sintaxe das linguagens. Os padrões são especificados como construção de sub-padrões em várias formas de composição assim como frases e sentenças são constituídas pela concatenação de palavras e as palavras por sua vez são constituídas concatenando caracteres. A vantagem desta abordagem é que sub-padrões mais simples, chamados de “primitivo padrão”, são muito mais fáceis de reconhecer que os próprios padrões. A descrição estrutural dos padrões em termos de um conjunto de padrões primitivos e as operações de sua composição é denominada linguagem. As regras que ditam a 26 composição entre sub-padrões é denominada gramática e normalmente podem ser expressas por meio de lógica e operações matemáticas. Um sistema de reconhecimento de padrão sintático pode ser considerado constituído de três partes principais: o pré-processamento, a descrição do padrão e análise da sintaxe. Basicamente, o processo de pré-processamento consiste em aproximar o padrão de entrada a um modelo aceitável, por exemplo, em uma imagem em preto-e-branco pode ser codificada em uma matriz ou uma expansão em série de Fourrier. Então cada padrão pré-processado é tratado para extrair primitivas em relação a ele no processo de descrição do padrão. A decisão sobre se o padrão apresentado está sintaticamente correto, ou seja, pertente à classe de padrões descrita pela gramática é a tarefa do analisador de sintaxe (FU, 1977). 1.2.4 TÉCNICA FUZZY Esta técnica de reconhecimento de padrões tem o objetivo de aprimorar o agrupamento dos dados, levando em consideração a incerteza de classificação de um atributo. O objetivo do agrupamento é a partição de um conjunto de dados em grupos homogéneos, onde o elemento de um grupo compartilha atributos semelhantes entre o próprio grupo e não compartilham atributos semelhantes com elementos de outro grupo (PAL S.; PAL A., 2001). Nos agrupamentos tradicionais é utilizada a lógica booleana, onde um elemento tem a obrigatoriedade de pertencer a um grupo e sua unidade de participação é um. A lógica Fuzzy é uma generalização do agrupamento tradicional onde a participação de um elemento em um grupo é medida usando valores de pertinência, entre 0 e 1, onde 0 representa que é completamente incompatível com um atributo, 1 representa que é completamente compatível com um atributo e valores entre 0 e 1 representam que é parcialmente compatível com um atributo, com grau de participação de acordo com este valor (SANDRI; CORREA, 1999). Em outras palavras a lógica Fuzzy dá uma noção de incorporação, no sentido de que a melhor solução para um problema booleano pode ser encontrada através da visualização do espaço, submetendo-a a diferentes restrições, permitindo assim uma liberdade maior para o algoritmo evitar erros que são forçados pelas imposições da teoria clássica dos conjuntos. A técnica Fuzzy para o reconhecimento de padrões pode ser aplicada na identificação de um padrão desconhecido, em características linguísticas, associado a 27 árvores de decisão, gramáticas de estrutura frasal, e assim por diante, que levam a formas difusas de métodos clássicos de classificação supervisionada (PAL S.; PAL A., 2001). 1.2.5 TÉCNICA CONEXIONISTA O ser humano realiza o reconhecimento de padrões através de um processo de aprendizagem, e assim acontece com a técnica conexionista ou redes neurais. Uma rede neural realiza o reconhecimento de padrões passando inicialmente por uma sessão de treinamento, o aprendizado supervisionado. Mais tarde apresenta-se à rede um novo padrão que pertence à mesma população de padrões do treinamento, a rede consegue então identificar o novo padrão apresentado, com base no conhecimento extraído da fase de treinamento. Genericamente podemos dividir as máquinas de reconhecimento de padrões que utilizam redes neurais em: Uma rede não supervisionada para extração de características (transformação de um ponto X em um ponto intermediário Y para reduzir a dimensionalidade) e uma rede supervisionada para classificação (o mapeamento do ponto intermediário Y em uma das classes); Uma rede única de múltiplas camadas alimentada adiante, utilizando aprendizagem supervisionada. Neste modelo a extração de características é feita por unidades ocultas dentro da rede (HAYKIN, 2001). Uma rede neural pode ser vista como grafos ponderados, onde os nós são os neurônios e as arestas a interconexão entre eles (PAL S.; PAL A., 2001). Cada neurônio é composto por um vetor de entrada, para cada entrada há um peso correspondente e a soma das entradas ponderadas pelos pesos correspondentes é chamada de saída linear, a esta saída é aplicada uma função de ativação e o resultado desta operação é o sinal de ativação que passa pelas arestas (RESENDE, 2003). O reconhecimento de padrão conexionista tem uma resistência natural ao ruído, tolerância a imagens distorcidas, capacidade superior em reconhecer imagens parcialmente degradadas e possibilita processamento paralelo (PAL S.; PAL A., 2001). 1.2.6 ALGORITMOS GENÉTICOS Os algoritmos genéticos são estratégias evolucionárias inspiradas no principio de que o mais apito sobrevive, direcionado a evolução, seleção natural, e algumas leis 28 genéticas. Eles são capazes de oferecer uma solução próxima do ideal com uma boa performance pois ele não fica preso num mínimo local. A técnica assume um conjunto de soluções ligadas umas nas outras, chamadas de cromossomos. Nestas soluções são aplicadas várias iterações, chamadas de gerações, cada geração possui uma função que indique os elementos mais aptos para a solução, que são chamados de cromossomos parentes e são então selecionados para a reprodução. O processo de reprodução tem operações como seleção/reprodução, crossover e mutação, que definem o novo conjunto de elementos, teoricamente mais aptos. Essas operações são repetidas até que o conjunto de dados seja estabilizado, então a última solução será a mais próxima da realidade (PAL S.; PAL A., 2001). 1.2.7 TÉCNICAS ESTATÍSTICAS No início do desenvolvimento de reconhecimento de padrões os seus praticantes logo perceberam que as estatísticas e a teoria das probabilidades eram as ferramentas ideais que precisavam. A estatística ajudou a modelar a variabilidade dos padrões no espaço, através de distribuições multiderivadas. Também foi utilizado o método clássico de discriminação linear para maximizar a relação entre a variância dos grupos e para dentro do grupo, outras técnicas também foram construídas usando outros métodos, como mínimos quadráticos e programação linear (PAL S.; PAL A., 2001). A teoria em geral consiste em que, a partir de um modelo reconhecido, o mesmo é transformado em um vetor de características e posteriormente gera-se um padrão na base. De posse dessa base treinada, realiza-se uma operação matemática que compara um novo elemento com o padrão da base. As técnicas estatísticas tradicionais são regressão logística e árvores de classificação e regressão. A ideia básica da regressão logística é estabelecer uma relação linear entre as variáveis explicativas e a variável resposta, utilizando máxima verossimilhança. As árvores de classificação e regressão são métodos de regressão não paramétricos, que tem por objetivo estabelecer uma relação entre um vetor de variáveis preditoras e uma única variável de respostas, o vetor é ajustado por sucessivas divisões binárias do conjunto de dados de forma a deixar o subconjunto cada vez mais heterogêneo. Os componentes básicos de uma árvore de regressão são os nós e as regras de divisão (FERREIRA;SOARES;CRUZ, 2001). Os melhores modelos para reconhecimento de padrão provêm da teoria de bayes, que se aplica a todos os métodos quadráticos, lineares ou parciais. A técnica bayes 29 consiste em avaliar hipóteses estatísticas com a teoria de probabilidade à posteriori, ela consegue mostrar soluções ótimas minimizando custo e probabilidade de erro (FUKUNAGA, 1990). 1.3 CONSIDERAÇÕES FINAIS Neste capítulo foi estudado o que é reconhecimento de padrão e as diversas técnicas que podem ser aplicadas, chamando mais a atenção para as técnicas probabilísticas, pois podem representar a frequência das combinações de letras em uma palavra e assim extrair as maiores. No próximo capítulo será apresentado um estudo mais detalhado sobre uma técnica específica das técnicas probabilísticas de reconhecimento de padrões. 30 CAPÍTULO 2 REDES BAYESIANAS 2.1 CONSIDERAÇÕES INICIAIS Com o estudo realizado no capítulo anterior que, evidenciou a necessidade de reconhecimento de padrões entre as letras para desenvolvermos novas pseudopalavras neste capítulo será apresentado primeiramente uma revisão sobre a teoria das probabilidades e posteriormente um estudo detalhado referente as Redes Bayesianas. 2.2 TEORIA DA PROBABILIDADE 2.2.1 NOTAÇÃO PROPOSICIONAL A proposição é representada por meio de palavras ou uma sequência de símbolos que afirma algo como verdadeiro. Essas afirmações são feitas com base em notação lógica, na qual se resulta em valores atômicos: verdadeiro V, falso F (ALENCAR FILHO, 2002). Exemplos de proposições: p = A Terra é redonda. q = O mar é azul. r = O número pi é racional. s = Henrique é estudante. Quadro 1 - Exemplo de proposições Estas são proposições simples quando combinadas se tornam proposições compostas A sua compreensão se dá por meio de operações lógicas efetuadas em cadeia. Toda proposição composta depende unicamente das proposições simples que pertencem a ela, sendo assim o resultado das partes resulta no todo (ALENCAR FILHO, 2002). As proposições compostas são construídas por conectivos como NÂO (~, ¬), E (^) , OU (v), SE (→), SE SOMENTE SE (↔) . Exemplos de proposições compostas: 31 s = (p ^ q) s = (~p ^ q) v (p ^ ~r) s = (~p ^ q) → (p ^ ~r) s = (q ↔ ~r) Quadro 2 - Proposições compostas A partir das proposições compostas podemos criar a tabela verdade. Para sua construção é utilizado o teorema, na qual n é o número de proposições simples, 2 n é o número de linhas e as colunas são todas as proposições (ALENCAR FILHO, 2002). Exemplo de tabela verdade: p q (p ^ q) V F F V V V F F F F V F Quadro 3 - Tabela verdade 2.2.2 ESPAÇO AMOSTRAL, EVENTOS E VARIÁVEIS ALEATÓRIAS. O espaço amostral é representado pela letra S, que significa o conjunto de todos os resultados possíveis para um determinado experimento. Já os eventos são os subconjuntos do espaço amostral. Um evento atômico consiste em uma especificação completa dos estados observáveis do experimento aleatório. Por exemplo: Ao fazer o lançamento de uma moeda os eventos obtidos são: Evento 1: CCKC Evento 2: KKKC Evento 3: CCKC Quadro 4 - Exemplo de eventos no espaço amostral Os possíveis resultados de um espaço amostral são associados a rótulos, chamados de variável aleatória (DEVORE, 2006). As mesmas podem ser classificadas em 3 tipos: Variáveis aleatórias booleanas (assumem valores do tipo verdadeiro ou 32 falso), variáveis aleatórias discretas (assumem valores enumeráveis) e variáveis contínuas (assumem valores reais como os números entre 0 a 1) (RUSSEL & NORVIG, 2004) 2.2.3 DISTRIBUIÇÃO DE PROBABILIDADE CONJUNTA A distribuição de probabilidade conjunta determina as probabilidades associadas aos possíveis valores de qualquer variável X. A distribuição denota como a variável X foi distribuída de tal forma para que probabilidade total seja igual a um. Por exemplo: Suponha que queremos saber qual tipo computador será mais vendido no inicio do ano, laptop ou desktop. X = 1 se o cliente comprar um laptop 0 se o cliente comprar um desktop Se 20% dos compradores escolheram laptop, a distribuição fica dessa forma: P(0) = P(X = 0) = P (próximo cliente comprar laptop) = 0,8 P(1) = P(X = 1) = P (próximo cliente comprar desktop) = 0,2 Quadro 5 - Exemplo de distribuição de probabilidade (DEVORE, 2006) 2.2.4 PROBABILIDADE A PRIORI Também conhecia como probabilidade incondicional é a suposição de uma informação pré-estabelecida na ausência de informações. Por exemplo: Os possíveis valores para o lançamento de um dado. P(Dado) = <1, 2, 3, 4, 5, 6> Também pode representar um intervalo de variáveis contínuas. Por exemplo: P(X = x) = U [18, 26](x) Sendo U o intervalo das possíveis temperaturas em graus Celsius. Quadro 6 - Probabilidade a priori (RUSSEL & NORVIG, 2004) 2.2.5 PROBABILIDADE CONDICIONAL A probabilidade condicional é a relação entre duas probabilidades a priori. O quanto uma probabilidade é capaz de influenciar a ocorrência de outra sendo a probabilidade de A dado que ocorreu B é definida pela equação: 33 P(A | B) = P (A ∩ B) P(B) Equação 1 - Probabilidade condicional E pelo diagrama de Venn. Figura 1 – Intersecção (DEVORE, 2006) 2.2.6 AXIOMAS DA PROBABILIDADE P(A) representa a probabilidade de ocorrência do evento A. Para que essa probabilidade seja consistente devem-se satisfazer os axiomas abaixo: Axioma 1 0 <= P(A) <= 1 Axioma 2 P(S) = 1 Axioma 3 Se A1, A2, A3,... , An for um conjunto mutuamente exclusivo, a junção de todas essas probabilidades resulta em 1. Quadro 7 - Axiomas de probabilidade 2.2.7 INDEPENDÊNCIA A independência ocorre quando a ocorrência de uma probabilidade não interfere no valor da outra. Por exemplo: a ocorrência do evento B dada à probabilidade de A, o valor de P(A | B) é igual ao valor de A, pois B não interfere no valor da probabilidade condicional. A proposição que define a independência de A e B é dada por: 34 Equação 2 - Independência P (A ∩ B) = P(A) . P(B) A independência condicional também pode ocorrer de maneira múltipla. Basta que exista uma série de eventos (A1, A2, ...., An) que ocorram sequencialmente na qual o evento A1 não interfira na probabilidade do evento A2 e assim sucessivamente (DEVORE, 2006). 2.3 REDES BAYESIANAS 2.3.1 RACIOCÍNIO PROBABILÍSTICO A aleatoriedade e julgamento incerto faz parte do mundo real. Por isso precisamos de paradigmas que suportem a represenção de medidas quantitativas de declarações incertas e métodos para combinação das medidas de raciocínio para tomada de decisões. A teoria das probabilidades é o método em vigor para lidar com a incerteza, tanto que vem sendo estudado muito recentemente (KJAE RULFF; MADSEN, 2008). Esse raciocínio é utilizado de tal forma que permite o relacionamento de independências condicionais denotado que o valor de X interfere no valor de Y. 2.3.2 TEOREMA DE BAYES Este teorema foi descrito baseado no conceito de independência probabilística, sendo assim principal requisito para muitos sistemas de IA que usam inferência probabilística. A equação da regra de bayes é dada por: Equação 3 - Regra de bayes P(A | B) = P(B | A) P(A) P(B) Para que o teorema seja aplicado precisa-se de três probabilidades condicionais e duas incondicionais. Exemplo: 35 Possui durante 50% do tempo rigidez no pescoço quem tem meningite. Probabilidade de um paciente possuir meningite é 1 / 50000. Probabilidade de qualquer um possuir rigidez no pescoço é 1 / 20. P(s | m) = 0,5 P(m) = 1 / 50000 P(s) = 1 / 20 P(m | s) = P(s | m) P(m) = P(0,5 | 1/50000) = 0,0002 P(s) P(1/20) Quadro 8 - Aplicação da regra de bayes O uso da regra de bayes é aplicado em cada relação da rede bayesiana de acordo com a arquitetura que foi criada a rede (RUSSEL & NORVIG, 2004) . 2.3.3 DEFINIÇÃO DE REDES BAYESIANAS Uma rede bayesiana é um grafo orientado que possui a distribuição de probabilidade conjunta total de um espaço amostral. Um conjunto de variáveis aleatórias que constitui os nós da rede, que possam ser tanto discretas quanto contínuas. Um conjunto de elos dirigidos entre os nós para representar a ligação de uma variável aleatória com outra. O nó pai aponta com uma flecha para o nó filho. Cada nó Xi possui uma distribuição de probabilidade condicional P(Xi | Pais(Xi)) que representa o efeito dos pais sobre o nó. Não deve possuir ciclos. Por isso é a rede bayesiana é um grafo acíclico. 36 Exemplo de rede Bayesiana: Figura 2 - Rede Bayesiana - (RUSSEL & NORVIG, 2004). Toda variável aleatória, Xi é condicionalmente independente de qualquer subconjunto de nós que não são seus descendentes, conhecidos os nós pais de Xi (representados por pa(Xi)). Assim, considerando-se X1, X2,..., Xn como os nós de uma rede bayesiana e tomando-se uma tabela condicional correspondente a cada nó (RUSSEL & NORVIG, 2004). 2.3.4 CONSTRUÇÃO DE REDES BAYESIANAS Para a construção de redes bayesianas é preciso ordenar as variáveis aleatórias. Assim na distribuição conjunta de probabilidade P(X1, X2, ..., X3), o valor de X1 é considerado como valor raiz (PEARL, 1986a). Passos para criar uma rede bayesiana: 1. Escolha o conjunto de variáveis relevantes Xi que descrevam o domínio. 2. Defina uma ordenação para as variáveis. 3. Enquanto restarem variáveis no conjunto: a) Selecione uma variável Xi e adicione um nó para ela à rede. b) Defina os pais de Xi (pa(Xi)) com algum conjunto mínimo de nós que já estão na rede, tal que a propriedade de independência condicional seja satisfeita. c) Defina a tabela de probabilidades condicionais de Xi. Quadro 9 - Construção da rede de bayes (RUSSEL & NORVIG, 2004). O bom funcionamento da rede bayesiana é extremamente dependente da sua estrutura, tanto que os passos anteriores garantem a produção de uma rede acíclica. A rede precisa garantir a sua distribuição de variáveis de acordo com as funções causais, 37 na qual a ordem que os nós são acessados determina a causa e efeito. Todos os valores das variáveis devem ser exaustivos (KJAE RULFF; MADSEN, 2008). 2.4 INFERÊNCIA BAYESIANA O processo de consulta em um sistema de redes bayesianas é computar a distribuição da probabilidade condicional para um conjunto de variáveis de consulta, dado os valores de um conjunto de variáveis de evidência. Isso é chamado inferência bayesiana e permite responder a uma série de “consultas” sobre um domínio de dados. Por exemplo, na área médica, a principal tarefa consiste em obter um diagnóstico para um determinado paciente apresentando certos sintomas (evidências). Esta tarefa consiste em atualizar as probabilidades das variáveis em função das evidências (VALENTIM , 2007). Há três tipos distintos de algoritmos de inferência: exatos, aproximados e simbólicos. Abordaremos nesta monografia apenas os exatos e aproximados. Um algoritmo de inferência denomina-se exato se as probabilidades dos nós são calculadas somente com erros de arredondamento e as limitações de cálculo dos computadores. Os algoritmos por aproximação utilizam distintas técnicas de simulação para obter valores aproximados das probabilidades. Em geral, estes algoritmos são utilizados em casos em que os algoritmos exatos não são aplicáveis ou quando custo computacional é muito alto (CASTILHO & GUTIERREZ, 1997). 2.4.1 MÉTODOS EXATOS 2.4.1.1 ALGORITMO DE ENUMERAÇÃO Qualquer probabilidade condicional pode ser calculada pelo somatório de termos da distribuição conjunta total dada pela formula abaixo: Equação 4 - Somatório dos termos da distribuição conjunta de probabilidade P( X | e) P( X , e, y) y A equação permite responder a qualquer consulta P(X|e) a partir da distribuição conjunta total da rede bayesiana que será utilizada no Algoritmo 1 e a Figura 3. Porém, não é interessante ter quer construir explicitamente uma distribuição conjunta total, pois 38 uma consulta teria complexidade de tempo O(n 2 n ) e complexidade de espaço O( 2 n ) para uma rede com n nós booleanos (RUSSEL & NORVIG, 2004). A ideia básica do algoritmo de enumeração é avaliar a sem ter que montar explicitamente a tabela de probabilidade conjunta total. Apenas, percorrem-se os nós da rede propagando as evidências e extraindo as probabilidades para que sejam feitos os somatórios e multiplicações necessárias. Sabendo que qualquer proposição a é equivalente à disjunção de todos os eventos atômicos em que a é válida, denota-se tal conjunto por e(a). Sabendo também que os eventos atômicos são mutuamente exclusivos (VALENTIM , 2007). “A probabilidade de uma proposição é igual à soma das probabilidades dos eventos atômicos em que ela é válida” (RUSSEL & NORVIG, 2004). Algoritmo 1 - Enumeração - (VALENTIM , 2007). 39 Figura 3 - Algoritmo Enumeração - (RUSSEL & NORVIG, 2004). 2.4.1.2 ALGORITMO DE ELIMINAÇÃO DE VARIÁVEIS O algoritmo de eliminação de variáveis é um melhoramento do algoritmo anterior. A ideia é efetuar os cálculos apenas uma vez e guardar os resultados para uso posterior. Essa é uma forma de programação dinâmica desenvolvida no Algoritmo 2. (RUSSEL & NORVIG, 2004). Dada uma rede bayesiana sobre um conjunto de variáveis, um conjunto de evidência E com seus respectivos valores observados em e, e uma variável de consulta Xq, a computação de P(Xq|e) envolve apenas um subconjunto de distribuições de probabilidade associadas à rede. Se a distribuição de probabilidades P(Xi|pa(Xi)) é necessária para o cálculo da consulta, então diz que Xi é uma variável de requisito. O conjunto de variáveis de requisito é denotado por XR. Variáveis de consulta Xq pertencem necessariamente a XR, mas nem todas as variáveis E pertencem a XR (VALENTIM , 2007). 40 Algoritmo 2 - Eliminação de Variáveis - (VALENTIM , 2007). 2.4.2 MÉTODOS APROXIMADOS Estes algoritmos também são conhecidos como algoritmos de amostragem estocástica. A ideia principal deste método aproximado é usar o modelo da rede bayesiana para simular a influência da evidência sobre o resto das variáveis (JENSEN, 2001). Neste algoritmo as tabelas de probabilidade condicional da rede, gera-se um conjunto de amostras selecionadas aleatoriamente, então se realiza inferência, isto é, aproximam-se probabilidades de variáveis de “consulta” pela frequência de suas aparições na amostra. A exatidão dos resultados vai depender do tamanho das amostras (do número de iterações que geram as amostras) e, diferentemente dos métodos exatos, a estrutura da rede não é relevante no cálculo da inferência, sendo essa uma de suas vantagens principais (VALENTIM, 2007). 2.4.2.1 AMOSTRAGEM ENCAMINHADA A função básica de qualquer algoritmo de amostragem é a geração de amostras a partir de probabilidade conhecida. Por exemplo, uma moeda imparcial pode ser considerada uma variável aleatória Moeda com valores <cara,coroa> e uma distribuição a priori P(Moeda) = <0,5,0,5>. A amostragem a partir dessa distribuição é exatamente igual ao lançamento da moda: com probabilidade 0,5 ela retornará cara, e com probabilidade 0,5 retornará coroa. Dada uma fonte de números aleatórios no intervalo [0,1], é uma questão simples a amostragem de qualquer distribuição sobre uma única variável (RUSSEL & NORVIG, 2004). O processo de amostragem aleatória para redes bayesianas gera eventos a partir de uma rede que não tem nenhuma evidência associada a ela. A ideia é fazer a 41 amostragem uma variável de cada vez, em ordem topológica. A distribuição de probabilidade a partir da qual se obtêm uma amostra do valor está condicionada aos valores já atribuídos aos pais da variável (VALENTIM , 2007). 2.4.2.2 PONDERAÇÃO DE PROBABILIDADE É o método de simulação estocástico mais implementado para inferência em redes bayesianas como demonstrado no Algoritmo 3, em parte por causa da sua fácil implementação e rápido tempo de convergência comparado com o algoritmo amostragem encaminhada. O algoritmo fixa os valores para as variáveis de evidência E e efetua a amostragem apenas das amostragens restantes X e Y. Garantindo que cada evento gerado será consistente com a evidência. Porém, nem todos os eventos são iguais. Antes de efetuar as contas na distribuição para a variável de consulta, cada evento é ponderado pela probabilidade de que o evento concorde com a evidência, medida pelo produto das probabilidades condicionais para cada variável de evidência, dados os seus pais. Intuitivamente, eventos em que a evidência real parece improvável devem receber menor peso (VALENTIM , 2007). Algoritmo 3 - Ponderação de Amostragem - (VALENTIM , 2007). 42 2.4.2.3 AMOSTRAGEM DE GIBBS A amostragem de Gibbs denomina-se de um nó é condicionalmente independente de todos os outros nós de uma rede dados seus pais, filhos e pais de seus filhos. Essa afirmação é equivalente à especificação de que um nó é independente de seus não-descendentes, dados seus pais. Em matemática, física ou estatística a amostragem de Gibbs é um método usado para gerar uma sequência de amostras da distribuição de probabilidade conjunta das variáveis aleatórias. O propósito dessa sequência é aproximar a distribuição conjunta ou computar uma integral (CASELLA & GEORGE, 1992). A principal característica desse comparado aos outros algoritmos de amostragem é de que geram cada evento a partir do nada, já a amostragem de Gibbs gera cada evento fazendo uma mudança aleatória no evento precedente. Portanto, deve-se pensar que a rede se encontra em um determinado estado atual especificando um valor para uma das variáveis não de evidência x. Então, o algoritmo vagueia ao acaso pelo espaço de atribuições completas possíveis, invertendo uma variável de cada vez, mas mantendo fixas as variáveis de evidência como demonstrado no Algoritmo 4 (VALENTIM, 2007). Algoritmo 4 - Amostragem de Gibbs - (VALENTIM, 2007) 2.5 APRENDIZADO BAYESIANO 2.5.1 ALGORITMO K2 O algoritmo K2 avalia as possíveis topologias de uma rede bayesiana calculando a probabilidade dessa topologia gerar uma base de dados. O algoritmo começa assumindo que um nó não tem antecessores e incrementa o número de antecessores 43 adicionando o antecessor que resulta no maior aumento de probabilidade da estrutura gerar a base de dados como demonstrado no Algoritmo 5. Na adição de mais um antecessor ao nó não aumenta mais a probabilidade, dessa forma o nó para de receber antecessores e o algoritmo faz o mesmo para o nó seguinte. Este algoritmo requer uma ordenação das variáveis e faz uso de um método de pontuação bayesiana para alcançar seu objetivo, que é encontrar a estrutura de rede bayesiana S mais provável, dado um conjunto de dados D. Logo, o que este algoritmo busca é o maior valor possível para a probabilidade P(S|D). Admitindo que R é uma rede Bayesiana que tem estrutura gráfica S e probabilidades condicionais associadas à estrutura Θ, determinaram uma fórmula para calcular a probabilidade P(S|D) supondo que nenhum conjunto de probabilidades condicionais Θ é preferido para uma estrutura S antes de se analisar a base de dados (COOPER & HERSKOVITS, 1992). Algoritmo 5 - Algoritmo K2 - (COOPER & HERSKOVITS, 1992) 2.5.2 ALGORITMO EM É o algoritmo que faz estimação por máxima verossimilhança de acordo com determinado conjuntos de dados (distribuição conjunta de probabilidade). 44 A função de máxima verossimilhança pode ser definida densidade conjunta de n variáveis aleatórias, digamos F x1,...,xn(x1, . . . , xn; θ), considerada como função de θ. Em particular, se X1, . . . ,Xn é uma amostra aleatória da densidade f(x; θ), então a função de verossimilhança é f(x1; θ)f(x2; θ) . . . f(xn; θ). O algoritmo EM estrutural é utilizado para aprender estrutura e parâmetros a partir de dados incompletos. Este algoritmo, em cada iteração e com uma estrutura dada inicialmente, completa os dados faltosos mediante uma aproximação. A partir desses dados completados, realiza uma busca por estruturas, avaliando cada estrutura candidata com métricas aproximadas. Essa estrutura encontrada será utilizada na próxima iteração do algoritmo. Após várias iterações, o algoritmo desenvolve uma melhor estrutura para os dados originais (LUNA ,2011) . 2.6 CONSIDERAÇÕES FINAIS Com o estudo realizado neste capítulo foi compreendido que existe uma alta complexidade nas Redes Bayesianas, porém concluímos que seu modelo simples já será suficiente para a extração do padrão existente entre as letras de uma palavra. 45 CAPÍTULO 3 IMPLEMENTAÇÃO 3.1 CONSIDERAÇÕES INICIAIS Com base nos estudos realizados podemos definir que é tecnicamente possível a construção de pseudopalavras, utilizando rede de bayes. O próximo passo é criar uma base de palavras confiável e desenvolver um programa que faça a leitura letra a letra das palavras e gere pseudopalavras, utilizando as técnicas estudadas. Para efeito de comparação também será desenvolvido um programa simples que utiliza média ponderada para calcular a relação entre os atributos e gerar randomicamente uma pseudopalavra. 3.2 BASE DE PALAVRAS Para a realização do desenvolvimento e teste dos métodos estudados é necessário utilizar uma base de palavras que represente satisfatoriamente uma língua conhecida. Escolhemos a língua portuguesa por ser a linguagem em que somos alfabetizados e assim podemos distinguir facilmente uma palavra existente, gramaticalmente válida ou gramaticalmente inválida. Para representar a língua portuguesa escolhemos os livros “A Mão e a Luva”, “Casa Velha”, “Contos Fluminenses”, “Dom Casmurro”, “Esaú e Jacó”, “Helena”, “Histórias da Meia Noite”, “Histórias Sem Data”, “Iaiá Garcia”, “Memorial de Aires”, “O Alienista”, “O Guarani”, “Páginas Recolhidas”, “Papeis Avulsos”, “Quincas Borba”, “Relíquias de Casa Velha” e “Ressurreição” do autor Machado de Assis, “A Moreninha” de Joaquim Manuel de Macedo, “Iracema” de José de Alencar e “O Cortiço” de Aluízio de Azevedo. Totalizando 20 livros da literatura clássica portuguesa. 46 Figura 4 - Representação gráfica do processo de construção da base de palavras. Conforme apresentado na Figura 4 , esses livros foram importados na integra para um banco de dados PostgreSql versão 8.4, onde cada palavra foi inserida em uma tupla. Após a importação o banco de dados tinha 1,5 milhões de tuplas e consequentemente 1,5 milhões de possíveis palavras. Sobre essas palavras foi aplicado o 1º Filtro que excluía as palavras com menos de quatro caracteres, pois a maioria dessas palavras representam artigos, pronomes e preposições. Após foi realizado o processo 2º Filtro, que excluiu as palavras que continham caracteres inválidos (-, @, <, >, ‟, ª, º, ñ, „, ´, û), números e as em que todos os caracteres eram letras maiúsculas. Após a aplicação desses filtros foi realizado o processo RemoveAcentuação, que substituiu caracteres com acentuação (á, é, í, ó, ú, à, è, ì, ò, ù, ã, õ, â, ê, î, ô, ä, ë, ï, ö, ü, ç) por caracteres correspondentes sem acentuação (a, e, i, o, u, a, e, i, o, u, a, o, a, e, i, o, a, e, i, o, u, c) e em seguida o 3º Filtro que fez a remoção de pontuação e caracteres auxiliares (. , ,, ..., “, ”, *, !, ?, ;, (, ), :). A aplicação de todo esse processo inviabiliza a geração de pseudopalavras com menos de quatro caracteres, acentuação ou hifens, porém, dá mais confiabilidade de que a base representa relações de letras de palavras existentes e não nomes, complementos gramaticais ou palavras de organização e estrutura dos livros. Após este processo restaram 500 mil palavras, das quais 38 mil são distintas. 47 3.3 REDE DE BAYES 3.3.1 WEKA O Weka (Waikato Environment for Knowledge Analysis; http://www.cs.waikato.ac.nz/ml/weka) é um projeto desenvolvido e mantido pela universidade de Waikato, localizada na Nova Zelândia, e licenciado pela GPL (General Public License). Este projeto visa reunir implementações de algoritmos de diversas técnicas de mineração de dados e na área da inteligência artificial dedicada ao aprendizado de máquina. Disponibilizado por meio de uma API em Java ou uma aplicação para testes e experimentos, ele possui ferramentas que possibilitam o préprocessamento, classificação, regressão, clustering e associação de dados. No nosso projeto, utilizamos a aplicação para auxílio na seleção de atributos e a API para a implementação do gerador de pseudopalavras. Em ambos os casos foi utilizado um classificador do tipo BayesNet, que representa a Rede de Bayes. Os dados a serem classificados são passados ao classificador por meio de uma Instances. A Instances é um grupo de Instance. Uma Instance é a representação lógica de uma informação, esta representação é obtida através de valores que devem ser informados que representam esta informação, esses valores são chamados de atributos. Os dados de entrada são passados a Instance por um arquivo de texto no formato ARFF. Este é um formato de arquivo próprio da Weka, onde o símbolo % representa comentários, e a primeira linha sem comentários deve ser @relation que representa o nome da relação de atributos, posteriormente devem ser definidos os atributos com o comando @attribute e por fim deve ser inserido em cada linha valores para todos os atributos, em ordem de definição e separados por vírgula (WITTEN; EIBE; HALL, 2011). 3.3.2 DEFINIÇÃO DE ATRIBUTOS Os atributos são os representadores do padrão que devemos extrair de algum dado, no nosso caso, os atributos devem representar a relação entre as letras em uma palavra. Para a identificação dos melhores atributos fizemos um brainstorm e posteriormente utilizamos a Weka para testes. No brainstorm identificamos que não seria possível a utilização de sílabas para representação da relação entre as letras, uma vez que sílabas são geradas foneticamente e nosso trabalho não contempla sons. Outra restrição importante identificada é que não poderíamos definir como atributo uma letra 48 ser consoante ou vogal, pois, esta classificação não é relevante para a maioria das línguas e nosso trabalho perderia seu sentido genérico. Após o brainstorm, o primeiro teste foi realizado com cada letra do alfabeto sendo um atributo, neste teste inseríamos o valor 1 no atributo relacionado a letra atual, 1 no atributo selecionado para a próxima letra e 0 nos demais atributos. O problema encontrado foi que não tínhamos um atributo que representava a classificação. O segundo teste foi realizado com base no primeiro, porém adicionando a classificação. Foi marcado como 1 o atributo relacionado a letra atual, a próxima letra no atributo de classificação e 0 para os demais atributos. Neste teste os resultados da Weka foram insignificantes e percebemos que esses atributos ainda não representavam a relação entre as letras, sendo necessário incluir como atributo a vizinhança da letra. Para o terceiro teste utilizamos então a letra atual no atributo de classificação, e marcamos como 1 os atributos das letras que representavam a letra anterior e a próxima. O teste realizado na Weka mais uma vez não teve o êxito de classificação esperado, e após uma longa discussão com nosso orientador identificamos esses atributos não expressavam a posição das letras nas palavras e que a inclusão dos demais atributos com o valor 0 influenciava no cálculo das probabilidades da rede, gerando um resultado insatisfatório. Com as considerações do terceiro teste, no quarto teste não utilizamos cada letra como atributo com valores booleanos (0 e 1), utilizamos então um atributo que representa a letra anterior e um atributo que representa a letra posterior, em ambos os atributos os valores utilizados eram os próprios caracteres. Criamos um atributo numérico e seu valor era a posição da letra na palavra e mantivemos o atributo de classificação com seu valor sendo o caractere da letra a ser classificada. Este teste teve um resultado relevante na Weka e utiliza todas as características que expressa a relação entre as letras de uma palavra, sendo elas: Sua vizinhança; A posição da letra em uma palavra, considerando ela ser a primeira ou a última letra; A própria letra. Após estes testes definimos que os atributos necessários para expressar a relação entre as letras são: 49 Um atributo nominal que representa a letra anterior, sendo „?‟ caso a letra a ser classificada for a primeira letra da palavra; Um atributo numérico que representa a posição da letra a ser classificada em relação à palavra; Um atributo nominal que representa a próxima letra, sendo „?‟ caso a letra a ser classificada for a primeira letra da palavra; Um atributo nominal de classificação que representa a letra atual. Onde, um atributo numérico é um número maior que zero, e um atributo nominal é uma letra do alfabeto (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,x,w,y,z). Neste trabalho percebemos que a definição dos atributos para extrair o padrão nos dados é a tarefa mais importante na utilização de algoritmos de classificação em inteligência artificial. 3.3.3 PROJETO Para a implementação da estrutura de aprendizagem de Rede de Bayes utilizamos a linguagem Java e a plataforma de desenvolvimento NetBeans com a API da Weka. Conforme a estrutura apresentada no diagrama Figura 5, o projeto inicia por um gerador de arquivo texto que lê as palavras cadastradas no banco de dados, separa os atributos e gera um arquivo na estrutura de um arquivo ARFF da Weka. Figura 5 - Representação gráfica do processo de geração de pseudopalavras através da rede de bayes. Após a geração deste arquivo ARFF, o mesmo é lido e instanciado como uma variável do tipo „weka.Instances‟, esta variável representa em memória o conjunto de 50 palavras lidas e os atributos que definem cada relação de letras. É instanciado também uma variável weka.classifiers do tipo BayesNet que faz os cálculos de probabilidades da rede de bayes para nossa aplicação. Para construir a rede de treinamento é chamado o método buildClassifier da variável BayesNet passando como parâmetro a Instance.) e as Instances que representa a relação entre as letras, para realizar o treinamento da rede. Com a rede treinada é possível realizar a classificação de atributos e analisar seu resultado. A combinação de várias classificações é que geram uma pseudopalavra. A classificação é realizada pelo método classifyInstance da variável classifier passando como parâmetro a weka.Instance a ser classificada, o valor retornado desse método é um double que representa a posição do atributo no array de atributos da variável weka.Instance classificada. 3.4 ALGORITMO DE MÉDIA PONDERADA Para comparar os resultados obtidos pela rede bayesiana criamos um algoritmo de média pondera para geração de pseudopalavras. Pois se existe um algoritmo mais simples que resolve o mesmo problema com menor taxa de erro, é mais conveniente que um algoritmo complexo que faça a mesma coisa. 3.4.1 DEFINIÇÃO DE ATRIBUTOS Os atributos definidos para este calculo, são os mesmo definidos para a rede de bayes, tanto que nosso objetivo é comparar o resultado dos dois algoritmos. Para representação desses atributos, foi criada uma classe chamada de relação para organizar essas informações dentro do programa. Neste algoritmo foi utilizado o calculo de médias ponderadas para alimentar esses valores. 3.4.2 CALCULO DE MÉDIAS PONDERADA O calculo de média ponderada foi elaborado de tal forma para permitir que a frequência que os eventos ocorrem, pondere a distribuição de probabilidades entre as variáveis aleatórias do espaço amostral. 3.4.3 ESTRUTURA O algoritmo de média ponderada foi construído utilizando como base uma estrutura de dados arvore para armazenar as probabilidades como demonstrado na Figura 6. Cada nó possui uma distribuição de probabilidade entre seus nós filhos dado pelo calculo de média ponderada, cuja somatória é igual a 1. Com relação ao algoritmo 51 anterior e o seus parâmetros, a forma com que se encontram os atributos nessa estrutura são: Nó pai representa a letra anterior (o nó raiz não possui nó pai, por isso o consideramos nulo), nós filhos representam os próximos nós (os “nós folhas” não possuem próximo nó, por isso os consideramos nulos), o nó em si, representa a letra e a relação entre os nós, representa a probabilidade. A raiz inicial representa o ponto de partida da execução do algoritmo que não representa uma letra. Figura 6 - Exemplo da estrutura de dados arvore utilizada pelo algoritmo de média ponderada 3.4.4 PROJETO O projeto foi dividido em três partes. Cálculo de média ponderada: busca uma lista de palavras em um banco de dados, a cada palavra lida, letra a letra é analisada criando os níveis da árvore e relações probabilísticas entre nós no filhos. A extração de atributos que retira as informações da árvore e insere em um banco de dados. E a criação das pseudopalavras que são geradas a partir das relações mais fortes existentes entre os filhos dos nós na arvore. 52 Figura 7 - Representação gráfica do processo de geração de pseudopalavras através do algoritmo de média ponderada. 3.4.4.1 CÁLCULO DE MÉDIA PONDERADA Este algoritmo faz uma vasta leitura na base de palavras criando uma lista, para cada palavra lida, que é dividida em suas respectivas letras, na qual cada letra será representada por meio de um nó em uma árvore a ordenação pelos níveis e as probabilidades correspondem à probabilidade da letra lida em relação à próxima letra (filho do nó). Quando uma letra é inserida na arvore pela primeira vez ela se torna o primeiro nó filho da raiz (como já havia descrito a raiz não representa uma letra e sim um ponto genérico para criação a relação de primeira letra e o início da palavra). A probabilidade deste nó é 1 , pois é a única variável da nossa distribuição de probabilidade para este nó. Na inserção de uma segunda letra no mesmo nível da arvore que foi inserida a anterior, cria-se um novo nó na arvore e dividindo a probabilidade de um único nó em 2, sendo assim cada uma das relações ficou com probabilidade igual a ½. Na inserção da terceira letra também no mesmo nível, é efetuado um cálculo para distribuir de maneira ponderada as probabilidades entre os nós da arvore: 53 Equação 5 - Cálculos iniciais de média ponderada vt = valor atual da probabilidade do nó. pnn = probabilidade de um novo nó ser inserido na distribuição de probabilidade que é dado por: q = quantidade de vezes que uma letra foi inserida para um determinado nó. Neste caso, este calcula para todos os filhos do nó em questão. E o novo nó recebe a probabilidade através deste calculo: Equação 6 - Cálculo da probabilidade do novo nó Quando uma nova letra for inserida na arvore já existir, a distribuição de probabilidade recalcula as probabilidades da distribuição com o cálculo de média ponderada descrita acima e reforma a relação já existente. Mas para calcular a probabilidade de um novo nó é efetuado o seguinte calculo: Equação 7 - Recalculo do valor do nó 3.4.4.2 EXTRAÇÃO DE ATRIBUTOS Para extração de atributos foi desenvolvido um algoritmo que percorre toda a árvore e para cada nó acessado instanciou-se um objeto da classe “relação letra” que é composta dos seguintes atributos: letra anterior, letra, posição, letra posterior, probabilidade correspondente à próxima letra. Assim para cada instância foi criado uma tupla no banco de dados cuja tabela possuía os mesmos atributos da classe. 54 3.4.4.3 GERADOR DE PSEUDOPALAVRAS O gerador de pseudopalavras foi desenvolvido para utilizar o padrão extraído do calculo de média ponderada, que representa entre as probabilidades, as fortes relações que possuem entre as letras das palavras lidas. Essas palavras utilizadas para o calculo de probabilidades representam um padrão linguístico, ou seja, a variabilidade existente entre as palavras, tipo, tamanho e sua complexidade. Devido a esse fato as formações das pseudopalavras vão seguir esse padrão de forma reduzida nas relações menores (“silábicas”). Dado o padrão apreendido, as pseudopalavras serão geradas através de 2 parâmetros: A primeira letra e o tamanho da palavra. Porém esses parâmetros devem estar de acordo com a estrutura da árvore, e no caso a quantidade de letras para a pseudopalavra deve estar de acordo com a altura da mesma e a primeira letra deve estar entre as primeiras letras das palavras inseridas na arvore. Para gerar as pseudopalavras o algoritmo desenvolvido busca as tuplas no banco de dados correspondente a classificação da letra. No caso da primeira letra informada pelo parâmetro, o algoritmo a busca no banco de dados e depois todas as relações existem entre as possíveis próximas letras de acordo com as relações que existiam na arvore. Essas relações inseridas em uma lista na qual é ordenada de acordo com as suas probabilidades. Na primeira metade da lista estão as relações mais fortes entre as próximas letras. Sendo assim é escolhida a próxima letra de maneira aleatória e concatenada a letra anterior, que no caso é a primeira letra. Depois é refeito a busca novamente, até que a próxima letra esteja no ultimo nível da arvore, ou seja, no banco de dados é o atributo próximo possui valor nulo. No final desse processo geramos uma pseudopalavra. 3.4.5 CONSIDERAÇÕES FINAIS Neste capítulo criada uma base de palavras confiáveis com base em livros clássicos da literatura portuguesa e defido os atributos necessários para expressar a relação entre as letras de uma palavra. Desenvolvemos dois programas diferentes para a geração de pseudopalavras, o primeiro utilizando a Rede de Bayes da Weka e o segundo utilizando um algoritmo de média ponderada. No próximo capítulo serão apresentados e discutidos os testes para a geração de pseudopalavras nos dois programas, ambos utilizando a mesma base de palavra e os mesmos atributos. 55 56 CAPÍTULO 4 RESULTADO, TESTES E DISCUSSÃO. 4.1 CONSIDERAÇÕES INICIAIS A partir dos programas gerados no capítulo anterior, realizamos vários testes de geração de pseudopalavras e os mais relevantes serão apresentados neste capítulo. Para possibilitar a comparação do resultado dos programas, será utilizada a mesma base de palavras e os atributos definidos no capítulo do anterior. 4.2 REDE DE BAYES 4.2.1 TESTES DE TREINAMENTO DA REDE DE BAYES COM A BASE DE PALAVRAS COMPLETA A primeira parte do programa gerador de pseudopalavras através da Rede de Bayes é o treinamento da rede que foi executada com a API da Weka. Após o treinamento, a Weka disponibiliza a probabilidade de acerto de uma classificação. Esta taxa representa a inter-relação dos atributos com a classificação e com este dado podemos estimar quantas palavras são necessárias para melhor gerar pseudopalavras. Para realizar este teste foram construídos sete arquivos do tipo ARFF com os atributos definidos, onde o primeiro usava 1.000 palavras, o segundo 10.000 palavras, o terceiro 25.000 palavras, o quarto 50.000 palavras, o quinto 100.000 palavras, o sexto 250.000 palavras e o sétimo 500000 palavras. Todas retiradas do banco de palavras. Tabela 1 – Representação da probabilidade de acerto após o treinamento da Rede de Bayes Quantidade de Palavras representadas Taxa de Acerto (%) Numero de Instâncias 1.000 34,90 6.349 10.000 34,16 62.898 25.000 33,94 158.428 50.000 33,97 319.317 100.000 32,02 634.860 250.000 32,71 1.581.088 500.000 32,34 31.666.025 pelo ARFF 57 Na Tabela 1 podemos ver a relação entre a quantidade de palavras lidas, a taxa de acerto e o número de instâncias geradas. Podemos observar que a probabilidade de acerto diminui muito lentamente conforme aumentamos o número de palavras, e podemos dizer que é praticamente estável, uma vez que a maior variação foi de -2,88% entre 1.000 e 100.000 palavras. A baixa taxa de acerto, em média 33,43%, representa que a Rede de Bayes não conseguiu achar um padrão estatístico de relação entre as letras, utilizando os atributos informados. Levando em consideração os testes realizados para seleção dos atributos, definimos que estes são os que melhor representam a relação entre as letras e que a baixa taxa de acerto representa que não foi utilizado um padrão estatístico na construção das palavras. Vale ressaltar que para o processamento de 250.000 e 500.000 palavras foi necessário aumentar a memória do Java para 1,2Gb e 2,0Gb de memória RAM respectivamente, ocupando em média 60% do consumo de CPU. 4.2.2 TESTES DE TREINAMENTO DA REDE DE BAYES APENAS COM PALAVRAS DISTINTAS Neste teste será definido se a alta quantidade de palavras repetidas, aproximadamente 93% da base de palavras, influenciou ou não no resultado do teste anterior. Para realizar este teste foram construídos quatro arquivos do tipo ARFF com os atributos definidos anteriormente, onde o primeiro usava 1.000 palavras, o segundo 10.000 palavras, o terceiro 20.000 palavras e o quarto 35.000 palavras. Todas retiradas do banco de palavras, porém sem repetição das mesmas. Tabela 2 - Representação da probabilidade de acerto após o treinamento da Rede de Bayes com palavras distintas Quantidade de Palavras distintas Taxa de Acerto (%) Numero de Instâncias 1.000 31,93 8.257 10.000 32,60 82.096 20.000 32,51 163.999 35.000 32,37 286.947 representadas pelo ARFF 58 Na Tabela 2 podemos ver que a taxa de acerto permanece relativamente estável em uma amplitude de 1.000 a 35.000 palavras, tendo variação máxima de 0.67%. Com esses valores estáveis e semelhantes ao teste anterior, onde foram utilizadas palavras repetidas, demonstra que estas não afetam negativamente o desempenho da Rede de Bayes na classificação dos atributos e na geração de pseudopalavras. 4.2.3 RESULTADO DA GERAÇÃO DE PSEUDOPALAVRAS Uma vez que a taxa de acerto da Rede de Bayes se manteve estável usando palavras repetidas ou distintas e em pouca ou muita quantidade, foram escolhidas para a geração de pseudopalavras o arquivo ARFF, do primeiro teste, contendo 50.000 palavras, por representar uma taxa média de acerto da base. A partir deste arquivo ARFF a Rede de Bayes do programa foi novamente treinada e solicitada a ela que gerasse uma pseudopalavra começando com o caracter „a‟ e com 6 letras. O programa gera uma linha com atributos para a classificação como „a,2,?,?‟ onde o primeiro atributo representa a letra anterior, o segundo atributo representa a posição do caractere a ser buscado na palavra, o terceiro atributo representa o próximo caractere e o quarto é a letra que estamos procurando, sendo o caractere „?‟ um coringa para a Rede de Bayes, informando que não sabemos o valor deste atributo. O programa gerou então a letra „r‟ que seria segunda letra da futura pseudopalavra, de acordo com o cálculo de probabilidades da Rede de Bayes onde se conhecia o caractere anterior e a posição na palavra. O programa repete este processo para as próximas posições da futura pseudopalavra alterando os atributos conforme necessário e após gerar os 6 caracteres a pseudopalavra gerada foi: araras. A pseudopalavra gerada, araras, na verdade é uma palavra existente, para identificar se foi apenas coincidência utilizamos o programa para gerar vinte e seis pseudopalavras, cada uma começando com uma letra diferente do alfabeto, contendo seis caracteres. O resultado foi a seguinte lista: 59 Tabela 3 - Pseudopalavras geradas pela rede Pseudopalavras geradas pela rede Araras Hasaso Oraras Vasaso Braras Issaso Praras Xcoras Casaso Juraso Quraso Wzaras Dosaso Kzaras Rasaso Yzaras Essaso Lvaras Sssaso Zasaso Fraras Masas Traras Graras Ntoras Uraras Do total de possíveis pseudopalavras geradas, foram obtidas 17 pseudopalavras válidas, 8 pseudopalavras inválidas e 1 palavra real (considerando a gramática brasileira, da qual foram retirados os livros que formaram a base de palavras), o que representa 65,38% de acerto. Apesar do alto índice de acerto todas as pseudopalavras continham as terminações „ras‟ e „aso‟. Essa convergência para repetição de terminação aconteceu pois a partir do segundo caractere gerado, ou seja, do terceiro caractere da pseudopalavra a Rede de Bayes fez a geração sem utilizar o atributo que representa o próximo caractere, pois na geração da letra atual a rede não tinha ainda qual seria a próxima letra. Para corrigir este efeito o programa foi alterado para que após a primeira geração completa da futura pseudopalavra o mesmo passe novamente pela pseudopalavra tentando classificar novamente seus atributos, pois nesta nova classificação o programa já pode utilizar o atributo referente a próxima letra. O resultado desta geração foi a seguinte lista: Tabela 4 - Pseudopalavras geradas pela rede Pseudopalavras geradas pela rede Arares Haseso Orares Viseso Brares Isseso Prares Xcres Ciseso Jureso Qureso Wzeses Deseso Kzeres Reseso Yzeses Esseso Lvares Ssseso Zeseso Frares Meseso Trares Grares Nteses Urares 60 Após esta possível correção, foram geradas 19 pseudopalavras válidas, e 7 pseudopalavras inválidas. Com este teste de correção a taxa de acerto subiu para 73,07% porém as terminações convergiram para somente outras três sequências de caracteres („eso‟, „res‟ e „ses‟). Uma terceira forma de gerar pseudopalavras foi testada, onde foi solicitado ao programa que gerasse vinte e seis pseudopalavras com seis caracteres, com a letra „d‟ na terceira posição, a letra „a‟ na última posição e cada primeira letra era uma letra do alfabeto. O resultado foi a seguinte lista: Tabela 5 - Pseudopalavras geradas pela rede Pseudopalavras geradas pela rede Andoua Hadoua Ondoua Vadoua Bedoua Indoua Padoua Xadoua Cadoua Jadoua Qudoua Wndoua Dedoua Kndoua Radoua Yndoua Endoua Ladoua Sadoua Zadoua Fidoua Madoua Tadoua Gudoua Nadoua Undoua Neste teste foram geradas 22 pseudopalavras válidas, e 4 palavras inválidas, elevando a taxa de acerto para 84,62%. As pseudopalavras geradas convergiram para uma terminação, porém isto já era esperado, uma vez que o teste determinava a vizinhança. 4.2.4 DISCUSSÃO Com estes resultados observamos que a parte gerada automaticamente pela rede sempre converge para um padrão, mas é possível aumentar a taxa de acerto se informamos mais valores para os atributos, pois estes estarão 100% corretos, uma vez que são determinados pelo usuário. Estatisticamente, se queremos uma pseudopalavra com seis caracteres, que comece pela letra „a‟ e temos 33,97% de acerto em cada letra gerada pela rede temos: (100%+33,97%+33,97%+33,97%+33,97%+33,97%) / 6 = 44,97% de acerto. Mas, se queremos uma pseudopalavra que tenha seis caracteres e contenha o caractere „a‟ na primeira posição, „c‟ na segunda posição, „e‟ na terceira posição e temos a mesma taxa de acerto em cada letra gerada pela rede temos: (100%+33,79%+100%+33,79%+100%) / 6 = 61,32% de acerto. 61 Apesar do alto índice de acerto foi identificado um problema em que, por ser um classificador, se utilizarmos sempre a mesma base de palavras e os mesmos valores para os atributos, a Rede de Bayes irá gerar sempre as mesmas palavras, pois ela tende a selecionar o melhor padrão. 4.3 ALGORITMO DE MÉDIA PONDERADA Para efetuarmos os testes deste algoritmo utilizamos todas as letras do alfabeto efetuando quatro vezes a geração com o mesmo tamanho de pseudopalavra desejada. Os tamanhos da pseudopalavra variou entre 4 e 7. O resultado esperado para estes testes é de que as pseudopalavras sejam satisfatoriamente pronunciáveis, ou seja, devem estar de acordo com o teste que será aplicado pelo profissional da área. 4.3.1 RESULTADOS E TESTES Nas tabelas encontram-se pseudopalavras em vermelho (incorretas) e preto (corretas), mas também existem palavras em azul na qual não identificamos como um erro e sim um elemento que não faz parte do conjunto desejado. Tabela 6 - Teste para geração de pseudopalavras com 4 letras Teste para geração de pseudopalavras com 4 letras Primeiro Segundo Terceiro Quarto auqu abud afli adga bife bime bufi biro crum crri cren cudo dalp dcia dagr danu evur evut eviv efle frlo frrd frfa funi gace gaim glit gita hird hitt huro husi igrf ilen iton ilha 62 jedr jeve jebr jauf kliv kagi klti kltu lulu lusg lhin lhoq mupa mudi mizi mimu nuss nubl nigu nube oflc osci opte opsn pizo pita puli pupi qulg qufo qule qupu ruol ruad ruxb ruva siga saua scld sixo tivi tuag tuoa taio utit utoc uscl usca vaba vuje vace vuci woad wico wolu wimn xibs xuri xiai xixi yocb yoes yovr yole zube zuti zubj zulc Neste teste observamos que quantidade de pseudopalavras aceitas é de 50,96%. Existem vários fatores que responsáveis por esse resultado. Um deles é o fato de que a combinação entre as letras é feita de maneira quase aleatória, a quantidade de letra pode “cortar” algumas possíveis palavras e o treinamento com palavras com tamanho menor que 4 foi filtrado na criação da base de dados. Tabela 7 - Teste para geração de pseudopalavras com 5 letras Teste para geração de pseudopalavras com 5 letras Primeiro Segundo Terceiro Quarto atosu avano azipo azoqu bavog batil bixeg busqu 63 cupto cunuz citen clinu dasme dalvo dualu dages etomi efond etans etime flmbo fuzbi fropr flpot gaive gltav gioca gavec huciu humiu hipra huled igasa ibist ilias igiou jabos jedue jerit japur kadea katos kabot klegi lhuro lunga lavon lurma mirol mujav mipus muvod nuzil nitad nuzbr nuere odequ opaco oitao opuei pigor pluld puquv pumoe qutan qusga qupas quemo raisu rurui rabla runte scago sanab sitad scler tacin tizei tatur tusat usamo usnag utoif utmec valba vauro vasal vulge wirpa wosqu wilat wozui xuero xumbu xumus xioua yoaog yogit yoera yotic zubot ziqub zuleq ziboc O teste com cinco letras com 57,69%, mostrou características muito semelhantes em relação ao erro de “corte” das pseudopalavras geradas com quatro letras como por exemplo: ziboc, sitad, kabot, odequ, azoqu e etc. Porém mostrou uma quantidade de acertos mais significativos. 64 Tabela 8 - Teste para geração de pseudopalavras com 6 letras Teste para geração de pseudopalavras com 6 letras Primeiro Segundo Terceiro Quarto adeuco adeleu aqupia adanos buzote bicnan buenas bastra clutar cilham ciquas clubar dcavad dcucos dafimo dalvai eleran euesad elfeca evirit fuprar fufota frmada flvess gabelh giosoa gadoso glauel hioteo huspei hiamet hipons itonav igapar ialolo iavilt jelalh jemist jaurou jeuzar klfina kaveni kapius kagolo lancas lavast luedon laseso minavi mimouc mupost muavas nifrai nuxbia ninait niosav ofugac oscele odutem oflsos pircos plpose pltale pliter quoupi qublid qudist qubras rangur rusuco rapado runino scopes sanzor sirque sabave tanege tuplim tupamo tifest ussaca utubav umetur usfeni vugome vabame valziz vuduic wonfou wotada wozate wovera xufeda xubuno xuzand xibera 65 yonuxo yoebur yovevi yoesos zuaoze zimead zismut zixait Este teste mostrou uma maior quantidade de pseudopalavras aceitáveis igual á 65,38%. Porém continua com os mesmos problemas dos testes anteriores, inclusive com a geração de sequências de consoantes que ocorreu devido à aleatoriedade. Tabela 9 - Teste para geração de pseudopalavras com 7 letras Teste para geração de pseudopalavras com 7 letras Primeiro Segundo Terceiro Quarto azituli aqustis ateociu azaranc bijernd bubiava badidos balocas crlgado cimnhon cuzasic clecolo dcacaro dufaime daqueir dabamba elirila etesici eumbato elmados fuoseac frotasa fucassi frgorad gandare giquiar gilienh gahubiu hucanda hutrcam hunsare higuiza iliubra ianenou ilmeins ibivaso jeovisi jebmour jealada jezonto kavisad kludisi karblog klamequ lhisoce lacasad latanac lhoidas miocoui mueojou mutouni muavuda nusndol nivembo nusconi niratan ofrgala oigages oibailt oimevou puqulul pizerer pissame plomiad qutenid quredou quleame qusibeu raninga raprava raveira raiandi simoase sacilia scldave scisoui tielida taguran talasst tulscid 66 umirria utofima usemeta usnavar vugesad vamadou vuefaso vuxadin wimbess wicoxed wonquco wiminos xuzimot xuprati xunzeri xiquice yoepara yoldaiu yosplav yoarvou ziodota zidudia ziquava zinaver Com 62,05% de acerto demonstram resultados semelhantes aos testes anteriores, demonstrando que a taxa de acerto não aumenta quando a palavra fica maior. 4.3.2 DISCUSSÃO Com este último teste, percebemos que um dos principais problemas, ocorridos em todos os testes, é o ponto de parada na formação da pseudopalavras, criando palavras com terminações de consoantes como: wimbess, kavisad, latanac e etc. Outro fator importante, que já havia citado antes, é que uma pseudopalavra que comesse com a letra “A” e possua 20 letras só é possível se a base de dados possuir pelo menos uma palavra que comesse com “A” e possua 20 letras, tanto que este algoritmo é baseado nos dados que foram lidos, por isso, neste ultimo teste que deveria ter apenas palavras com 7 letras, apresentou algumas palavras com menos, pois o caminho na árvore, pelo qual o algoritmo percorreu, termina antes da quantidade de letras terminar. 4.4 CONSIDERAÇÕES FINAIS Neste capitulo fizemos os testes com a rede de bayes e o algoritmo de média ponderada apurando os resultados. Na análise de resultados dos dois algoritmos observamos os erros e acertos. Todas pseudopalavras geradas no teste foram exibidas, tanto as corretas como as incorretas, com a sua justificativa. No próximo capitulo concluiremos nosso trabalho com a comparação dos dois algoritmos e seus resultados. 67 CAPÍTULO 5 CONCLUSÃO E TRABALHOS FUTUROS. Conforme discutido no capitulo anterior, a rede de bayes apresentou uma alta taxa de acerto, porém devido a seu mecanismo de identificação de padrão, as palavras tendem a convergir para terminações semelhantes. Também foi encontrada uma limitação na rede de bayes, em que devido a esse mesmo mecanismo, se caso seja usado uma base palavras estática a quantidade de pseudopalavras diferentes, que ela irá gerar, será limitada a variação da letra inicial. O algoritmo de média ponderada mostrou uma variabilidade de formação de palavras maior, porém 2 problemas resultaram em uma baixa taxa de acerto: o ponto de parada na construção de uma pseudopalavra, na qual muitas ficaram com terminações de consoantes que não existiam nas palavras da base. Outro problema foi que as ramificações criadas na árvore limitam a geração de algumas pseudopalavras, dependendo do percurso feito pelo algoritmo na estrutura de dados. Concluímos que a melhor opção entre as soluções para geração de pseudopalavras é a rede de bayes devido a sua maior taxa de acerto comparada ao algoritmo de média ponderada. E indicamos, para trabalhos futuros, a correção da sua baixa taxa de diversidade na geração de peseudopalavras através de uma base de palavras alimentada continuamente pela auto extração de palavras da web. Acreditamos que a web seja a melhor fonte de palavras, pois a quantidade de textos digitais disponíveis crescem de forma rápida devido ao grande número de usuários e suas interações com redes sociais, sites informativos e chats. 68 CAPÍTULO 6 REFERÊNCIAS BARRERA, Sylvia Domingos; MALUF, Maria Regina. Consciência metalingüística e alfabetização: um estudo com crianças da primeira série do ensino fundamental. Psicol. Reflex. Crit., Porto Alegre, v. 16, n. 3, 2003 . CUNHA, Vera Lúcia Orlandi; CAPELLINI, Simone Aparecida. Análise psicolinguística e cognitivo-linguística das provas de habilidades metalinguísticas e leitura realizadas em escolares de 2ª a 5ª série. Rev. CEFAC, São Paulo, v. 12, n. 5, 2010. FRANÇA, Marcio Pezzini. Estudo do reconhecimento de palavras e pseudopalavras em estudantes da 2ª e 3ª séries do ensino fundamental: tempo de reação e lapsos na leitura em voz alta. 2007. GARCIA, Ricardo Basso. Conhecimento sintatico-semantico e processamento de sentenças em rede neural recorrente simples. 2006. GINDRI, Gigiane; KESKE-SOARES, Márcia; MOTA, Helena Bolli. Memória de trabalho, consciência fonológica e hipótese de escrita. Pró-Fono R. Atual. Cient., Barueri, v. 19, n. 3, 2007. HAYKIN, Simon - Redes neurais : princípios e prática / Simon Haykin; trad. Paulo Martins Engel. - 2. ed. – Porto Alegre : Bookman, 2001. MELO, Laila Beatriz Soares. Reconhecimento de padrões textuais para categorização automática de documentos. 2007. SILVA, José Mauro da. SINAPSE: Uma Metodologia para Extração de Conhecimentos em Objetos Textuais Baseada em Conceito para o Português do Brasil. 2007. 140f. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação do Instituto de Informática, Universidade Federal de Goiás, Goiânia, 2007. SALLES, Jerusa Fumagalli de; PARENTE, Maria Alice de Mattos Pimenta. Funções neuropsicológicas em crianças com dificuldades de leitura e escrita. Psic.: Teor. e Pesq., Brasília, v. 22, n. 2, Aug. 2006 . STUART, Russel; PETER, Norving - Inteligência Artificial. Tradução: Publicare Consultoria 2 ed. Rio de Janeiro – RJ: Elsevier, 2004. PAL, Sankar k; PAL, Amita. Pattern Recognition: From Classical to Modern Approaches. World Scientifica Publishing Co. Pre. Ltd. 2001 TEODORIDIS, Sergios - Pattern Recognition. Academic Press, USA, 1 ed, 1999 69 STEINER, Maria Teresinha Arns. UMA METODOLOGIA PARA O RECONHECIMENTO DE PADRÕES MULTIVARIADOS COM RESPOSTA DICOTÔMICA. Dezembro 1997. HEDE, Ma. PATTERN RECOGNITION USING NEURAL NETWORKS. Setembro 1994. FU, King Sun. Syntactic Pattern Recognition, Applications. USA, 1977. JAIN, Anil k.; DUIN, Robert P.W; MAO, Jianchang. Statistical Pattern Recognition: A Review. Janeiro 2000. IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL. 22, NO. 1 FUKUNAGUA, Keinosuke. Introduction to Statistical Pattern Recognition. Academic Press, INC USA. 2 Ed. 1990. FERREIRA, Carlos A.; SOARES, José F.; CRUZ, Frederico R.B. Reconhecimento de Padrões em Estatística: Uma Abordagem Comparativa. Abril de 2001 RESENTE, Solange Oliveira. Sistemas inteligentes: Fundamentos e aplicações. 2005 SANDRI, Sandra; CORREA, Cláudio. Lógica Nebulosa. Julho de 1999. ITA, São José dos Campos - SP; V Escola de Redes neurais, Promoção: Conselho Nacional de Redes neurais pp. c073-c090 ALENCAR FILHO, Edgard de, 1913 - Iniciação à lógica matemática – São Paulo - SP: Nobel 2002. DEVORE, Jay L. - Probabilidade e estatística : Para engenharia e ciências. Tradução : Joaquim Pinheiro Nunes da Silva. São Paulo – SP : Pioneira Thomson Learning, 2006. KJAERULFF, Uffe B. ; MADSEN, Anders L. - Bayesian Networks and Influence Diagrams - A Guide to Construction and Analysis. 2008 Springer Science Business Media, LLC, New York, NY (USA). PEARL, J. - Reasoning in Intelligent Systems. Ed.Morgan Kaufman, 1986. CASTILHO E. , GUTIERREZ J. - Expert Systems and Probabilistic Network Models. Ed. Springer, 1997. DECHTER R.. Bucket elimination: A unifying framework for probabilistic inference. In M. I. Jordan, editor, Learning in Graphical Models, p.75–104. MIT Press, 1999. CASELLA G., GEROGE E. I.. Explaining the Gibbs sampler. Am. Stat. 46: p.167–174, 1992. GEMAN S., GEMAN D.. Stochastic relaxation, Gibbs distribution and Bayesian restoration of images. IEE Transactions on Pattern Analysis and Machine Intelligence 6: p.721–741, 1984. 70 JENSEN F.V.. Bayesian Networks and Decision Graphs. Ed. Springer, 2001. SILVA, W. T. da., LADEIRA, M. Mineração de dados em redes Bayesianas. In: CONGRESSO DA SOCIEDADE BRASILEIRA DE COMPUTAÇÃO, 22., 2002, Florianópolis. Anais. Florianópolis: UFSC, 2002. COOPER G. F., HERSKOVITS E.. A Bayesian method for the induction of probabilistic networks from data. Machine Learning, v9, p. 309-347, 1992. VALENTIM, FELIPE LEAL. Estudo e implementação de algoritmos de inferência e aprendizado em redes bayesianas, Lavras 2007. LUNA, José Eduardo Ochoa. Algoritmos EM para Aprendizagem de Redes Bayesianas a partir de Dados Incompletos. TAN, Ah-Hwee. (1999). “Text mining: the state of the art and the challenges”. p. 65-70, Beijing, April 1999. LEAL, Miguel das Neves. Text Mining. 2003. SCHEIDT, Rafael de Faria. Aplicação de Bibliometria em Trabalhos Científicos Utilizando Mineração de Textos, 2007. LOPES, Maria Célia Santos. Mineração de dados textuais utilizando técnicas de Clustering para o idioma português. 2004. ARANHA, Christian; Passos, Emmanuel. A Tecnologia de Mineração de Textos. 2006. FONSECA, raphaela baptista. Uma estratégia de apoio à seleção de algoritmos de clusterização de dados. 2008. CORDEIRO, João Paulo da Costa. Extração de Elementos Relevantes em Textos/Paginas da Word Wide Web. PAZZIM, Debora_Machado_Pazzim. Clusterização de Textos Utilizando o Algoritmo de K-Means. 2007. KOLOSSOSKI, George. SEGMENTAÇÃO DE IMAGENS E ALGORITMO K- MEANS. WITTEN, Ian. H; EIBE, Frank; HALL, Mark A. – Data Mining: Practical Machine Learning Tools and Techniques, 3rd ed. 2001. 71