Princípios de inteligência artificial com PHP
Abstract
Neste artigo são usados princípios de inteligência artificial para implementar em, PHP, um corretor ortográfico. Essa abordagem compara recursos que ditam todos os passos que um sistema precisa percorrer para alcançar uma solução. Os resultados obtidos indicam que a implementação de uma abordagem que usa princípios de inteligência artificial pode ser mais eficiente. Versão publicada na Revista Processando o Saber:https://www.fatecpg.edu.br/revista/index.php/ps/article/view/43
Full text
Processando o Saber nº 10, 2018 113 VILLANI, Leonardo, Mestre* * Faculdade de Tecnologia de Praia Grande Departamento de Análise e Desenvolvimento de Sistemas Praça 19 de Janeiro, 144, Boqueirão, Praia Grande / SP, CEP: 11700-100 Fone (13) 3591-1303 leonardo.villa[email protected]p.gov.br RESUMO Neste artigo são usados princípios de inteligência artificial para implementar em, PHP, um corretor ortográfico. Essa abordagem compara recursos que ditam todos os passos que um sistema precisa percorrer para alcançar uma solução. Os resultados obtidos indicam que a implementação de uma abordagem que usa princípios de inteligência : Inteligência artificial. PHP. Distância de Levenshtein. ABSTRACT PHP an orthographic corrector. This approach is compared to another that imposes all steps that a system need make to reach a solution. The results obtained show that the approach that uses implementation of KEYWORDS INTRODUÇÃO Alguém, em algum momento, já deve ter precisado usar o serviço de tradução do Google. Dentre os diversos recursos que esse https://doi.org/10.5281/zenodo.15540943
Processando o Saber nº 10, 2018 114 serviço possui, um deles é o recurso ilustrado na Figura 1. Esse serviço outro idioma para a saída do texto correspondente. À esquerda da imagem, há um campo para a entrada; à direita, é apresentada a saída correspondente para o idioma informado. Abaixo do local de entrada do texto, eventualmente, pode ser apresentado o recurso “Mostrando tradução para...”. Esse recurso sugere uma alternativa mais adequada ao termo informado no campo de entrada. Trata-se de um recurso útil e inteligente para a tradução. Seria, entretanto, essa a tal inteligência Figura 1 - Página do Tradutor do Google sugerindo correção para entrada incorreta de palavra Fonte: adaptado pelo autor para este trabalho (2018). Um recurso similar há em alguns editores de texto, como o
Processando o Saber nº 10, 2018 115 vermelho abaixo do texto indicando que existe erro. Acionando o menu de contexto (botão direito do mouse) sobre as palavras com esse tipo de sublinhado, uma lista com os termos que mais se aproximam dessa palavra errada é apresentada. Esse recurso é tão inteligente quanto o recurso do Tradutor do Google, mas seria esse recurso também os recursos de estruturas comuns de linguagens de programação? O que é necessário para implementar tais recursos com a linguagem de programação PHP? Sendo assim, com base nos fundamentos da inteligência de corretor ortográfico, utilizando um sistema de sugestão mais autônoma que não exija um tratamento exaustivo de entrada de dados. Para tanto foi empregado os princípios dos algoritmos de aprendizado de máquina, com funções de distância, o denominado “Função de Distância de Levenshtein”. O PHP (Personal Home Page) é uma linguagem de programação que possibilita o desenvolvimento de programas para a Web. Um programa escrito em PHP pode conter apenas código PHP ou estar entre marcações HyperText Markup Language (HTML). (PREFÁCIO, 2017). O HTML é uma linguagem usada para estruturar um documento de hipertexto e não possui recursos para programação como o PHP (WHAT IS, 2017). Por isso é comum o desenvolvimento de aplicações para a Web que utilizam ambas as linguagens. No Código 1, é apresentado um trecho de código de ambas as linguagens.
Processando o Saber nº 10, 2018 116 Fonte: elaborado pelo autor para este trabalho (2018). Somente na Linha 9 desse código há uma instrução PHP. As instruções PHP se diferem das marcações HTML por meio do sinal de interrogação seguido da palavra “php”. Quando inseridas junto às marcações HTML, as instruções PHP devem conter a marcação de de fechamento não possuem a palavra “php”. Com as marcações de abertura “<?php” e fechamento “?>” é possível indicar onde começa e onde termina uma instrução PHP. No código apresentado, o comando “print” escreve na página o texto “Script em PHP”. possuem para armazenar um valor e permitir que o valor armazenado seja recuperado depois. As variáveis em PHP possuem um cifrão antes
Processando o Saber nº 10, 2018 117 Fonte: elaborado pelo autor para este trabalho (2018). Na Linha 10 do Código 2, uma variável “nome” é declarada e armazena o conteúdo “Leonardo”. O conteúdo dessa variável é recuperado na linha seguinte. Desse modo, na Linha 11 do Código 2, o comando “print” deverá escrever na página o texto “Meu nome é Leonardo”. Um dos recursos que programas Web possuem para entrada de dados é o Uniform Resource Locator (URL), traduzido como Localizador Padrão de Recursos. Informado na barra de endereços de um navegador (eg. Chrome), um URL contém o nome do computador que tem o recurso e o nome da página. Eventualmente, também pode conter parâmetros fornecidos para a página (BERNERS-LEE, 2017), com nesse URL: http://www.meusite.com.br/arquivo.php?nome=Leonardo. Nesse URL, parâmetros são todos aqueles que aparecem após o atribuído a ele. Quando mais de um parâmetro necessita ser fornecido, o caractere “&” é utilizado para separar os parâmetros em um URL. No código PHP, o vetor $_GET é usado para recuperar o
Processando o Saber nº 10, 2018 118 valor de um parâmetro fornecido pelo URL. Um vetor é um conjunto de variáveis. Por meio do vetor $_GET é possível recuperar os valores de todos os parâmetros fornecidos por meio do URL. Basta usar como (Código 3). Código 3 - Obtendo valores do URL Fonte: elaborado pelo autor para este trabalho (2018). Na Linha 2 do Código 3, o operador “.” (ponto) é usado para do URL: Leonardo”. URL. Se precisar usar um vetor e atribuir os valores desse vetor direto no código PHP, poderá fazer uso de uma função “array”. Na Linha 2 do Código 4, é criado um vetor “times” que deve possuir dois elementos: Palmeiras e Santos. Fonte: Elaborado pelo autor para este trabalho. Todos os argumentos fornecidos para a função “array” tornam-se elementos de um vetor. Como visto para o vetor $_GET, cada elemento pode ser acessado por meio de um índice. No caso de um vetor criado pela função “array”, todos os índices desse vetor são numéricos. O valor do índice do primeiro elemento de um vetor é zero.
Processando o Saber nº 10, 2018 119 2 IMPLEMENTANDO O CORRETOR ORTOGRÁFICO termo deverá ser fornecido pelo URL. Caso o termo informado não exista no dicionário interno, o programa deverá sugerir a palavra do dicionário interno que é “mais próxima” do termo informado. O dicionário interno será um vetor que possui um número limitado de palavras. Nesse sentido, é proposto o código 5 a seguir: Fonte: Elaborado pelo autor para este trabalho O comando “if”, usado na Linha 5 do Código 5, e os comandos “elseif”, que aparecem a seguir, são comandos da linguagem PHP usados em estruturas condicionais, ou seja, quando se deseja criar condições. Na Linha 5 começaria uma tentativa incessante de tratar todos os possíveis termos que um usuário poderia querer ter informado como entrada. Um extenso código poderia ser produzido apenas para tratar a entrada “curintia”. Um único termo. E para os outros termos que poderiam ser informados? E para os termos que poderiam indicar outra equipe? Existiria alguma solução alternativa que exigisse menos código? Que pudesse “entender” o que o usuário poderia querer ter informado? Uma
Processando o Saber nº 10, 2018 120 3 O QUE É INTELIGÊNCIA ARTIFICIAL algo ou “lidar” com algo (INTELIGÊNCIA, 2017). Nesse sentido, aprender está relacionado com a aquisição de alguma informação que possa ser usada para realizar uma atividade ou melhorar a realização de uma atividade. produzido não pela natureza, mas por meio de uma técnica (ARTIFICIAL, até perfumar o ambiente como a natural, mas é criada por meio de uma da luz natural. Dessa forma, permite que os seres humanos enxerguem ambientes, objetos, uns aos outros etc., tanto quanto a luz do Sol permite. No entanto, tal iluminação não é produzida a partir de explosões tais como as de estrelas. é obter os mesmos resultados dos respectivos recursos naturais. Nesse contexto, o importante é o “quê obter” e não o “como obter”. Mais importante que surgir das explosões solares é a iluminação que vem delas. um recurso que, por meio de uma técnica, reproduz a habilidade natural de aprender algo ou lidar com algo. No entanto, dizer que computadores que os seres humanos (ARTERO, 2009). Os fracassos dos primeiros projetos de aviões se davam porque o projeto partia do objetivo de imitar os pássaros apenas: locomoverse de um ponto a outro pelo ar, mas batendo asas (HARRINGTON; passou a ser o “quê obter” (locomover-se de um ponto a outro pelo ar) e deixou de ser em “como obter” (batendo asas). Isso permitiu que se Por meio de computadores, é possível imitar certos aspectos do pensamento e comportamento considerado inteligente, realizar ações ou atingir metas, questões que estariam essencialmente relacionadas
Processando o Saber nº 10, 2018 121 satisfatórios. desenvolver sistemas que fossem mais autônomos ou necessitassem de menos intervenção humana para a realização de uma atividade. De maneira mais ambiciosa, a ideia era reproduzir todas as características cognitivas do ser humano em uma máquina. Na década de 1950, o cientista Alan Turing propôs um teste teste era uma adaptação do “Jogo de Imitação”. O jogo de imitação era jogado com três pessoas: um homem, uma mulher e um juiz. O deles era o homem e qual era a mulher. O papel de um dos jogadores era responder com o objetivo de confundir o juiz e o papel do outro jogador era responder com o objetivo de auxiliar. A adaptação proposta era que, no lugar do homem e da mulher, para responder as questões. O juiz deveria manter um diálogo com a máquina usando o seu idioma natural, o inglês por exemplo. O sistema passava no teste se o juiz não tivesse como dizer se quem estava dando 2013). Para passar nesse teste era necessário que o sistema tivesse ao menos quatro habilidades cognitivas. Uma dessas habilidades tratava-se da capacidade de processamento de linguagem natural. Tal habilidade o conhecimento obtido. Essa habilidade possibilitaria o armazenamento e recuperação de informações em grandes quantidades. A terceira habilidade era o raciocínio automatizado para que o conhecimento adquirido durante o diálogo pudesse ser utilizado para fornecer novas respostas. E a quarta e última habilidade, porém não menos importante, era o aprendizado de máquina. Essa habilidade permitia que o sistema pudesse responder ou melhorar a sua resposta a partir do conhecimento Atualmente, cada uma dessas habilidades virou grandes subáreas de pesquisa dentro da área de Inteligência Artificial.
Processando o Saber nº 10, 2018 128 Nesse exemplo também há um “acabamento” na saída apresentada usando HTML. Nesse caso, se nenhum parâmetro for informado é escrito na página ‘Informe um parâmetro de busca’. A lógica do algoritmo é executada ao entrar com um parâmetro “busca” no URL. CONSIDERAÇÕES FINAIS Um programa de computador pode ser desenvolvido a partir da previsão de todas as possíveis entradas que esse programa pode receber. Uma ação do programa pode ser executada para cada entrada fornecida. Essa abordagem de programação dita todos os passos que o programa deve percorrer para se alcançar uma solução. No entanto, essa abordagem foi apresentado como solução inicial para o corretor à solução inicial apresentada, pois a segunda abordagem permitiu que não sendo necessário o tratamento exaustivo da entrada fornecida e tornando a tomada de decisão (a sugestão de palavras) baseada em pesos atribuídos a cada uma das possibilidades. cada uma das possibilidades podem resultar em sugestões equivocadas, assim como acontece quando os seres humanos precisam tomar uma decisão. REFERÊNCIAS ARTERO, A. O. : teórica e prática. São Paulo: Livraria da Física, 2009. ARTIFICIAL. Dicionário online de português. Disponível em:
Processando o Saber nº 10, 2018 129 BERNERS-LEE, T. et. al. Uniform resource locators. Disponível em: <http://www.w3.org/ Addressing/URL/url-spec.html>. Acesso em: 21 fev. 2017. La aeronáutica. In: Historia de los inventos. Revista Sucesos. Espanha: 1953, n. 12, cap. 13. Disponível em: <http://www. librosmaravillosos. com/inventos/capitulo13.html>. Acesso em: 21 fev. 2017. INTELIGÊNCIA. Dicionário online de português. Disponível em: <https://www.dicio. com. br/inteligencia>. Acesso em: 21 fev. 2017. Binary codes capable of correcting deletions, insertions, and reversals. Soviet Physics Doklady, New York, v.10, n 8, p. 707-710, 1966. . Disponível em: <http://php.net/ manual/pt_BR/ function.levenshtein.php>. Acesso em: 21 fev. 2017. MICHALSKI, R. S.; CARBONELL, J. G.; MITCHELL, T. M. Machine Springer Science and Business Media, 2013. . 3 ed. Rio de Janeiro: Elsevier, 2013. WHAT IS HTML. . Disponível em: <http://www.w3.org/ standards/ webdesign/htmlcss >. Acesso em: 21 fev. 2017.