Classificação de páginas na Internet

Propaganda
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.
Download