Classificação de páginas na Internet JOSÉ MARTINS JUNIOR EDSON DOS SANTOS MOREIRA ICMC - Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo Caixa Postal 668, 13560-970, São Carlos, SP, Brasil {jmartins,edson}@icmc.usp.br Abstract. The huge growth of the Internet has been occurring since the 90’s. The current search engines make possible the localization of Web pages by means of a lexical comparison among sets of words and the hypertext’s contents. In order to find contents that express concepts or objects, such as products for sale in electronic commerce sites, are inefficient mechanisms. The proposition of the Semantic Web was announced in 2000 for this purpose, envisioning the establishment of new standards for formal contents representation in the Web pages, but the estimated date for its implementation was initially stated in ten years. The DEEPSIA project was conceived as a solution centered in the purchaser, instead of the current marketplaces, in order to solve the problem of finding Web pages with the description of products for sale, using methods of text classification. We present here the application and evaluation of the Support Vector Machines method. Keywords: DEEPSIA, e-Commerce, Support Vector Machines, ontology, agent, text classification, Web. 1 Introdução A Internet foi instituída na década de 70 com a finalidade de possibilitar a comunicação entre os diversos centros de pesquisa nos EUA. A partir da década de 80 espalhou-se para outros países, sendo seu uso estendido a universidades, instituições governamentais e organizações. Mas foi na década de 90, quando pessoas e empresas conseguiram acesso a ela, através de Provedores de Serviços da Internet (ISPs), que seu uso literalmente “explodiu”. Em 1990, Tim Berners-Lee apresentou uma nova aplicação para a exibição de documentos. Hipertextos, assim chamados porque associam links a outros documentos no próprio texto, eram exibidos através de uma ferramenta gráfica, a WorldWideWeb, desenvolvida por Berners-Lee. A Web, como então ficou conhecida, foi a principal responsável no aumento do interesse das pessoas pela Internet e seu conseqüente crescimento. Uma enorme quantidade de documentos de hipertextos foram criados desde então. A página principal do Google (www.google.com) indica atualmente a existência de mais de 3 bilhões. Nos últimos anos, muitos recursos foram adicionados à Web, permitindo a inclusão e a exibição de outros tipos de mídia, como figuras, filmes e som, tornando mais interessante a interação do usuário nesse universo. O problema que afeta a sua escalabilidade e o sua futura utilização não se refere ao formato das páginas Web, mas à organização e à classificação apropriadas de seus conteúdos. Tal problema também afeta a utilização do e-Commerce, no que se refere à localização de bens e serviços oferecidos na Web. Diversos search engines, como Altavista (www.altavista.com), Yahoo (www.yahoo.com) e Google, oferecem um serviço de localização de páginas Web baseado em palavras-chave fornecidas por seus usuários. Mas em tal modelo eficiência da busca depende do conjunto de sentenças fornecido pelo usuário, predizendo-o como partes do possível conteúdo das páginas procuradas. Tais agentes procuram por páginas através de comparações léxicas entre o conjunto de palavras fornecido e o conteúdo das páginas na Web. Marketplaces provêm na Web ferramentas especializadas para a organização, a busca e a apresentação de informações sobre produtos oferecidos à venda através da Web. Infelizmente, realizam a busca em um domínio limitado, composto por fornecedores previamente contratados. Uma outra opção consiste em prover inteligência a agentes que operam na Web permitindo-os de realizarem a busca por páginas que expressem conceitos de objetos desejados. O problema aqui refere-se à linguagem utilizada atualmente para a criação de páginas Web, HTML (HyperText Marckup Language). Infelizmente, ela não dispõe de recursos apropriados à representação formal de conceitos. Berners-Lee anunciou em 2000 a instituição da Web Semântica. Tal iniciativa, instituída pelo WWW Consortium, visa o desenvolvimento de novos recursos, como o XML (Extensible Markup Language) e o RDF (Resource Description Framework), para a representação de conceitos de objetos em páginas Web, referenciados por uma ontologia global, que será compartilhada por agentes na Web. O prazo para a sua implantação foi inicialmente estimado em 10 anos. O sistema DEEPSIA foi desenvolvido para prover uma solução centrada no consumidor, e utiliza métodos de classificação de textos para encontrar descrições de produtos à venda em páginas Web. O processo de classificação das páginas Web pelo critério “conter produto à venda”, quando do teste do sistema DEEPSIA em páginas Web brasileiras, apresentou um resultado pouco satisfatório. Este artigo descreve a aplicação e a avaliação do método Support Vector Machines (SVM) sobre o problema de classificação descrito. A seção 2 descreve conceitos de e-Commerce e eBusiness estudados no presente trabalho; a seção 3 apresenta o sistema DEEPSIA e suas principais características; a seção 4 discute sobre a aplicação de métodos de classificação de texto para se decidir se uma página contém (ou não) descrições textuais de produtos à venda, e apresenta a solução adotada pelo presente trabalho; a seção 5 apresenta os principais resultados dos testes realizados; conclusões e trabalhos futuros são apresentados na seção 6. 2 E-Commerce na Web Sistemas de Informação online de apoio a negócios eletrônicos (e-Business) estão sendo amplamente desenvolvidos na Web. Alguns fatores têm colaborado para a implementação dos mesmos, como a interface agradável e simples das aplicações Web, que possibilita o uso de recursos multimídia para realçar características de produtos, e o acesso à Internet, disponível atualmente em qualquer lugar do mundo. Tais fatores, associados à atual onda de globalização da economia, fazem da Web um meio adequado à divulgação e comércio de bens e serviços. A evolução da infra-estrutura, como o suporte logístico, as operações com cartões de crédito e a integração de sistemas bancários, associada à abrangência da Internet, possibilitou alcançar nichos de mercados antes inacessíveis, devido às limitações geográficas. As transações comerciais através da Internet instituíram novas formas de operação do eCommerce (comércio eletrônico). Diversos trabalhos foram recentemente publicados, envolvendo vários aspectos da evolução dos Sistemas de Informação aplicados ao e-Business, como: criação de métodos formais (Song et al, 2002); definição de arquiteturas (Magalhães and Lucena, 2002) e infraestrutura (Coutinho et al, 2002) (Milagres et al, 2002); utilização de agentes (Magalhães and Lucena, 2002) e de ontologia (Herrera et al, 2002); aplicações de recuperação de informações (Badue et al, 2002). Atualmente, existem diversos tipos de aplicações para e-Business na Web. Uma taxonomia de modelos de negócio aplicáveis à Web é apresentada em (Rappa, 2003): - Brokerage Model – brokers são auxiliam transações de negócios, aproximando consumidores e fornecedores. Este modelo inclui as formas: Marketplace Exchange – provê um grande número de serviços para auxiliar o processo de transação para indústrias ou consórcios; Search Agent – agente (ou robot) utilizado para encontrar preço e disponibilidade de bens e serviços para consumidores; - - - Advertising Model – é uma extensão do modelo tradicional de difusão (propaganda). Este tipo de sistema é utilizado na divulgação de informações sobre bens e serviços oferecidos por fornecedores. Exemplos: Portal – consiste de um ponto de entrada da Web, normalmente associado a um search engine que fornece um grande número de serviços (Yahoo!, p.e.); Contextual Advertising – propaganda automática (banners e janelas pop-up) condicionada ao uso de algumas aplicações freeware. Algumas ferramentas selecionam links baseadas no comportamento do usuário (Gator, p.e.); Infomediary Model – mantém e fornece informações sobre consumidores e suas preferências, assim como sobre fornecedores e seus produtos, e então atua como um agente intermediário de informações. Algumas formas deste modelo: Advertising Networks – trata-se de um serviço que alimenta dados em banners para uma rede de sites, coletando informações sobre a eficiência da propaganda através do uso de cookies (DoubleClick, p.e.); Merchant Model – modelo que representa atacadistas e varejistas, com seus bens e serviços, que realizam vendas através de listas de preço ou consulta. Exemplo: Virtual Merchant – mercado eletrônico que opera vendas na Web (Amazon.com, p.e.); - - - - - Manufacturer Model – trata-se de um modelo que usa o poder da Web para permitir o acesso direto de fabricantes aos consumidores, simplificando o canal de distribuição. O contato direto pode ser justificado pela eficiência na prestação do serviço ou pela melhor concepção sobre as preferências e necessidades do consumidor (Apple Computer, p.e.); Affiliate Model – contrasta-se com o portal genérico, que atrai um enorme tráfego para um único site. Este modelo provê oportunidades de compra em sites de fornecedores contratados quando os usuários estão visitando suas páginas (Amazon.com, p.e.); Community Model – baseia-se na lealdade do usuário, que geralmente contribui com seu conteúdo e/ou finança. O conteúdo e os negócios publicados por seus usuários geram a renda para a manutenção do site. Tipos: Voluntary Contributor Model – criado por uma comunidade de usuários que mantêm o site através de doações voluntárias. Esse tipo inclui os sites de organizações sem fins lucrativos (The Classical Station, p.e.); Knowledge Networks – disponibilizam informações sobre áreas profissionais e outros assuntos, fornecidas por especialistas, através de fóruns de discussão e listas (AllExperts, p.e.); Subscription Model – usuários pagam pelo uso de serviços especiais oferecidos por tais sites. É comum encontrar tal modelo associado com o advertising model. Exemplo: Internet Service Providers – oferecem acesso à Internet e outros serviços contratados pelos usuários (AOL, p.e.); Utility Model – também conhecido como “sob demanda”, baseia-se na medição do uso de serviços. É muito parecido com o modelo tradicional das concessionárias de serviços (como no fornecimento de energia elétrica e telefonia). Exemplo: Metered Subscription – neste caso, os usuários cadastrados pagam pela quantidade de acesso ao conteúdo, como o número de páginas acessadas (Slashdot, p.e.). Um modelo de negócios comumente encontrado na Web é o Marketplace Exchange. Alguns portais brasileiros, como BuscaPé (www.buscape.com.br), BondFaro (www.bondfaro.com.br) e MercadoBR (www.mercadobr.com.br), mostram eficiência na busca por produtos para os consumidores. O problema encontrado em tais portais refere-se ao domínio da busca. Eles estabelecem contratos com um grupo de fornecedores e então restringem as buscas em seus sites. Tal solução é um bom negócio para os fornecedores cadastrados. Infelizmente, a limitação do domínio da busca desfavorece o lado do consumidor na transação. Em qualquer negócio, o consumidor (pessoa ou empresa) deseja encontrar a melhor oferta, de acordo com uma relação custo/benefício. O modelo marketplace reduz as opções de escolha do consumidor a um conjunto de fornecedores contratados. 3 O projeto DEEPSIA O projeto DEEPSIA (Dynamic on-linE intErnet Purchasing System based on Intelligent Agents – IST1999-20483) foi instituído por um programa de pesquisas chamado Information Society Technologies (IST). O consórcio DEEPSIA foi composto por empresas e institutos de pesquisa de diversos países europeus: empresa ComArch (Polônia); Universidade Nova de Lisboa - UNINOVA (Portugal); Universite Libre de Bruxelles (Bélgica); University of Sunderland (Inglaterra); empresa Zeus (Grécia); empresa Comunicación Interativa (Espanha). A Universidade de São Paulo representa a participação brasileira no projeto. O projeto DEEPSIA tem como principal objetivo fornecer meios para a inclusão das Pequenas e Médias Empresas (PME) no comércio eletrônico. Para tanto, fez-se necessário o desenvolvimento de uma infraestrutura computacional baseada em um sistema multiagentes para suportar o processo de compra eletrônica (via Internet) realizado por uma PME, utilizando a concepção de um Catálogo de Produtos armazenado localmente, na PME. A estratégia do DEEPSIA baseou-se em uma solução centrada no consumidor e visa facilitar a incorporação do conhecimento tecnológico da PME (nova no contexto do comércio eletrônico) para prover o acesso às ofertas de produtos adequadas às suas necessidades individuais. A infra-estrutura computacional desenvolvida pelo DEEPSIA oferece uma interface amigável baseada em um catálogo de produtos personalizado que é automaticamente atualizado com informações obtidas de portais de venda na Internet. O catálogo também mantém dados sobre produtos fornecidos por fornecedores específicos, previamente cadastrados no sistema. A interface personalizada do catálogo disponibiliza ao consumidor um conjunto de opções de ofertas, bem como informações sobre qualidade, diversidade, uso e prazo de entrega. A arquitetura do sistema, proposta em (Garção et al, 2001), contém basicamente três módulos ou subsistemas, como apresentado no Figura 1: Dynamic Catalogue (DC), Portal Interface Agent (PIA) e MultiAgent System (MAS). - Web Crawler Agent (WCA): sua função principal é procurar páginas na Web que contêm dados de interesse do usuário, baseando-se em um processo recursivo iniciado por uma semente, e previamente treinado por um processo off-line. É também capaz de receber a informação explícita de URLs para serem pesquisadas. O WCA executa a primeira seleção e classificação das páginas para o processamento posterior pelo Miner Agent. Para cada página obtida, o WCA deve decidir se ela contém (ou não) a descrição textual de produtos à venda, utilizando técnicas de aprendizado supervisionado de máquina aplicadas a métodos de classificação de textos, como KNN e C4.5; - Miner Agent (MA): executa a análise das páginas Web obtidas pelo WCA e armazena as informações significativas em um banco de dados. A ontologia de conceitos (definida pelo usuário) e um conjunto de regras associadas a tais conceitos compõem a base de conhecimento utilizada pelo MA para descrever os dados relevantes que são atualizados em cada requisição. Um Facilitator Agent fornece o processo de validação das URLs armazenadas no catálogo pelo WCA; Human Agent (HA): integra-se à interface do usuário para validação de recursos e sites através do Facilitator Agent e também possibilita o fornecimento de sites pelo usuário para o Miner. É o único agente a estabelecer o contato direto com o usuário. Os outros são executados pela interface do catálogo; Portal Portal Interface Agent Su pplier Agent kernel Knowledge B D Conf. IF Portal BD Private DB IF INTERNET Inter net IF PAI – Portal agent Syste m LEGEND Interface (IF) Catalogue Multi-agent System Collector Agent Miner Agent Facilitator Agent Catalogue IF Crawler Agent Edition IF Restaur ants ... Travel Agencies Browsing IF Office Material DC – Dynamic catalogue MAS –Multi-agent system Kernel Data base (DB) Agents Entity Web sites Figura 1 – Arquitetura do sistema DEEPSIA Uma breve descrição sobre cada subsistema é apresentada a seguir: Dynamic Catalogue (DC): consiste da interface do usuário e é responsável por manter e apresentar os dados que foram coletados pelos multi-agentes contactados, baseando-se nas preferências do usuário fornecidas. O sistema também provê o acesso ao usuário à informação sobre os sites visitados e à configuração da ontologia, que representa o perfil individual sobre o processo de compra. A empresa ComArch foi a responsável pelo seu desenvolvimento. Portal Interface Agent (PIA): é responsável pela criação de uma interface privilegiada entre portais da Web e o sistema de multi-agentes (MAS). Da mesma forma que um sistema marketplace, este agente atua como um facilitador para o acesso de dados armazenados em bases de dados de fornecedores. Sua utilização por fornecedores (opcional) garante o acesso à informação sobre seus produtos pelo MAS, independentemente dos resultados das buscas realizadas pelo Web Crawler Agent. Multi-Agent System (MAS): é descrito como um sistema autônomo que coleta dados através de um processo semi-automático de atualização do catálogo, composto por um conjunto de agentes que realizam tarefas específicas. Uma base inicial de conhecimento é associada ao comportamento individual de cada agente, refletindo os objetivos estratégicos da PME. A UNINOVA responsabilizou-se pelo desenvolvimento do MAS. Os módulos internos do MAS descrevem tipos especialistas de agentes: - - - Facilitator Agent (FA): define a interface entre o catálogo e o conhecimento obtido pelo Miner e/ou Collector Agent. Possibilita a configuração da periodicidade da produção e da atualização de dados no catálogo. Mantém níveis de confidência sobre a informação, delegando a decisão da validação ao Human Agent. Recebe requisições do Catálogo para obtenção e as redireciona para o Collector Agent; Collector Agent (CA): é a interface de acesso ao banco de dados que mantém os sites contratados no PIA e consiste de uma aplicação JATLite que utiliza uma metodologia similar ao DNS para redirecionar requisições do Facilitator para o PIA, estabelecendo associações entre fornecedores cadastrados e os usuários consumidores. Recebe mensagens do Catálogo contendo requisições para atualização e mantém informações sobre o usuário online, também disponibilizando o acesso às informações sobre os fornecedores cadastrados. Outros agentes internos integram a arquitetura MAS, realizando funções operacionais e provendo escalabilidade (diversos agentes do mesmo tipo podem operar colaborativamente) e especialização (agentes especialistas em características específicas de determinados produtos, localização geográfica, e outros): - Tutor Agent (TA): automatiza o processo de treinamento dos agentes, utilizando técnicas de aprendizado supervisionado. Tais técnicas baseiam-se em mecanismos de retroalimentação e fornecem a atualização da base de conhecimento dos agentes; - Postman Agent (PA): opera como um cache para o Miner Agent aumentando sua eficiência; Pillar Box Agent (PBA): implementa um repositório inteligente de páginas Web que são fisicamente armazenadas em servidores FTP; - Router Agent (RA): é responsável pela localização e endereçamento dos agentes, permitindo a comunicação entre eles; O fluxo de páginas Web pode ser descrito como: a) Para cada página obtida pelo Crawler Agent: - A página é classificada e enviada ao servidor FTP; Uma mensagem KQML é enviada ao PBA contendo a localização da página. b) Para cada mensagem recebida pelo Postman Agent: A colaboração da USP no projeto DEEPSIA A Universidade de São Paulo (campus São Carlos) representa a iniciativa brasileira no projeto desde 2001, sendo apoiada pelo CNPq. Dois grupos de pesquisa integram a equipe de trabalho: o Laboratório Intermídia do ICMC (Instituto de Ciências Matemáticas e de Computação) e o NUMA/EESC (Núcleo de Manufatura Avançada / Escola de Engenharia de São Carlos). O NUMA é o responsável pelo desenvolvimento da pesquisa sobre a caracterização de produtos e o estudo do impacto sócio-econômico envolvidos na implantação do sistema nas PMEs brasileiras. O grupo de pesquisas do ICMC teve como objetivo inicial a colaboração no projeto e na implementação do Miner Agent, descrito pela arquitetura do MAS. Em uma Segunda etapa, baseando-se em requisitos obtidos pelo NUMA, através do teste do sistema em PMEs brasileiras, passou a dedicar esforços na adaptação do sistema DEEPSIA: - Tradução da interface e da ontologia para a língua portuguesa; - Desenvolvimento de novas ferramentas para busca e personalização na interface. A observação da versão européia do sistema possibilitou a identificação de alguns pontos a serem melhorados, como: - - - A página é recuperada e armazenada localmente no file system do MA; - Uma mensagem para o MA é enviada, descrevendo a página e sua localização. c) O Miner Agent executa, de acordo com a classificação da página, as seguintes ações: - No caso de uma página apresentar baixa credibilidade, ele envia uma mensagem KQML à interface humana com o conteúdo da página para análise pelo usuário; - Extrai a informação sobre produtos contida em cada página; A informação extraída da página e armazenada no Catálogo. - - - O processo de decisão do Crawler Agent (se a página contém descrição textual de produtos à venda): testes em sites brasileiros demonstraram eficiência pouco satisfatória, indicando a necessidade pela aplicação de outros métodos para a classificação dos conteúdos textuais; Recuperação de Informações do Catálogo: aplicação de técnicas de data mining e data warehousing para obtenção de dados estatísticos e históricos sobre os produtos armazenados e sobre o acesso de usuários; Extração de informações das páginas Web: estudo de técnicas de text mining aplicáveis aos conteúdos textuais das páginas brasileiras; Segurança do sistema: análise de risco do sistema DEEPSIA sobre diversos aspectos, incluindo a comunicação entre os agentes, plataforma operacional e a tecnologia aplicada na sua concepção. 4 O problema de decisão Atualmente, as páginas Web não possuem uma forma adequada para a representação de conceitos. A linguagem padrão utilizada para compô-las, HTML (HyperText Markup Language), limita-se à formatação do layout da interface do usuário e à inserção de links para outros objetos, como figuras, filmes, sons e hipertextos, consistindo uma linguagem formal baseada em rótulos (tags) predefinidos. Outra característica da Web atual é que todas as páginas são indexadas por URLs (Uniform Resource Locators), que representam o caminho completo para acesso ao documento. O conteúdo do URL é textual e normalmente descreve informações como: protocolo padrão (HTTP, FTP, p.e.) para acesso ao serviço desejado; nome de domínio do host que executa a aplicação servidora; número da porta remota; caminho no file system; nome do arquivo (ou objeto) acessado, e outras. Existem três componentes textuais em páginas Web que expressam significado a humanos: conteúdo do corpo (body) da página, seu título (title) e o URL. O único que representa significado a aplicações Web e pode ser compreendido por computadores é o URL. Infelizmente, os conceitos descritos nos hipertextos normalmente não se relacionam diretamente ao URL, e não podem ser indexados por este. A solução aqui consiste em abstrair tais conceitos para um formato útil para computadores e classificá-los corretamente como objetos compreensíveis por humanos. Isso define o principal objetivo do estudo em Classificação de Textos (Text Classification – TC). Joachims (Joachims, 1997) definiu TC como o processo de agrupamento de documentos em diferentes categorias ou classes. A classificação automática de textos refere-se à construção automática de classificadores utilizando processos indutivos (learners), pelos quais obtém-se um classificador para uma categoria ci observando características de um conjunto de documentos, previamente (e manualmente) associados a ci por um especialista do domínio envolvido (Sebastiani, 1999). Essa abordagem denota um certo tipo de aprendizado de máquina denominado supervisionado, onde um novo documento pode ser classificado através da comparação a um classificador predefinido que foi treinado a partir de documentos rotulados. Em (Imamura, 2001) são descritas as tarefas envolvidas no processo geral da classificação automática de textos, tornando-se uma referência importante para o presente trabalho. a) Obtenção de documentos Esta tarefa define o processo para a obtenção de documentos textuais que constituirão os conjuntos de treinamento, teste e classificação. Os conjuntos de documentos utilizados nas fases de treinamento e teste são basicamente compostos por pares: documentos (di ) e as classes que representam (ci ) (Sebastiani, 1999). Ferramentas da Web como crawlers, search engines e subject directories, podem ser utilizadas para a recuperação de conteúdos textuais de páginas Web. Neste projeto (Martins Junior, 2003), as seguintes classes foram projetadas e implementadas para a realização de tal tarefa: - - DocumentExample: obtém e armazena exemplos positivos e negativos localmente, sob uma determinada categoria. Categoria, neste caso, define páginas que contêm (ou não) descrições de produtos à venda em seus conteúdos textuais. A classe também cria uma estrutura de diretórios para organização dos exemplos. Cada exemplo é representado por seu URL, e é armazenado em um arquivo individual dentro do diretório respectivo. O URL é armazenado na primeira linha do arquivo e também em um arquivo índice (index). Tal processo é representado na Figura 2; WebPage: realiza a recuperação de páginas Web, baseando-se no URL fornecido pela classe DocumentExample. Figura 2 – Obtenção de documentos b) Pré-processamento dos documentos Envolve a extração das principais características de um documento visando sua representação adequada para algoritmos de Classificação de Textos. A abordagem estatística visa obter uma representação atributo/valor do conteúdo textual. Tal representação é normalmente denominada bag of words (Mladenic, 1998) (Sebastiani, 1999) e descreve um vetor que contém pares atributo/peso. A concepção do vetor requer a execução de algumas tarefas, como a identificação de atributos, a associação de pesos e a redução da representação (Imamura, 2001). Diversas operações devem ser realizadas para a tarefa de identificação dos atributos: - Remover qualquer tag HTML e código fonte (como JavaScript) e interpretar caracteres especiais (ISO8559-1, p.e.). Esta tarefa normalmente envolve a utilização de um parser; - - Identificar e extrair palavras simples e compostas do conteúdo textual. Tokenizers consistem uma boa escolha para a realização desta tarefa; Ignorar palavras contidas em uma lista de palavras a serem evitadas (stop list), como preposições, artigos e outras. Um ponto interessante descrito por Joachims (Joachims, 1998) refere-se à regra geral para selecionar características (features) de cada documento textual. Consiste da considerar como uma feature válida apenas as palavras que puderem ser encontradas em pelo menos três documentos do conjunto de treinamento e que não constem na stop list. As palavras encontradas sob tal critério são armazenadas ordenadamente em um arquivo texto (words) para a criação de um dicionário para o domínio envolvido. Cada linha no arquivo deve conter uma palavra inédita, que será referenciada pelo algoritmo como uma feature individual, através do índice numérico que corresponde ao número da linha onde foi armazenada no arquivo texto. Existem duas abordagens distintas para o cálculo do peso das características (features) selecionadas: - - Booleana: os valores 0 e 1 são utilizados para representar, respectivamente, a ausência e a presença do termo (atributo ou palavra) no conteúdo textual; Numérica: representa a medida estatística baseada na freqüência do termo (Term Frequency – TF) em um documento. Cada palavra (atributo) corresponde a uma feature com TF (wi ,x), que representa o número de vezes em que a palavra wi apareceu no documento x. Uma variação da abordagem numérica, denominada TFIDF (Term Frequency Inverse Document Frequency), sugere a inclusão da freqüência do termo em todos os documentos como uma medida inversa de sua capacidade de representar um documento específico (Joachims, 1997) (Joachims, 1998). Calcular o IDF(wi ) de uma palavra wi envolve a prévia obtenção de DF(wi ), que consiste do número de documentos que apresentam a ocorrência de wi . A Equação 1 apresenta a fórmula do IDF, onde n é o número total de documentos. n IDF ( wi ) = log DF ( wi ) (1) Visando fornecer a representação adequada de dados para o uso do método SVM (adotado neste trabalho), a fase de pré-processamento foi dividida em duas etapas, para as quais fez-se necessário o desenvolvimento e a implementação (Martins Junior, 2003) de algumas classes: Parsing – envolve a extração do texto de cada arquivo HTML armazenado pela classe DocumentExample. Classes desenvolvidas: - - HtmlParser: realiza a leitura seqüencial de todo o conteúdo de cada arquivo HTML, utilizando a instância de uma classe HtmlReader. Ela efetua então a remoção das tags e comentários HTML, códigos-fonte JavaScript e definições de estilo presentes no conteúdo lido. A classe também realiza a interpretação de caracteres especiais (ISO8559-1) através da instância de uma classe Charset armazenando o texto resultante (em letras minúsculas) em um arquivo com o mesmo nome do arquivo HTML, mas com a extensão “.txt”; HtmlReader: realiza a leitura seqüencial de caracteres de cada arquivo HTML fornecido; - Charset: efetua a tradução dos códigos ISO8559-1 (ã , p.e.) fornecidos para os equivalentes caracteres especiais (ã, p.e.). Tokenizing – nesta etapa busca-se a obtenção das palavras válidas de cada arquivo texto gerado na etapa anterior (parsing). Classes implementadas no projeto: - TextTokenizer: esta classe obtém todos os tokens (sentenças separadas por espaços) de cada arquivo texto fornecido, removendo pontuações e outros caracteres inválidos presentes nos extremos de cada sentença (parênteses, sinais, p.e.), e verifica se consiste uma palavra válida através do uso da instância de uma classe StopList. Um procedimento muito especial é também realizado por esta classe, que refere-se ao reconhecimento de padrão do formato de sentenças que descrevem preços, dado que constitui uma característica importante notada em páginas que possuem produtos à venda. Quando uma sentença é reconhecida como um preço um termo genérico é associado pela classe, denominado “pricestring”; - StopList: tal classe mantém um conjunto de sentenças predefinidas (artigos e preposições, p.e.) que devem ser ignoradas como palavras válidas. Dictionary – nesta etapa procura-se definir um dicionário de palavras específicas do domínio em questão. Classe responsável: - Dictionary: obtém todas as palavras válidas de cada arquivo texto, através da instância de uma classe TextTokenizer. Cada palavra que atender a regra (encontrada em três documentos, pelo menos) é armazenada ordenadamente em um arquivo texto, chamado words. O conjunto completo de palavras é mantido pela classe em uma estrutura HashTable, quando da instância da classe Dictionary, a fim de otimizar a consulta por palavras. Weighting – objetiva-se aqui o cálculo da medida TFIDF para cada feature presente no arquivo texto. Classes implementadas: - - - FeaturesFrequences: esta é a única classe a realizar a leitura do arquivo texto nesta etapa. Ela realiza a contagem do número de vezes (TF) que cada feature (palavra válida do Dictionary) aparece no documento, e cria uma estrutura Set para cada documento, onde descreve os pares: feature/TF; FeaturesIDF: recebe as estruturas Set da classe FeaturesFrequences e as fornece, uma a uma, à classe FeaturesDF. A seguir, obtém de FeaturesDF o valor DF (Document Frequency) para cada feature calculando seu peso IDF (Inverse Document Frequency), o qual é ordenadamente armazenado em um arquivo words.idf como um valor numérico float; FeaturesDF: realiza a contagem dos documentos (Document Frequency) que contém cada palavra, baseando-se nas estruturas Set recebidas da classe FeaturesIDF. Vectors – a última etapa do pré-processamento refere-se à criação dos vetores de características (features vectors) para cada exemplo obtido de um documento textual. Classe envolvida: - FeaturesVectors: sua função consiste em obter os valores TF e IDF para cada feature, providos pela instância das classes FeaturesFrequences e FeaturesIDF, e calcular o valor TFIDF (TF*IDF). Um vetor é criado para cada exemplo contendo todos os pares de valores feature/TFIDF, e armazenado em uma linha individual de um arquivo texto denominado train.dat (para fins de treinamento; e test.dat para teste). A Figura 3 apresenta uma visão geral dos estados inicial e final dos exemplos, separados pelas fases de obtenção e pré-processamento. O estado inicial representa o domínio completo em questão, composto pelas páginas Web brasileiras. Figura 3 – Páginas Web brasileiras (a) e representação vetorial(b) c) Extração do conhecimento Os algoritmos aplicados nesta fase implementam os diferentes métodos para a classificação automática de textos. O método Support Vector Machines (SVM) foi adotado para o presente trabalho. SVM foi desenvolvido por Vapnik (Vapnik, 1995) baseando-se no princípio da Minimização do Risco Estrutural (Structural Risk Minimization) da teoria do aprendizado estatístico. Consiste de um método utilizado para o reconhecimento de padrões definidos em um espaço vetorial, onde o problema resume-se em encontrar uma superfície de decisão que melhor separe os dados em duas classes (positiva e negativa) distintas. Isso previamente qualifica o método como adequado para problemas de classificação, como o apresentado por este trabalho. Na sua forma básica, o classificador SVM aprende regras lineares binárias descritas por um vetor de pesos w e um ponto inicial b. Dependendo do lado do hiperplano em que o vetor de atributos for representado, será classificado como +1 (positive) ou –1 (negative). A Minimização do Risco Estrutural visa encontrar uma hipótese que garanta a menor probabilidade de erros de classificação, o que pode ser traduzido em encontrar o hiperplano h com margem máxima, separando os dados em duas classes distintas (exemplos positivos e negativos) em uma representação do espaço vetorial, conforme mostra a Figura 4 (obtida de MLnet.org). Os exemplos representados juntos à margem do hiperplano h (marcados com círculos)são denominados Support Vectors. - svm_classify: consiste do módulo de classificação do SVMlight e requer, como entrada, um arquivo contendo os exemplos de teste (no mesmo formato que o arquivo com exemplos de treinamento) e outro, que contém o modelo gerado pelo módulo svm_learn. Fornece, como saída, um arquivo texto com as classificações realizadas para cada exemplo. d) Avaliação do conhecimento Para tarefas de classificação que envolvem classes com valores discretos, algumas medidas de qualidade podem ser estimadas a partir dos seguintes resultados observados: - tp (true positive – positivos verdadeiros): número de exemplos positivos que foram corretamente classificados; Figura 4 – Hiperplanos em um espaço vetorial O uso de Support Vector Machines aplicado à classificação de textos foi introduzido por Joachims (Joachims, 1998). Em seu trabalho, Joachims apresentou um estudo comparativo entre o SVM e outros algoritmos, como Bayes, Rocchio, C4.5 e K-NN. O SVM apresentou o melhor resultado quando comparado a tais algoritmos. A fim de facilitar o processo de aprendizado na classificação de textos, cada categoria é associada a um problema específico de classificação binária (Joachims, 1999). SVMlight é uma implementação do algoritmo SVM desenvolvida por Joachims, que pode ser livremente utilizada em pesquisas científicas. O SVMlight consiste basicamente de dois módulos: - svm_learn: trata-se do módulo de treinamento do SVMlight que especifica como entrada um arquivo texto contendo o conjunto de vetores que representam os exemplos de treinamento. Cada linha do arquivo deve conter um vetor. Para os casos de classificação linear com SVM, as linhas contém os pares feature-value dispostos em ordem crescente, ordenados por feature. Cada feature é representada pelo seu número de linha no arquivo words. Os dois primeiros caracteres da linha, +1 ou –1, representam as opções positive ou negative, respectivamente. Value é o peso TFIDF da feature representado como um valor numérico do tipo float. svm_learn armazena o modelo (classificador) gerado em um arquivo texto, denominado model; - - - fp (false positive – falsos positivos): número de exemplos negativos classificados como positivos; fn (false negative – falsos negativos): número de exemplos positivos classificados como negativos; tn (true negative – negativos verdadeiros): número de exemplos negativos corretamente classificados; Medidas: - Precision: proporção de exemplos positivos que foram classificados corretamente. Em problemas de classificação binária, a precision pode ser obtida pela fórmula apresentada pela Equação 2; tp PRECISION = tp + fp - (2) Recall: descreve a porção que foi classificada corretamente como exemplos positivos. Esta medida pode ser estimada pela fórmula da Equação 3; tp RECALL = tp + fn (3) - Accuracy: trata-se da proporção de classificações corretas, e seu cálculo é descrito pela Equação 4. tp + tn ACCURACY = tp + fp + tn + fn (4) O modelo obtido foi utilizado para a classificação de exemplos positivos e negativos obtidos de outros sites. A Tabela 2 apresenta as medidas precision, recall e accuracy que foram calculadas sobre os resultados da classificação, quando aplicada em páginas Web de sites não comerciais. Tabela 2 – Avaliação em sites não comerciais 5 Resultados obtidos Todas as classes mencionadas na seção 4 foram implementadas durante a realização deste trabalho (Martins Junior, 2003) utilizando-se de tecnologia Java (j2sdk1.3.1 – The Java 2 Standard Development Kit). Visando-se otimizar as operações de ordenação e recuperação de dados, foram utilizadas, durante o desenvolvimento, estruturas e recursos apropriados, como HashTable, HashSet e SortedMap. Diversos testes foram realizados a fim de se confirmar a capacidade de aprendizado da solução implementada. A Tabela 1 apresenta o conjunto de exemplos obtidos e utilizados durante a fase de treinamento para a geração do modelo (classificador). Esse conjunto contribuiu para a criação de um dicionário do domínio analisado com um total de 11205 palavras. O experimento foi realizado em um computador com processador AMD-Athlon 1GHz, e com 512 MB de RAM, sobre uma plataforma composta pelo sistema operacional Linux, distribuição Debian com kernel da versão 2.4.18. Os tempos obtidos na execução da fase de treinamento foram os seguintes: - Criação do dicionário: 20 s; - Geração dos vetores: 2 min 50 s. Banespa ICMC Receita Amostra Resultado Avaliação Positivos Negativos 212 68 40 50 20 19 0 25 33 25 21 2 54 17 33 33 51 46 103 93 50 71 27 10 36 26 45 42 725 527 0 0 0 Negativos 60 90 40 Total 60 90 40 fp 1 0 0 fn 0 0 0 tp 0 0 0 tn 59 90 40 Accuracy 98,33% 100% 100% Precision NA NA NA Recall NA NA NA A Tabela 3 apresenta a mesma avaliação, mas sobre os resultados da classificação de páginas de outros sites comerciais. Tabela 3 – Avaliação em outros sites comerciais Amostra Tabela 1 – Conjunto de treinamento Site Americanas Bondfaro Buscape Estadão Economia Extra Globo Shopping Kalunga Liv Cultura Liv Saraiva Luiza Mercado Livre Shopping UOL Shoptime Submarino Positivos Resultado Avaliação Ponto Frio Ri Happy Som Livre Positivos 85 33 54 Negativos 0 3 19 Total 85 36 73 fp 0 0 1 fn 0 0 7 tp 85 33 47 tn 0 3 18 Accuracy 100% 100% 89,04% Precision 100% 100% 97,92% Recall 100% 100% 87,04% 6 Conclusão e trabalhos futuros Observando a avaliação dos resultados apresentados, conclui-se que um método estatístico pode ser aplicado a tarefas de classificação de textos, mesmo quando o problema em questão requer o reconhecimento da presença de uma determinada característica, como a descrição textual de produtos à venda, abordada pelo presente trabalho. A eficiência do modelo depende da qualidade dos exemplos positivos e negativos selecionados para a composição do conjunto de treinamento. Outro ponto importante descrito no presente trabalho refere-se à adaptação das tarefas envolvidas na análise do domínio, como a abordagem do reconhecimento de padrões de sentenças que descrevem preços, apresentada na seção 4. Finalmente, sugere-se como trabalhos futuros a aplicação do método apresentado para a solução de outros problemas de decisão na classificação de textos, e também sua avaliação, quando aplicado em outros domínios. A experiência agregada por este trabalho ao grupo de pesquisas pode ser útil quando da aplicação de solução parecida em processos de decisão enfrentados por sistemas detectores de intrusão. O reconhecimento de padrões de ataque através de fatos descritos em conteúdos textuais de arquivos de log do sistema operacional pode se tornar um objeto da aplicação de uma solução similar à explorada pelo presente trabalho. Outra sugestão para a elaboração de futuros trabalhos consiste da aplicação de outros métodos de classificação de textos para a solução do mesmo problema que buscou-se solucionar. 7 Referências B. Coutinho, G. Teodoro, T. Tavares, R. Pinto, D. Nogueira, W. Meira Jr, Assessing the impact of distribution on e-business services, In: Proceedings of the First International Seminar on Advanced Research in Electronic Business, Rio de Janeiro, Brazil, 2002. F. Milagres, E. Moreira, J. Pimentão, P. Sousa, Security Analysis of a Multi-Agent System in EU’s DEEPSIA Project, In: Proceedings of the First International Seminar on Advanced Research in Electronic Business, Rio de Janeiro, Brazil, 2002. J. F. Herrera, J. Martins Junior, E. Moreira, A Model for Data Manipulation and Ontology Navigation in DEEPSIA, In: Proceedings of the First International Seminar on Advanced Research in Electronic Business, Rio de Janeiro, Brazil, 2002. C. Badue, R. Baeza-Yates, W. Meira, B. Ribeiro-Neto, N. Ziviani, Distributed Architecture for Information Retrieval, In: Proceedings of the First International Seminar on Advanced Research in Electronic Business, Rio de Janeiro, Brazil, 2002. M. Rappa, Managing the Digital Enterprise: Business Models on the Web, In: E-Commerce Learning Center of North Carolina State University web site: http://ecommerce.ncsu.edu/research.html, último acesso em: 20/04/2003. A. S. Garção, P. A. Sousa, J. P. Pimentão, B. R. Santos, V. Blasquéz, L. Obratanski, Annex to DEEPSIA’s Deliverable 4 – System Architecture, Technical Report of IST PROJECT-1999-20483, January, 2001. T. Joachims, A Probabilistic Analysis of the Roccio Algorithm with TFIDF for Text Categorization, Universitat Dortmund, 1997. J. Martins Junior, Classificação de páginas na Internet, São Carlos, 2003, 81p, Dissertação de Mestrado Instituto de Ciências Matemáticas e de Computação de São Carlos, Universidade de São Paulo. F. Sebastiani, Machine Learning in Automated Text Categorization, Technical Report IEI B4-31-12-99, Instituto di Elaborazione della Informazione, Consiglio Nazionale delle Ricerche, Pisa, Italy, 1999. M. Song, A. Pereira, G. Gorgulho, S. Campos, W. Meira Jr, Model Checking Patterns for e-Commerce Systems, In: Proceedings of the First International Seminar on Advanced Research in Electronic Business, Rio de Janeiro, Brazil, 2002. C. Y. Imamura, Pré-processamento para Extração de Conhecimento de Bases Textuais, São Carlos, 2001, Dissertação de Mestrado - Instituto de Ciências Matemáticas e de Computação de São Carlos, Universidade de São Paulo. J. Magalhães, C. Lucena, A Multi-Agent Product Line Architecture for Websearching, In: Proceedings of the First International Seminar on Advanced Research in Electronic Business, Rio de Janeiro, Brazil, 2002. D. Mladenic, Machine Learning on non-homogeneous, distributed text data, PhD thesis, University of Ljubljana, Faculty of Computer and Information Science, Ljubljana, 1998. T. Joachims, Text Categorization with Support Vector Machines: Learning with Many Relevant Features, Universitat Dortmund, 1998. V. Vapnik, The Nature of Statistical Learning Theory, Springer-Verlag, 1995. T. Joachims, Transductive Inference for Text Classification using Support Vector Machines, In: Proceedings of the International Conference on Machine Learning (ICML), 1999.