Tecnologia

22 jul, 2008

Aprendizado de máquina aplicado à Web

Publicidade

O Aprendizado de Máquina (AM) (do inglês machine learning – ML) é uma subárea da IA – Inteligência Artificial – dedicada ao desenvolvimento de algoritmos e técnicas que permitam ao computador aprender, aperfeiçoando seu desempenho em alguma tarefa através da experiência. A idéia principal é que, assim como os seres humanos, os programas sejam capazes de fazer aquisição automática de conhecimento a partir de novos dados.

Aplicações que utilizam AM são encontradas para solução de problemas em diversos ramos do conhecimento e não somente direcionadas à informática, como em problemas de biologia molecular, quimioinformática, jogos eletrônicos, sistemas de visão computacional, definição de padrões através de mineração de dados (data mining) etc.

Em computação é possível a utilização do conceito em processamento de linguagem natural, em sistemas de buscas (search engine) e envolve diversos conceitos na construção de soluções como redes neurais artificiais, modelos vetoriais, algoritmos genéticos, árvores de decisão, modelos probabilísticos etc. O intuito deste artigo é citar alguns exemplos e abrir a discussão sobre utilização de técnicas e conhecimentos dentro da área de aprendizado de máquina para auxiliar e melhorar sistemas web.

Um categorizador automático de documentos é um exemplo de aplicação que utiliza aprendizado de máquina e pode ser de grande vantagem em sites de conteúdo que organizam os textos contidos sob categorias. A construção da solução é dada da seguinte forma: primeiro é necessário executar o treino do sistema, para o qual será fornecido um conjunto de textos e as respectivas categorias nas quais eles estão contidos. Assim é possível que o sistema aprenda com os dados fornecidos para então utilizá-los na categorização de novos textos. Esse é um exemplo de algoritmo de aprendizado supervisionado, em que se tem um conjunto de dados analisado por um especialista. Quando não se dispõe de dados treinados/categorizados podem ser aplicadas técnicas de aprendizado não-supervisionado como o clustering.

Uma aplicação interessante e ainda não disponível (pelo menos não encontrada) dessa solução seria em um sistema de publicação, como o WordPress, por exemplo. Antes de postar um conteúdo, o próprio sistema poderia lhe sugerir as categorias nas quais o documento em questão estaria inserido, baseado em outros textos publicados.

Esse mesmo sistema poderia também sugerir as palavras-chave relacionadas ao texto. Assim seria possível em um texto de título “iPhone 3G é lançado, e usuários já tiveram problemas” obter palavras relacionadas como iPhone, 3G, apple, celular, lançamento, problema. O KEA é um algoritmo que utiliza AM para extração de palavras-chave em documentos. É implementado em Java e disponível gratuitamente em http://www.nzdl.org/Kea/.

Às vezes nem é preciso um sistema pronto, parte das técnicas utilizadas pode também ser usada como a aplicação do algoritmo stemmer em textos. Stemming é uma técnica de junção de palavras pela raiz morfológica, podendo ser útil para sistemas de buscas. Com a técnica, palavras como “programação”, “programas”, “programador” são reduzidos ao radical “program” podendo tornar mais eficiente um sistema de busca.

Um dos principais motivos para soluções como esta não estarem disponíveis ainda é o fato de nem sempre serem exatas, pois tratam de processamento de linguagem natural – além de serem custosas, uma vez que a internet exige que os sistemas sejam rápidos. Mas acredito serem válidas as discussões e o incentivo à estudos desse tipo.

Algumas fontes

Livro Information Retrieval

Artigo “Aprendizado de máquina em categorização de textos”

Classe com a implementação do Stemmer para o Português