Text Mining no Aperfeiçoamento de Consultas e Definição de

Propaganda
i
Darley Passarin
Text Mining no Aperfeiçoamento de Consultas e Definição de
Contextos de uma Central de Notícias Baseada em RSS
Palmas
2005
ii
Darley Passarin
Text Mining no Aperfeiçoamento de Consultas e Definição de
Contextos de uma Central de Notícias Baseada em RSS
“Monografia
apresentada
como
requisito parcial das disciplinas de
Trabalho de Conclusão de Curso em
Sistemas de Informação I (TCC I) e
Trabalho de Conclusão de Curso em
Sistemas de Informação II (TCC II)
do
curso
de
Sistemas
de
Informação, orientado pela Profª.
MSc. Parcilene Fernandes de Brito.”
Palmas
2005
iii
DARLEY PASSARIN
TEXT MINING NO APERFEIÇOAMENTO DE CONSULTAS E
DEFINIÇÃO DE CONTEXTOS DE UMA CENTRAL DE NOTÍCIAS
BASEADA EM RSS
“Monografia apresentada como
requisito parcial das disciplinas de
Trabalho de Conclusão de Curso em
Sistemas de Informação I (TCC I) e
Trabalho de Conclusão de Curso em
Sistemas de Informação II (TCC II) do
curso de Sistemas de Informação,
orientado pela Profª. MSc. Parcilene
Fernandes de Brito.”
Aprovada em ___/___/_______
BANCA EXAMINADORA
______________________________________________________
Profª. MSc. Parcilene Fernandes de Brito - Orientadora
Centro Universitário Luterano de Palmas
_______________________________________________________
Prof. MSc. Fernando Luiz de Oliveira
Centro Universitário Luterano de Palmas
_______________________________________________________
Prof.ª Dra Thereza P. P. Padilha
Centro Universitário Luterano de Palmas
Palmas
2005
iv
AGRADECIMENTOS
Agradeço
aos
meus
familiares,
principalmente aos meus pais que
lutaram fortemente para a graduação
de seus filhos; à minha namorada que
sempre me fortaleceu nas horas boas e
ruins; aos meus amigos, por sempre
estarem
me
apoiando
na
vida
acadêmica e pessoal; e a minha
professora
orientadora
que
soube
contornar as minhas dificuldades com
clareza e responsabilidade.
v
RESUMO
Este trabalho tem como foco o aperfeiçoamento de uma Central de Notícias (CN) baseada
em informações obtidas de feeds RSS (Really Simple Syndication). Tal central se tornou
um complexo repositório de informações, dos mais variados contextos e locais, atualizadas
diariamente, o que tornou relevante a construção de mecanismos capazes de melhorar a
sistematização do seu conteúdo. Esses mecanismos foram criados neste trabalho através da
utilização de técnicas de Inteligência Artificial, visando o aperfeiçoamento das formas de
consulta e retorno das informações para o usuário. Esta é a principal idéia do
desenvolvimento deste trabalho, em que foi aplicado o processo de Clustering, pertencente
à técnica de Mineração de Textos (Text Mining), com o objetivo de se criar clusters
(grupos) de notícias que tratam sobre o mesmo assunto, tendo como conseqüência, a
melhora na organização e disposição das informações na CN. Portanto, esta é a premissa
básica para o desenvolvimento deste trabalho, cujo objetivo é apresentar os estudos acerca
da técnica de Mineração de Textos e, assim, aplicá-las na melhoria de uma Central de
Notícias.
Palavras-chave: RSS, Mineração de Textos, Central de Notícias.
vi
ABSTRACT
This work has as focus the perfectioning of a Center of News (CN) based in information
gotten of feeds RSS (Really Simple Syndication). Such center if became a complex
repository of information, of the most varied contexts and places, brought up to date daily,
what it became excellent the construction of mechanisms capable to improve the
systematization of its content. These mechanisms had been created in this work through
the use of techniques of Artificial Intelligence, aiming at the perfectioning of the
consultation forms and return of the information for the user. This is the main idea of the
development of this work, where the process of Clustering was applied, pertaining to the
technique of Text Mining, with the objective of if creating clusters (groups) of notice that
treat the same on subject, having as consequence, the improvement in the organization and
disposal of the information in the CN. Therefore, this is the basic premise for the
development of this work, whose objective is to present the studies concerning the
technique of Text Mining and, thus, to apply in the improvement of a Center of News.
Palavras-chave: RSS, Text Mining, Center of News.
vii
SUMÁRIO
1
2
3
4
5
6
INTRODUÇÃO...........................................................................................................11
REVISÃO DE LITERATURA ...................................................................................13
2.1
Mineração de Textos (Text Mining)................................................................... 13
2.1.1
Tipos de Abordagens de Dados .................................................................. 15
2.1.1.1 Análise Semântica .................................................................................. 15
2.1.1.2 Análise Estatística .................................................................................. 16
2.1.2
Preparação dos Dados................................................................................. 17
2.1.2.1 Recuperação da Informação ................................................................... 17
2.1.2.1.1 Modelo Booleano ............................................................................. 17
2.1.2.1.2 Modelo de Espaço Vetorial .............................................................. 19
2.1.2.2 Análise dos Dados .................................................................................. 21
2.1.2.2.1 Stopwords ......................................................................................... 21
2.1.2.2.2 Stemming.......................................................................................... 22
2.1.2.2.3 Thesaurus.......................................................................................... 23
2.1.3
Processamento dos Dados .......................................................................... 24
2.1.3.1 Sumarização ........................................................................................... 24
2.1.3.2 Categorização ......................................................................................... 25
2.1.3.3 Clustering ............................................................................................... 26
2.1.3.3.1 Identificação e Seleção de Termos-Índices ...................................... 31
2.1.3.3.2 Identificação de Graus de Similaridade............................................ 32
2.1.3.3.3 Agrupamento .................................................................................... 34
MATERIAIS E MÉTODOS .......................................................................................37
3.1
Local e Período................................................................................................... 37
3.2
Materiais ............................................................................................................. 37
3.2.1
Hardwares................................................................................................... 37
3.2.2
Softwares .................................................................................................... 37
3.2.3
Fontes Bibliográficas.................................................................................. 38
3.3
Metodologia........................................................................................................ 38
3.3.1
RSS ............................................................................................................. 38
3.3.2
PHP............................................................................................................. 39
3.3.3
PostgreSQL................................................................................................. 39
RESULTADOS E DISCUSSÃO ................................................................................40
4.1
Estrutura da Aplicação ....................................................................................... 40
4.2
Análise dos Dados .............................................................................................. 42
4.3
Representação das Informações.......................................................................... 45
4.4
Cálculo de Similaridade ..................................................................................... 46
4.5
Agrupamento ...................................................................................................... 48
4.6
Consultas ............................................................................................................ 50
4.7
Interface de Gerenciamento................................................................................ 54
CONCLUSÕES...........................................................................................................57
REFERÊNCIAS BIBLIOGRÁFICAS ........................................................................59
viii
LISTA DE TABELAS
Tabela 1 – Matriz de similaridade entre documentos.........................................................33
ix
LISTA DE FIGURAS
Figura 1 – Etapas de Mineração de Texto [EBECKEN, 2003]..........................................14
Figura 2 – Modelo Espaço Vetorial [WIVES, 2002]. ........................................................20
Figura 3 – Remoção de stopwords. ....................................................................................22
Figura 4 – Técnica stemming. ............................................................................................23
Figura 5 – Processo de Sumarização..................................................................................25
Figura 6 – Processo de Categorização [EBECKEN, 2003]. ..............................................26
Figura 7 – Processo de Clustering [EBECKEN, 2003]. ....................................................28
Figura 8 – Formas de Clustering [WIVES, 1999]. ............................................................29
Figura 9 – Etapas do processo de Clustering. ....................................................................30
Figura 10 – Processo de Agrupamento [WIVES, 1999]. ...................................................34
Figura 11 – Funcionamento Algoritmo Stars.....................................................................36
Figura 12 – Estrutura Aplicação.........................................................................................41
Figura 13 – Exemplificação da Remoção de Stopwords utilizando Exp. Regulares. ........44
Figura 14 – Exemplificação da Representação das Informações.......................................45
Figura 15 – Exemplificação do Cálculo de Similaridade...................................................47
Figura 16 – Exemplificação do Agrupamento (Clustering)...............................................49
Figura 17 – Tela de Principal da CN..................................................................................52
Figura 18 – Tela de Notícias Semelhantes da CN..............................................................54
Figura 19 – Tela de Gerenciamento da CN........................................................................55
Figura 20 – Tela de Leitura de Feeds RSS.........................................................................56
Figura 21 – Tela de Análise dos Dados..............................................................................56
x
LISTA DE ABREVIATURAS
CN
Central de Notícias
DOM
Document Object Model
XML
Extensible Markup Language
HTML
HiperText Markup Language
PHP
Hypertext Preprocessor
RSS
Really Simple Syndication
RI
Recuperação de Informações
11
1 INTRODUÇÃO
O RSS (Really Simple Syndication) é um padrão de distribuição de conteúdo,
principalmente de notícias, utilizado por vários sites, com intuito de divulgar e
disponibilizar suas informações para o usuário, de forma simples. Isso evita que o leitor
necessite navegar por vários endereços pela internet em busca de informações sobre um
determinado contexto.
No trabalho Central de Notícias (CN) [PASSARIN, 2005] viu-se a relevância, a
partir destas informações, da construção de uma aplicação capaz de obter notícias
disponíveis em várias fontes (sites), armazená-las em um repositório central, organizá-las
por contexto e propiciar uma interface com o usuário capaz de executar consultas
avançadas e eficientes. Para isso, considerou-se, como parâmetro de ordenação, as
interações dos usuários com a CN.
A CN se tornou um complexo repositório de informações, dos mais variados
contextos e locais. Tais informações são atualizadas diariamente, o que propicia a
relevância de construir novos mecanismos capazes de melhorar a sistematização do seu
conteúdo. Desta forma, foi escolhida dentro da área de Inteligência Artificial, a técnica de
Mineração de Textos (Text Mining), que busca dentro de documentos não estruturados
(textos) a extração de novos conhecimentos e de outros padrões [EBECKEN, 2003].
Na técnica de Mineração de Textos a principal visão de extração de conhecimento
é concebida como processamento de dados, em que nesta etapa poderão ser executados
certos processos a fim de extrair conhecimento de documentos textos, para o uso em
situações diversas. Dentre as tarefas existentes, destaca-se a sumarização, categorização e
clustering. No qual a tarefa de clustering foi adotado neste trabalho.
A partir da aplicação do Clustering em uma coleção de textos (neste caso, notícias)
é possível a criação de clusters ou grupos de documentos similares, ou seja, através de
uma coleção desorganizada de documentos textos é possível realizar uma sistematização
na forma de grupos, agregando os documentos por assunto e, conseqüentemente, por
afinidade. Portanto, a idéia principal deste trabalho está no aperfeiçoamento da
organização das informações retornadas para o usuário, utilizando, para isso, a aplicação
da tarefa de Clustering da técnica de Mineração de Textos.
A criação desses clusters de notícias visa possibilitar à CN, a partir da leitura de
uma notícia pelo usuário, a capacidade de sugerir novas notícias que tratam do mesmo
assunto, de forma automática. Isso propiciará um ambiente conveniente para o usuário,
12
pois através da visualização de notícias similares poderão ser evitadas execuções de
consultas nem sempre satisfatórias.
Este trabalho está organizado da seguinte forma: no capítulo 1 (um) tem-se a
introdução; o capítulo 2 (dois) é reservado para a revisão de literatura, abordando as etapas
da técnica de Mineração de Dados, enfatizando o processo de Clustering; o capítulo 3 trata
dos materiais utilizados e a metodologia empregada no desenvolvimento do trabalho; o
capítulo 4 aborda os resultados obtidos a partir da adoção desta técnica; no capítulo 5 são
apresentadas às conclusões deste estudo e o capítulo 6 é destinado às referências
bibliográficas.
13
2 REVISÃO DE LITERATURA
Neste capítulo serão abordados os conceitos sobre as técnicas adotadas no
desenvolvimento do trabalho. A Mineração de Textos (Text Mining) foi a técnica que
permitiu a concretização da idéia central do trabalho, que é a aplicação de técnicas e
processos a fim de auxiliar a extração de conhecimento inovador a partir de documentos
textos. O estudo de suas etapas e processos fez-se necessário, assim como a relevância de
se pesquisar na literatura as definições e etapas do processo de Clustering. Tal processo foi
adotado para a criação de grupos (clusters) de notícias relacionadas ao mesmo assunto.
Portanto, seguem nas seções seguintes as definições sobre a técnica de Mineração de
Textos.
2.1 Mineração de Textos (Text Mining)
O inevitável crescimento do volume de informações em formato texto, produzidos e
armazenados em meios eletrônicos, proporcionou o surgimento do que é denominado de
sobrecarga de informações [WIVES, 1997]. Essa sobrecarga originou-se da grande
produção diária de informações textuais, de forma desordenada, impulsionada pela
internet, que trouxe consigo uma problemática de organização (de informações), devido à
dificuldade de assimilação de grandes quantidades de informações pelo ser humano.
Dentre essas informações textuais estão documentos como relatórios, atas de reuniões,
históricos pessoais, e-mails, planilhas, documentações, artigos, entre outros. Entretanto,
até pouco tempo atrás, a organização dessas informações textuais não eram tidas como
importantes, até que estudos provaram o contrário, mostrando que estas informações nãoestruturadas, a partir de uma organização eficaz, poderiam ser utilizadas de forma
inteligente em vários campos, possibilitando até mesmo, tirar alguma vantagem
competitiva ou dar suporte a tomada de decisões [EBECKEN, 2003]. Com esta visão
competitiva e organizacional, emergiu a área de pesquisa da Mineração de Textos (Text
Mining), que tem como principal finalidade, extrair padrões ou inferir algum tipo de
conhecimento de um conjunto de dados [ALMEIDA, 2004].
A Mineração de Textos é definida como um conjunto de técnicas e processos que
descobrem conhecimento inovador nos textos [EBECKEN, 2003] e/ou como um processo
de extração de conhecimento a partir de documentos textuais não-estruturados [TAN,
1999]. Essa área é motivo de pesquisas e aplicações em vários campos de estudo, que vão
14
desde a Inteligência Artificial, Estatística, Recuperação da Informação, Bancos de Dados
até às Áreas Econômicas.
Como exemplo, a partir do surgimento da Mineração de Textos, foi possível às
empresas e pessoas organizarem de forma eficaz uma grande quantidade de informações
de forma automática. Por exemplo, as informações contidas nos e-mails recebidos e
enviados por uma empresa, dado o volume extenso, são difíceis de serem organizadas e
encaminhadas para um setor responsável. Essa problemática pode ser resolvida através da
Mineração de Textos, possibilitando que essas mensagens, de forma automática, sejam
encaminhadas imediatamente para o setor competente, ou facilitando a leitura através da
criação de resumos das mensagens ou apenas da organização destas mensagens em grupos.
A Mineração de Textos, como descrito, trata-se da execução de vários processos
em várias etapas, de forma seqüencial e iterativa, que transforma ou organiza uma
quantidade
de
documentos
em
uma
estrutura
sistematizada.
Isso
possibilita,
posteriormente, a sua utilização de forma eficiente e inteligente. Essas etapas que compõe
a Mineração de Textos podem ser visualizadas através da Figura 1.
Figura 1 – Etapas de Mineração de Texto [EBECKEN, 2003].
As etapas de Mineração de Textos vão desde a escolha dos documentos textuais
que serão trabalhados, da recuperação e análise das informações coletadas, do
15
processamento sobre estas informações, até o produto final ou estrutura desejada. Dentre
essas etapas existe o que é chamado de preparação dos dados textuais, processamento dos
textos e pós-processamento da mineração (Figura 1), que descrevem os principais
processos executados na tarefa de Mineração de Textos. Estas etapas serão detalhadas nas
próximas seções, dando ênfase nas principais partes que serão utilizadas nos resultados
deste trabalho.
2.1.1
Tipos de Abordagens de Dados
Antes de iniciar as etapas de Mineração de Textos é importante conhecer as formas em
que as informações são tratadas em um texto. Existem duas formas de abordagem de
informações textuais, que são: a análise semântica que é baseada na funcionalidade dos
termos nos textos e a análise estatística que é baseada na freqüência em que os termos
aparecem nos textos [EBECKEN, 2003].
O esclarecimento dessas abordagens possui a finalidade de melhorar a qualidade
dos resultados no processo de Mineração de Textos, através do entendimento do
funcionamento da linguagem natural ou da importância de determinados termos no texto
(através da freqüência), permitindo a produção de resultados mais eficazes. Essas
abordagens serão descritas nas seções seguintes.
2.1.1.1
Análise Semântica
Na Análise Semântica, as informações textuais são trabalhadas conforme a seqüência em
que os termos aparecem no contexto da frase, identificando a correta função de cada
termo. Com isso torna-se possível identificar a real importância de cada termo em
determinados contextos, possibilitando um ganho na qualidade dos resultados na tarefa de
Mineração de Textos. Conforme [EBECKEN, 2003], o “emprego desse tipo de análise
justifica-se pela melhoria em qualidade da Mineração de Textos quando incrementado de
um processamento lingüístico mais complexo”.
A Análise Semântica utiliza fundamentos e técnicas baseadas no processamento de
linguagem natural. O termo Linguagem Natural nada mais é que o estudo detalhado das
linguagens faladas pelos seres humanos a fim de criarem padrões e/ou algoritmos
computacionais capazes de simular a capacidade de formulação de textos conforme o ser
humano. Para a compreensão da linguagem natural é relevante o entendimento dos
16
principais tipos de conhecimentos existentes, dentre eles estão: o conhecimento
morfológico, sintático, semântico e pragmático [CORDEIRO, 2005].
Como dito, a análise semântica dos textos procura identificar a importância das
palavras dentro da estrutura da oração. A partir deste conhecimento analítico é possível a
criação de modelos baseados em regras (criados manualmente por especialistas), para a
aplicação em certos sistemas inteligentes [EBECKEN, 2003].
2.1.1.2
Análise Estatística
Na Análise Estatística a importância dos termos está ligada diretamente a quantidade de
vezes que ela aparece nos textos. Este tipo de análise permite (independente do idioma) a
criação de modelos, através do aprendizado estatístico, capazes de fornecer soluções
computacionalmente viáveis para tarefas nas quais utilizar atividades humanas seriam
muito trabalhosas, lentas, ou mesmo impossíveis em razão da grande quantidade de
informações dispostas no dia-a-dia [EBECKEN, 2003].
O processo de aprendizado estatístico (ou estimativa de dados) segue os seguintes
passos [EBECKEN, 2003]:
1) Codificação dos Dados: neste momento é feita a escolha de um modelo de
codificação, indicado ou não por um especialista, capaz de identificar
características relevantes dentro de um texto e descartar as irrelevantes,
buscando sempre manter as principais (importantes) propriedades dos dados.
2) Estimativa dos Dados: após a escolha do modelo de codificação é definido,
neste momento, um algoritmo de aprendizado para ser aplicado, com intuito de
se obter um modelo mais adequado de estimativa para os dados.
3) Modelos de Representação de Documentos: um principal modelo de
representação de documentos utilizado na tarefa de Mineração de Textos é
conhecido por bag of words. Este tipo de codificação considera uma coleção de
documentos como se fosse um container de palavras, que ignora a ordem das
palavras dentro do texto assim como informações de pontuação ou estrutura,
mas mantém o número de vezes que uma palavra aparece. A partir da
utilização desta codificação é possível ter uma simplificação (ou resumo) de
toda a abundância de informações expressas por um documento texto.
17
Através da Análise Semântica e Estatística são dados os primeiros passos para o
início dos processos de Mineração de Textos. A partir dessas análises, é possível
determinar metodologias específicas a determinados contextos, em busca de resultados
mais satisfatórios oriundos da Mineração de Textos.
2.1.2
Preparação dos Dados
Conforme a Figura 1 inicia-se o processo de Mineração de Textos através da preparação
dos dados a serem trabalhados, ou seja, nesta etapa é feita a escolha dos documentos
disponíveis, é executado o processo de recuperação das informações e posteriormente é
feita a análise dos mesmos. Nas seções seguintes serão abordados de forma detalhada estes
processos.
2.1.2.1
Recuperação da Informação
A Recuperação da Informação (RI) é mais do que um processo de Mineração de Textos, e
sim uma área independente que já vem sendo pesquisada há algum tempo (os primeiros
estudos nessa área foram realizados em 1950, por Calvin Moores [GUP97 apud WIVES,
1997]). Sua área de pesquisa busca resolver um problema causado pelo grande acumulo de
dados, que é a complexidade em se buscar e recuperar informações (que em sua maioria se
encontra desorganizada e em grande quantidade) de forma eficiente e rápida. A partir
desta problemática, os pesquisadores da área de RI desenvolveram (e desenvolvem)
modelos capazes de representar grandes coleções de textos em estruturas organizadas (em
tópicos, resumos ou índices), capazes de descrever em poucas palavras uma gama de
informações, suficientes para facilitar, posteriormente, a execução de consultas por
informações específicas [EBECKEN, 2003].
Dentre os modelos relacionados a RI, existem dois que se destacam [EBECKEN,
2003]: o modelo booleano e o modelo baseado em espaço vetorial. Esses dois modelos
podem ser aplicados nesta etapa de Mineração de Textos como forma de organização das
informações textuais, para uma posterior recuperação destas, de forma eficiente e que
satisfaça as próximas etapas da Mineração de Textos. Nas seções seguintes serão
explanados os modelos citados.
2.1.2.1.1
Modelo Booleano
O modelo Booleano segue um princípio de organização em que documentos textuais são
considerados como conjuntos (coleções) de palavras, ou seja, cada documento textual é
18
representado através de um conjunto de termos relevantes ao seu contexto. Além desta
organização, o modelo booleano manipula e descreve esses conjuntos através de
conectivos booleanos (and, or e not), tornando possível a recuperação de determinadas
informações através de consultas (query) [WIVES, 2002].
Essas consultas são formas de representação das necessidades dos usuários
expressas através de conjuntos de termos combinados, a fim de selecionar uma gama de
documentos que corresponda às necessidades expostas por eles. Assim, através de uma
combinação de termos (ex: venda and informática) que expressem a necessidade (ex:
achar produtos de informática à venda) do usuário são criadas consultas capazes de
selecionar os documentos que satisfazem as mesmas.
Para auxiliar na elaboração de consultas mais eficazes, o modelo booleano trabalha
com operadores capazes de especificar consultas mais complexas. Dentre os operadores
mais comuns estão: o operador “and”, quando uma sentença o utiliza, diz-se que é
verdadeira somente quando as proposições que a compõe (ligadas por tal operador) são
todas verdadeiras, isso possibilita a seleção de documentos textuais distintos que possuam
todos os termos descritos na consulta; o operador “or”, que retorna um resultado se ao
menos uma das proposições que compõe a sentença for verdadeira, possibilitando a
seleção de documentos que possuam pelo menos um dos termos descritos; e o operador
“not” que representa a exclusão ou negação entre termos, possibilitando a não seleção dos
documentos que possuem os termos descritos na consulta.
Como exemplo, caso um usuário queira buscar em certos documentos textuais (ou
internet), aqueles que possuem informações sobre “venda de produtos com frete grátis,
mas que não sejam de informática”, a partir disto, esta consulta poderia ser descrita da
seguinte forma “(venda and produto and frete grátis) not informática”. Desta forma, seu
resultado seria uma coleção de documentos que apresenta os termos “venda”, “produto” e
“frete grátis” em sua estrutura e que não apresenta o termo “informática”.
O modelo booleano se destaca em seus resultados, perante outros modelos, por
permitir ao usuário a opção de formular consultas complexas, detalhadas e bem definidas.
No entanto, essa liberdade de formulação é um tanto complexa para a maioria dos
usuários, devido à falta de experiência e conhecimento em formulação de consultas através
de operadores lógicos. Contudo, o modelo booleano é tido como vantajoso nesta etapa de
recuperação das informações e é um dos mais utilizados por motores de buscas [WIVES,
2002].
19
2.1.2.1.2
Modelo de Espaço Vetorial
No modelo de espaço vetorial, como na maioria dos modelos de recuperação de
informação, a expressão de igualdade entre termos é representada através do que é
chamado de similaridade. Então, adota-se este termo como forma de representação do
número de propriedades (ou características) que determinados objetos (documentos ou
termos) possuem em comum, assim como o número de propriedades incomuns entre
objetos [WIVES, 1997].
Neste modelo, os documentos são representados por vetores de termos [SALTON,
1993], ou seja, a organização e representação dos documentos textuais neste modelo são
feitas através de vetores de termos-índices que descrevem as propriedades de cada
documento em particular. Estes vetores são representados pela forma Di = (t1, t2, t3, ...,
tn), em que Di é o i-ésimo documento da coleção, e tn o n-ésimo termo do documento
[WIVES, 1997], ou seja, para cada documento da coleção existem n termos-índices que os
representa.
Para cada termo armazenado no vetor existe um valor associado, que informa o
grau de importância deste termo no documento (também denominado como peso).
Portanto, cada documento textual possui um vetor relacionado que é representado por
pares de elementos na forma {(termo1, peso1), (termo2, peso2), ..., (termon, peson)}
[WIVES, 2002]. A importância de um termo é normalmente calculada através da
freqüência em que o mesmo aparece no documento, ou seja, se o “termo1” aparecer 10
(dez) vezes dentro de um determinado documento, este será o valor da sua importância.
É importante ressaltar que neste modelo as consultas feitas pelos usuários também
são representadas por vetores de termos-índices, com o formato idêntico ao dos vetores
dos documentos [WIVES, 1997]. Portanto, a forma de se calcular a similaridade sempre
será a mesma, seja entre documentos ou através de consultas.
Como todos os documentos e consultas são representados como vetores, cada
elemento do vetor, neste contexto, poderá ser considerado como uma coordenada
dimensional. Assim, os documentos podem ser dispostos como um espaço euclidiano de n
dimensões (em que n é o número de termos) [WIVES, 2002]. Esta representação
dimensional poderá ser visualizada na Figura 2.
20
Figura 2 – Modelo Espaço Vetorial [WIVES, 2002].
Conforme a Figura 2, cada termo (Ex: Termo1) é considerado como uma
dimensão. O valor do documento (Ex: Obj1) em cada dimensão variam entre 0 (não
similaridade ou irrelevância) e 1 (totalmente relevante ou similar).
Uma das formas de se calcular a similaridade entre documentos é testar o ângulo
existente entre os mesmos (Ex: o ângulo entre Obj1 e Obj2). Desta forma, quanto menor
for este valor, maior será o grau de similaridade. Portanto, Salton [1983] (criador deste
modelo) propôs uma função para calcular a similaridade por cosenos [SALTON apud
WIVES, 1997]. Esta função pode ser visualizada na Equação (1).
n
similaridade(Q, D ) =
∑w
k =1
n
qk
.wdk
2 n
∑ (wqk ) .∑ (wdk )
k =1
(1)
2
k =1
No qual:
Q é o vetor de termos-índices da consulta
•
D é o vetor de termos-índices do documento
•
Wqk são os pesos dos termos-índices da consulta
•
Wdk são os pesos dos termos-índices do documento
A partir da fórmula, proposta por Salton, é possível calcular o grau de similaridade
de todos os documentos da coleção. Esta fórmula não é a única forma para se calcular esta
similaridade, mas é a mais utilizada e menos complexa [WIVES, 1997].
Após a finalização do processo de cálculo de similaridades, torna-se possível a
criação de listas de resultados de todos os documentos e seus respectivos graus de
21
relevância, ordenadas de forma decrescente. Desta forma, o processo de consulta estará
finalizado e o resultado será uma lista dos documentos que satisfizeram as necessidades da
consulta, conforme a idéia central do processo de recuperação de informações.
2.1.2.2
Análise dos Dados
Após a finalização do processo de recuperação das informações dá-se início ao processo
de análise dos dados obtidos na fase anterior. Este processo está entre a etapa de
recuperação das informações e a etapa de processamento dos dados obtidos e possui a
finalidade de reduzir a complexidade computacional [ALMEIDA, 2004] e determinar a
real relevância de determinados termos e suas variações, com intuito de melhorar a
performance e qualidade do processamento das informações.
Neste processo os termos são analisados separadamente, podendo assim, haver a
identificação de variações morfológicas (stemming) de cada termo, como também é
possível eliminar palavras irrelevantes (stopwords) e identificar semelhanças de
significados entre palavras (thesaurus) [EBECKEN, 2003]. Nas seções seguintes serão
explanadas essas formas de análises de termos.
2.1.2.2.1
Stopwords
No processo de análise é relevante a eliminação de palavras que não possuem importância
significativa no texto, no intuito de limitar a quantidade de termos-índices, com a visão de
se manter apenas os termos que representam realmente o contexto de cada documento.
Dentre as palavras que não possuem certa relevância nos textos estão: pronomes,
artigos, preposições e interjeições. Na maioria dos casos estas palavras possuem apenas a
finalidade de conectividade entre termos (no auxílio a formulação de frases), não havendo
assim a necessidade de adicioná-las na estrutura de índices [EBECKEN, 2003].
Além dessas, outras palavras que são tidas como irrelevantes, são aquelas que
aparecem com freqüência na coleção de documentos. Desta forma, são consideradas
incapazes de discriminar os mesmos, tornando-se desnecessária a permanência destas na
estrutura de índices [WIVES, 2002].
O conjunto destas palavras é denominado de stopwords (ou stoplist), ou seja, é um
conjunto ou lista de palavras negativas, também conhecidas como dicionários negativos.
No processo de eliminação de stopwords é feito um comparativo entre um documento
texto e uma lista de stopwords, em que resultará na eliminação de todas as palavras
22
desnecessárias do texto. Na Figura 3 pode ser visualizado na prática este processo de
remoção, através da sua utilização em um documento normal, um outro documento pode
ser inferido, e tal documento será mais “enxuto”, com palavras mais relevantes para a
determinação de contextos ou para serem analisadas por motores de buscas.
7 Encontro de estudantes de
Informática do Tocantins
Uma iniciativa pioneira se
tornou um dos maiores eventos
da área de Computação e
Informática das Regiões Norte e
Centro-oeste. O Encoinfo se
firma, mais uma vez, como um
portal de disseminação dos
trabalhos científicos realizados
pelos
nossos
alunos
pesquisadores.
Documento Normal
Encontro estudantes Informática
Tocantins
iniciativa
pioneira
tornou maiores eventos área
Computação Informática Regiões
Norte Centro-oeste Encoinfo firma
vez portal disseminação trabalhos
científicos
realizados
alunos
pesquisadores
Documento sem stopwords
Figura 3 – Remoção de stopwords.
Portanto, stopwords são todas as palavras que influenciam negativamente no
processo de análise. Assim,a sua existência nos textos implicaria na perca de desempenho
e qualidade nas etapas seguintes da tarefa de Mineração de Textos, por isso é necessária a
execução deste processo antes das próximas etapas.
2.1.2.2.2
Stemming
Na etapa de análise de dados existe outro processo de tratamento de termos, que ajuda a
melhorar a definição de termos-índices. Um desses processos é o stemming (ou
lematização), que é tido como uma técnica que busca reduzir a variância morfológica de
um termo, ou seja, esta técnica consiste em identificar os radicais das palavras, reduzindo
assim a quantidade de termos na estrutura de índices ao adotar apenas o seu radical como
termo-índice [WIVES, 1997]. Uma forma de se identificar os radicais das palavras é
através da remoção de seus sufixos e prefixos, assim como a eliminação dos plurais das
palavras.
Além da diminuição da quantidade de termos-índices, esta técnica possibilita ao
usuário a não preocupação com a forma ortográfica com a qual uma palavra foi escrita no
23
texto [WIVEZ, 2002]. Como conseqüência, a abrangência da consulta será expandida,
assim, ao digitar qualquer variância do termo, será retornado apenas o seu radical.
Através da Figura 4 pode ser visualizada a aplicação do processo de stemming.
Pode ser observado que o mesmo diminui consideravelmente a quantidade de termos,
possibilitando, assim, uma melhora na etapa de criação da estrutura de termos-índices.
1 - CONSIDER
1 - CONSIDERAR
2 - CONSIDERADO
3 - CONSIDERAÇÃO
4 - CONSIDERAÇÕES
Quatro Palavras
Uma Palavra (seu radical)
Figura 4 – Técnica stemming.
Contudo, na execução da técnica de stemming existe uma dificuldade em relação às
linguagens (idiomas) existentes, ou seja, por se tratar de uma técnica que trabalha com
variações morfológicas, as regras de cada língua devem ser consideradas. Porém, existem
estudos e projetos que se empenham apenas em determinados idiomas, tornando possível
sanar estas dificuldades num dado escopo.
2.1.2.2.3
Thesaurus
Um thesaurus pode ser interpretado como sendo um vocabulário que representa
sinônimos, hierarquias, abreviações, acrônimos, ortografias alternativas e relacionamentos
associativos entre termos que ajuda e/ou facilita aos usuários a encontrar as informações
que necessitam [LOPES, 2004]. Desta forma, busca-se através da aplicação do mesmo,
utilizando-se de listas pré-compiladas de termos importantes para um determinado
contexto, em que cada termo da lista é representado pela ligação (seja por equivalência,
hierarquia e/ou associação) com vários outros, diminuir, em primeira instância, a
quantidade de termos-índices.
É diminuída a quantidade de termos-índices quando o thesaurus é utilizado no
processo de normalização, ou seja, como na técnica de stemming, em que várias palavras
poderiam ser resumidas em apenas um termo (seu radical), o thesaurus assemelha-se a ele,
ao tentar através de vários termos ligados entre si (por exemplo, sinônimos) chegar a um
24
termo representante, tornando-se assim o termo-índice. A ligação entre termos é feita
anteriormente, assim o conhecimento sobre o domínio (contexto) do documento é
primordial para a criação do mesmo. Logo, nas situações em que não existe o
conhecimento do domínio, esta técnica se torna complexa e inviável.
O aumento da abrangência das consultas é caracterizado pelo grande leque de
termos que o thesaurus proporciona, desta forma, um usuário poderá executar várias
consultas, com termos distintos (que estejam ligados), obtendo os mesmos resultados.
Portanto, a aplicação do dicionário de thesaurus exige um conhecimento
minucioso sobre a área em que será utilizado, tornando-se amplamente aplicável onde são
tratadas informações de domínios específicos e amplamente complexo em contextos não
definidos.
2.1.3
Processamento dos Dados
As etapas anteriores são importantes e necessárias na tarefa de Mineração de Textos, mas
a etapa que representa a principal visão de extração de conhecimento é concebida como
processamento de dados, ou seja, nesta etapa poderão ser executados certos processos a
fim de extrair conhecimento de documentos textos, para o uso em situações diversas.
Dentre os processos existentes, destaca-se a sumarização, categorização e clustering. Nas
seções seguintes serão detalhados estes processos.
2.1.3.1
Sumarização
A sumarização é um processo que visa a redução do tamanho dos textos de um
documento, sem a perda dos significados-chave do texto [HABN, 2000], ou seja, trata-se
de um processo que busca a diminuição de um documento texto, transformando-o em um
resumo (ou tópicos índices), mas mantendo o seu objetivo.
O processo de sumarização divide-se basicamente na tarefa de leitura e composição
dos textos. A tarefa de leitura é responsável por identificar a importância dos termos
dentro do texto (através da freqüência), para que em seguida seja executada a tarefa de
composição, que construirá o resumo através da utilização dos termos definidos como
importantes, desta forma cria-se um sumário (ou resumo) do texto mantendo as principais
características do mesmo [ALMEIDA, 2004].
25
Notícia retirada do site IDGNow
A Ericsson divulgou a assinatura de um contrato de serviços gerenciados com a Claro para
integrar, distribuir e hospedar serviços de streaming de vídeo e TV móvel aos assinantes
da operadora. Os serviços ficarão hospedados no centro de operação da Ericsson em São
Paulo, que serve de suporte para toda a América Latina e, conforme o acordo, a empresa
irá agregar, distribuir, gerenciar e liberar conteúdo para todos os serviços móveis de TV e
streaming da Claro, além da operação e manutenção 24 horas por dia. O serviço móvel de
TV e streaming de vídeo da Claro, com a marca Vídeo Agora, oferecem uma ampla gama
de conteúdo de entretenimento, que inclui transmissão ao vivo de TV e rádio AM/FM. Os
usuários inicialmente poderão acessar notícias, músicas, esportes, filmes e previsões do
tempo. Com a solução da Ericsson, a Claro poderá oferecer serviços de conteúdo em
tempo real e sob demanda.
Texto Normal
A Ericsson divulgou a assinatura de um contrato de serviços gerenciados com a Claro para
integrar, distribuir e hospedar serviços de streaming de vídeo e TV móvel aos assinantes
da operadora.
Texto Resumido em 25%
Figura 5 – Processo de Sumarização.
A Figura 5, como exemplo, apresenta um processo de sumarização executado
através da ferramenta de auto resumo do software Microsoft Office Word 2003, em que é
resumido o texto em cerca de 25%, mantendo os principais termos (ou trechos) que
representam o texto.
2.1.3.2
Categorização
A categorização é um processo que visa a identificação de tópicos principais em um
documento e a sua associação a uma ou mais categorias predefinidas [YANG, 1997]. Esse
processo tenta identificar a qual domínio ou categoria um determinado documento texto
pertence.
Na execução do processo de categorização podem-se adotar as seguintes técnicas
[ALMEIDA, 2004]: regras de produção – visa a criação de conjuntos de regras ou
características, que ao serem encontradas em um documento texto, determina que o
mesmo pertence a uma determinada categoria; similaridade de vetores – nesta técnica os
termos que representam as categorias e os documentos textos estão representados como
vetores, em que através da comparação entre os termos (entre categorias e documentos),
determina-se o grau de similaridade entre ambos, que através de uma medida pré-definida
de similaridade, é definido se um documento pertence ou não a uma determinada
categoria; e o modelo bayesiano – que se baseia na teoria de probabilidade e no teorema
26
de Bayes, a fim de encontrar qual a probabilidade de um determinado documento
pertencer a uma determinada categoria.
Documentos
Categorizador
Cat 1
Cat 2
Cat 3
Figura 6 – Processo de Categorização [EBECKEN, 2003].
A Figura 6 ilustra o processo de categorização, em que vários documentos são
categorizados após passar por um categorizador. Tal categorizador tem como finalidade
executar determinadas técnicas de categorização a fim de definir a qual categoria os
documentos textos estariam associados.
Este processo tem a finalidade de categorizar uma gama de documentos, como
forma de definição de qual contexto os mesmos pertencem. Isso facilita, por exemplo, na
execução de uma tarefa em que é necessário definir a qual assunto um determinado e-mail
pertence, em relação aos assuntos (categorias) pré-definidos pelo especialista do domínio.
2.1.3.3
Clustering
Clustering é uma técnica (ou processo) que visa “organizar uma série desorganizada de
objetos em grupos (clusters) de objetos similares” [WIVES, 1999], ou seja, a partir de uma
coleção de documentos que se encontra desorganizada (sem nenhuma ligação por
contexto), esta técnica possibilita agrupar estes documentos, considerando suas
similaridades, em relação ao contexto (ou assunto) dos mesmos.
27
A técnica de clustering pode ser aplicada para agrupar documentos textos ou
palavras. Quando aplicada para agrupar palavras (termos), tem-se um resultado
semelhante a um thesaurus, em que palavras que possuem ligações (ou similares – como
sinônimos e variações morfológicas) entre si são organizadas em clusters. Quando
aplicada em coleções de documentos textos, possui a finalidade de reunir o máximo de
documentos semelhantes em seções ou grupos, possibilitando (e facilitando) a recuperação
de informações pertencentes ao mesmo contexto [EBECKEN, 2003].
Esta técnica é utilizada normalmente em situações em que não há uma
discriminação prévia dos contextos dos documentos, desta forma tenta-se reunir dentre os
diversos documentos, os que tratam do mesmo assunto, sem que haja a influência de um
especialista do domínio. Portanto, esta será a principal técnica a ser utilizada neste
trabalho, pois as informações que serão trabalhadas não possuem um assunto pré-definido
ou conhecido.
Para fortalecer a idéia desta técnica tem-se a chamada Hipótese de Agrupamento,
que diz que os documentos textos semelhantes tendem a permanecer em um mesmo grupo,
pois possuem termos em comum [RIJSBERGEN apud WIVES, 1999]. Desta forma o
processo de clustering baseia-se no estudo dos termos dentro de um texto, em que são
aplicadas etapas já explanadas anteriormente, possibilitando a identificação da
similaridade entre documentos, para que posteriormente sejam agrupados em clusters.
Através da Figura 7 pode ser visualizada a estrutura de funcionamento do
clustering, em que a partir de uma coleção de documentos texto (desorganizados) é
possível, após a aplicação da técnica de clustering, visualizar os documentos já
organizados em clusters ou grupos.
28
Técnica de
Clustering
Cluster 1
Cluster 2
Cluster 3
Figura 7 – Processo de Clustering [EBECKEN, 2003].
Quanto à forma em que os clusters são constituídos, existem dois tipos de
representação de um agrupamento (clustering), que é através do agrupamento por partição
total (flat partition) e o agrupamento hierárquico (hierarchic partition). A partir do
agrupamento por partição total os documentos são distribuídos em clusters distintos, não
havendo interligação direta entre os grupos. Assim, um documento pertencente a um
cluster não possui ligação alguma com outro cluster. Já com a partição hierárquica, é
possível a interligação entre clusters, assim os grupos são identificados de forma
recursiva, possibilitando a criação de hierarquias. Desta forma, tem-se uma representação
no estilo de árvores, em que todos os documentos e clusters estão interligados entre si. As
duas formas podem ser visualizadas na Figura 8.
29
A
A
C
C
A
A
C
B
B
Clustering por Partição Total
5
3
4
1
A
A
2
A
A
B
B
C
C
C
Clustering por Partição Hierárquica
Figura 8 – Formas de Clustering [WIVES, 1999].
Dentre as diversas técnicas de clustering, as mais utilizadas pertencem à classe
graphic-theoretic [WIVES, 1999], que por sua vez enfatiza as seguintes etapas para a
execução desta técnica, que são: a etapa de identificação e seleção de termos-índices; a
etapa de identificação de graus de similaridade; e a etapa de agrupamento.
A etapa de identificação e seleção de termos-índices corresponde à fase de seleção
dos termos mais importantes em um documento texto para preencher a estrutura de índice
do mesmo. Desta forma, nesta etapa, tem-se uma estrutura (normalmente um vetor)
contendo os termos mais relevantes e o seu respectivo valor de importância, para que
possa ser utilizada posteriormente na fase de cálculo de similaridade entre documentos.
Na etapa de identificação de graus de similaridade é efetuado o processo de
comparação entre os documentos da coleção. Neste processo são comparados todos os
termos-índices de um documento com os demais documentos, a fim de se calcular o grau
30
de similaridade, no intuito de criar uma matriz contendo estes valores, para que,
posteriormente, seja efetuado o processo de agrupamento.
Na etapa de agrupamento é feito o processo de clustering propriamente dito, em
que através da matriz de similaridade, busca-se através de um valor pré-definido, inferir
quais documentos são semelhantes entre si.
Coleção de Documentos Textos
A
B
C
D
E
Identificação e Seleção de Termos-Índices
Análise dos Dados:
1 Remoção de Stopwords
2 Stemming
3 Thesaurus
Representação da Informação:
1 Seleção de Termos-Índices
2 Cálculo de Freqüência
3 Vetor de Termos
Identificação de Graus de Similaridade
1 Cálculo de Similaridade entre Documentos
2 Criação da Matriz de Similaridade
Agrupamento
A
B
Cluster 1
C
Cluster 2
D
E
Cluster 3
Figura 9 – Etapas do processo de Clustering.
31
Na Figura 9 podem ser visualizadas todas as etapas que compõem a técnica de
Clustering, que por sua vez foram adotadas neste trabalho. Mais detalhes sobre estas
etapas serão descritos nas seções seguintes.
2.1.3.3.1
Identificação e Seleção de Termos-Índices
Esta etapa tem como premissa básica a criação de uma estrutura de termos-índices para os
documentos da coleção. Tal estrutura possui a finalidade de representar em poucas
palavras um determinado documento texto, possibilitando assim, a comparação de seus
termos entre os demais documentos, a fim de se obter o grau de similaridade entre ambos.
Nesta etapa são utilizados alguns processos descritos nas seções anteriores, que
compõem a tarefa de Mineração de Textos, por isso serão apenas citadas nesta seção.
Conforme apresentada na Figura 9, a etapa de identificação e seleção de termos-índices
conta com dois processos, que é a Análise dos dados e a Recuperação das Informações.
Nesta etapa o processo de Análise dos dados é aplicado, primeiramente, no intuito
de refinar as informações textuais, melhorando consideravelmente o desempenho das
etapas seguintes. Para que haja esta melhoria é necessária ou recomendada a utilização dos
processos de remoção de stopwords, stemming e thesaurus. O processo de remoção de
palavras negativas ou stopwords é de extrema importância e necessário, no intuito de
diminuir a quantidade de termos-índices, eliminando termos que não possuem importância
para a mineração de textos. É importante ressaltar nesta etapa a eliminação de sinais de
pontuação (como “,.;!?”) e de caracteres especiais (como “çãàõ”), pois não possuem
importância nas etapas seguintes. Já os outros processos citados são recomendados para
melhorar este processo de escolha dos termos (mais detalhes nas seções anteriores).
Após executado o processo de análise, têm-se apenas os principais termos do
documento. Neste momento é feito o processo de recuperação dos dados, em que todos os
termos são inseridos em um vetor de dados e sequencialmente é determinado o grau de
importância de cada termo. O grau de importância de um termo é calculado através da
quantidade em que o mesmo aparece no texto. Esse cálculo também é chamado de
freqüência relativa, e possui a finalidade de representar numericamente a freqüência em
que um termo aparece no texto, desta forma tem-se o grau de importância do mesmo em
relação ao documento.
Frel x =
Fabs x
N
(2)
32
A Equação (2) representa a fórmula da freqüência relativa (Frel), em que é
calculada a freqüência de um termo x, através da divisão entre a sua freqüência absoluta
(Fabs) e o número total (N) de termos contidos no documento [WIVES, 1999].
Considerando a Figura 3 (Documento sem stopwords) como exemplo, ao se calcular a Frel
do termo “Informática”, tem-se o seguinte resultado: Fabs = 2; N = 25; então Frel = 2 / 25 =
0,08. Portanto, o grau de importância do termo “Informática” é de 0,08 ou 8 %.
Devido a grande quantidade de termos-índices que um determinado documento
texto possa ter, isso pode se tornar prejudicial na hora do processamento destas
informações, como, por exemplo, no momento de se calcular a similaridade entre
documentos. Desta forma, adota-se a técnica de Truncagem (Truncation), que delimita a
quantidade n máxima de termos que um documento pode ter (n = 20 palavras, por
exemplo). Esta técnica ordena o vetor por ordem decrescente de importância, armazena as
n primeiras palavras e as restantes são descartadas da estrutura de índices [WIVES, 1999].
Outro fator importante que deve ser considerado é a localização dos termos dentro
do texto, ou seja, termos que se encontra em títulos, subtítulos e outras marcações, tendem
a ser mais importantes, por isso são atribuídos valores maiores aos mesmos. Estes valores
podem variar entre 0 a 1 conforme a necessidade do especialista [WIVES, 1999].
Portanto, depois de executado o processo de análise dos dados e o processo de
recuperação de informações, tem-se um vetor de termos-índices com o seu respectivo
valor de importância. Desta forma, dá-se início a fase de identificação dos graus de
similaridade entre termos, que será explanada na seção seguinte.
2.1.3.3.2
Identificação de Graus de Similaridade
Nesta etapa é desenvolvida uma matriz de similaridade, em que são descriminados os
valores de similaridade entre todos os documentos textos da coleção, ou seja, nesta fase
são executadas funções de similaridade a fim de descobrir o quanto um documento é
semelhante aos demais.
Neste trabalho será adotada a fórmula proposta por Salton [1983] chamada de
cosine, em que é baseada na distância Euclidiana (descrita na seção Modelo de Espaço
Vetorial). Esta fórmula é recomendada [WIVES, 1997] quando, ao se calcular a
similaridade entre termos, é necessário levar em conta o grau de importância do mesmo
em relação ao documento.
33
Conforme a Equação (1), para se calcular a similaridade entre documentos, é
necessário ter dois vetores de termos e seus pesos (grau de importância) respectivos.
Portanto, através dos vetores obtidos na seção de identificação de termos-índices e seus
respectivos valores, é possível criar uma matriz contendo os valores de similaridade entre
documentos.
A seguir será apresentado um cálculo de similaridade entre dois documentos, em
que será aplicada a fórmula cosine. Considere a seguinte expressão Documento1:
{(Termo1, Peso1), (Termo2, Peso2), ..., (TermoN, PesoN)} na declaração dos
documentos, termos e pesos.
Documentos:
A:{(Informação, 5), (Encoinfo, 3), (Tocantins, 2)};
B: {(Informação, 3), (Encoinfo, 1), (Tocantins, 1)};
Cálculo:
similaridade( A, B) =
{(5 x3) + (3 x1) + (2 x1)}
(5 + 3 + 2 ) x(3 + 1 + 1 )
2
2
2
2
2
2
=
20
38 x11
=
20
= 0,98
20,4
Portanto, o grau de similaridade entre os documentos A e B é de 0,98 ou 98 %.
Desta forma, este cálculo deve ser executado entre todos os documentos da coleção, tendo
como resultado uma matriz de similaridade da coleção de documentos. Pode ser
visualizada na Tabela 1 uma matriz de similaridade entre documentos.
Tabela 1 – Matriz de similaridade entre documentos.
Doc. A
Doc. B
Doc. C
Doc. D
Doc. A
1.0
0.8
0.3
0.6
Doc. B
0.8
1.0
0.7
0.1
Doc. C
0.3
0.7
1.0
0.8
Doc. D
0.6
0.1
0.8
1.0
A partir da criação da matriz de similaridade dá-se início a fase de agrupamento,
em que será feito o processo de clustering propriamente dito. Na seção seguinte será
detalhado este processo.
34
2.1.3.3.3
Agrupamento
Esta etapa possui a finalidade de, a partir da matriz de similaridade, definir clusters ou
ligações entre documentos semelhantes, ou seja, após a finalização de todos os processos
anteriores, dá-se início a etapa de definição dos clusters através dos graus de similaridade
já calculados. A Figura 10 representa a situação em que a coleção de documentos se
encontra antes e depois do processo de agrupamento.
Portanto, após o processo de
agrupamento os elementos que se encontram ligados são definidos como pertencentes ao
mesmo cluster.
Documentos sem qualquer ligação
A
C
A
B
A
C
A
B
B
Documentos Agrupados
Figura 10 – Processo de Agrupamento [WIVES, 1999].
A forma em que os documentos são agrupados está ligada diretamente ao
algoritmo utilizado nesta fase. Os algoritmos pertencentes à classe graphic-theoretic são:
Cliques, Stars, Connected Components e Strings [KOWALSKI apud WIVES, 1999].
Dentre as principais características predominantes nestes algoritmos estão: a
escolha de um fator mínimo de aceitação, também chamado de threshold, em que ao
comparar este fator ao grau de similaridade contido na matriz, e se este grau for “igual ou
maior” que o fator, os documentos comparados são tidos como similares; permite ou não
que um documento pertença a mais de um cluster.
35
Portanto, segundo Wives [1999], o melhor algoritmo a ser utilizado, no intuito de
obter um tempo de processamento consideravelmente pequeno e com um resultado
satisfatório, é o algoritmo Stars. Desta forma, o algoritmo Stars, após o comparativo com
os demais algoritmos, considerando principalmente a viabilidade computacional, se
destacou entre os outros devido a sua simplicidade, sendo assim o selecionado para este
trabalho.
O algoritmo Stars ou Estrela consiste em selecionar um documento aleatoriamente
(ou definido pelo especialista) e identificar todos os documentos semelhantes a ele,
refazendo este processo até que não haja elementos não alocados [WIVES, 1999].
O algoritmo consiste em dois passos:
1 – Selecionar um documento e, a partir dele, selecionar todos os que satisfazem ao
threshold pré-definido e adicioná-los ao mesmo cluster;
2 – Buscar um documento ainda não alocado. Se existir, o passo 1 é executado
novamente, e se não existir o processo é finalizado.
Esses passos podem ser melhor visualizados através da Figura 11, em que é
escolhido primeiramente o documento A. Depois disso, é feita a comparação entre todos
os documentos restantes, os que são semelhantes são selecionados. No próximo passo é
selecionado o documento B, que não foi selecionado na primeira fase, e feita a
comparação com os demais documentos (aqueles que ainda não foram selecionados) e
selecionado os elementos semelhantes. E, por fim, é selecionado o último elemento e o seu
semelhante.
36
A
A
B
C
A
B
A
C
B
B
A
C
B
B
A
A
A
A
B
C
A
B
A
A
B
C
A
C
B
C
Figura 11 – Funcionamento Algoritmo Stars.
Na literatura pesquisada, este foi o algoritmo que satisfez as necessidades do
trabalho, além de ser considerado o mais eficiente, segundo Wives [1999].
Mesmo considerando que este algoritmo impede a possibilidade de adicionar uma
determinada notícia em um cluster que mais se assemelha a mesma, em situações que
possam ocorrer devido a ser executado apenas uma verificação de similaridade, existindo
assim a possibilidade de que uma notícia seja adicionada em um cluster menos importante
para seu contexto e impedindo a possibilidade de ser encontrado o cluster que mais se
assemelha com a notícia. Mesmo assim, foi adotado este algoritmo devido à viabilidade
computacional, sendo que para se encontrar o melhor cluster para uma notícia seria
necessário um processamento maior, tornando-se inviável a ser executado via Web,
conforme segue a linha de implementação deste trabalho.
Nesta etapa é finalizado o processo de clustering, tendo como resultado uma gama
de documentos separados em grupos que tratam dos mesmos assuntos, ou seja,
semelhantes entre si.
37
3 MATERIAIS E MÉTODOS
Para o desenvolvimento deste trabalho foram utilizados diversos recursos bibliográficos,
de hardware e software, que coligados às orientações permitiram a sua finalização.
3.1 Local e Período
Este trabalho foi desenvolvido durante o segundo semestre de 2005, como requisito parcial
para a avaliação das disciplinas “Trabalho de Conclusão de Curso em Sistemas de
Informação I (TCC I) e Trabalho de Conclusão de Curso em Sistemas de Informação II
(TCC II)”. Os principais locais utilizados para sua elaboração foram: o setor de
desenvolvimento de software da Fundação Universidade do Tocantins (UNITINS) e a
própria residência.
3.2 Materiais
Os principais recursos utilizados, tais como hardware e softwares licenciados, foram
disponibilizados para desenvolvimento pela Fundação Universidade do Tocantins através
do setor de desenvolvimento de software e por recursos pessoais.
3.2.1 Hardwares
™ AMD Athlon XP 2400+ e 512 Mb de RAM;
™ Pentium IV, 3.33 Ghz e 512 Mb de RAM;
™ AMD Septron 2600 e 256 Mb de RAM.
3.2.2 Softwares
™ Microsoft Windows 2000/XP Prof. (http://www.microsoft.com/windows);
™ Microsoft Office 2003 Prof. (http://office.microsoft.com/);
™ Internet Explorer v6.0 (http://www.microsoft.com/);
™ Mozilla Firefox v1.0.7 (http://www.mozilla.org/);
™ Adobe Acrobat Reader 7.0 (http://www.brasil.adobe.com/products/acrobatpro/);
™ Adobe Photoshop CS2 (http://www.brasil.adobe.com/products/photoshop/);
™ Corel DRAW 12 (http://www.corel.com.br/);
™ Macromedia Dreamweaver 8 (http://www.macromedia.com/);
™ Zend Studio Enterprise Edition v5.0.0 (http://www.zend.com/);
38
™ Power Translator Pro v7.0 (http://www.lhsl.com/);
™ Rational Rose 2000 Enterprise Edition (http://www.rational.com);
™ PHP 5.0.5 (http://www.php.net/);
™ PostgreSQL v8.0.2 (http://www.postgresql.org/);
™ EMS PostgreSQL Manager v3 (http://www.sqlmanager.net/).
3.2.3 Fontes Bibliográficas
™ Livros;
™ Trabalhos de Conclusão de Curso;
™ Dissertações de Mestrado e Doutorado;
™ Artigos;
™ Sites diversos.
3.3 Metodologia
Para o desenvolvimento deste trabalho foi necessária, inicialmente, a realização de um
estudo sobre a técnica de Mineração de Textos (Text Mining). Esse estudo foi concretizado
a partir do levantamento teórico sobre os conceitos e as aplicações necessários para a
consecução do trabalho, explanados na Revisão de Literatura.
Após o levantamento teórico, iniciou-se o processo de implementação do trabalho.
Para isso, as tecnologias citadas nas próximas sub-seções foram amplamente estudadas
para que fosse possível realizar a sua efetiva aplicação.
3.3.1 RSS
O RSS é uma especificação para distribuição de conteúdo através da utilização da
linguagem XML [HAMMERSLEY, 2003]. RSS surgiu com o intuito de padronizar a
forma de distribuição de conteúdos estruturados existentes nos mais diferentes sites na
internet. A distribuição do conteúdo estruturado, neste contexto, é representada através do
termo “feed”. Um feed pode ser definido como qualquer informação importante disponível
em um site, como, por exemplo, notícias, artigos, histórias, entre outras informações,
porém, neste trabalho, foram trabalhadas apenas informações referentes a notícias.
A concepção do RSS está ligada à junção das informações contidas em diferentes
feeds RSS em uma só base de dados. Assim, foi possível que as informações fossem
trabalhadas posteriormente no sistema. Desta forma, o RSS foi utilizado como fonte de
39
obtenção de conteúdo e como forma de disponibilização de informações através do
sistema.
3.3.2 PHP
A linguagem de programação PHP (Hypertext Preprocessor) foi utilizada para a
codificação do sistema. Assim, englobou desde a parte de manipulação de documentos
RSS, gerenciamento das informações do banco de dados, até a construção de partes da
interface do sistema.
Foi utilizada a PHP na versão 5 devido ao seu suporte avançado em Orientação a
Objetos, a manipulação e tratamento de erros e a disponibilização de uma interface DOM
para manipulação de documentos XML [SOARES, 2004], além de suportar a utilização de
Expressões Regulares.
Expressões Regulares são expressões ou regras que possibilitam a manipulação e
combinação avançada de strings [CASTAGNETTO, 2001]. Desta forma, utilizando-se de
funções específicas do PHP para manipulação de expressões regulares (como por
exemplo, as funções ereg() e ereg_replace()), possibilitou na etapa de Análise dos
Dados a remoção dos termos negativos (como stopwords, pontuação e etc).
3.3.3 PostgreSQL
Para o armazenamento das informações obtidas dos feeds RSS foi adotado, nesta fase do
trabalho, o Sistema de Gerenciamento de Banco de Dados (SGBD) PostgreSQL. Dentre as
características que motivaram o seu uso, as principais foram: suporte a Controle de
Concorrência multi-sessão; Integridade Referencial entre tabelas; Funções ou Stored
Procedures; Visões ou Views; Gatilhos ou Triggers; Tipos definidos por usuário;
Esquemas ou Schemas; conexões SSL; e licença gratuita [BIAZUS, 2003]. Vale ressaltar
que essas características, em sua maioria, o banco Mysql (adotado no primeiro trabalho)
não dá suporte. Assim, o Mysql foi substituído pelo PostgreSQL nesta fase do trabalho, no
intuito de melhorar o desempenho das consultas, ao empregar a utilização de views, stored
procedures e entre outras funções citadas.
40
4 RESULTADOS E DISCUSSÃO
Neste capítulo serão apresentados os resultados provenientes do desenvolvimento de um
mecanismo para o aperfeiçoamento de uma Central de Notícias. Essa CN possui como
objetivo a obtenção de conteúdos provenientes de feeds RSS de diferentes fontes (sites)
para o armazenamento em uma base de dados central e possibilitar, a partir disso, uma
interface de acesso a essas informações, permitindo ao usuário a execução de consultas
definidas a partir de determinados contextos. Os mecanismos desenvolvidos possuem a
finalidade de melhorar a qualidade das consultas ao disponibilizar, através da técnica de
Mineração de Textos, a possibilidade de agrupar notícias que tratam do mesmo assunto.
Para que o desenvolvimento desse mecanismo tivesse êxito foi necessário o
entendimento das etapas que compõem a técnica de Mineração de Textos, para
posteriormente aplicar os conhecimentos obtidos na elaboração deste trabalho.
Nas seções seguintes serão explanados os passos utilizados para o desenvolvimento
do processo de Clustering aplicado ao agrupamento de notícias da CN.
4.1 Estrutura da Aplicação
O mecanismo desenvolvido pode ser compreendido a partir de duas etapas, que são: a
leitura das notícias dos feeds RSS e a aplicação do processo de Clustering. A primeira
etapa já fazia parte do primeiro trabalho, mas foi readaptada para dar suporte às novas
funcionalidades. Assim, as informações são inseridas em uma base de dados temporária,
não disponível para o usuário enquanto todos os passos posteriores não tiverem sido
executados. A segunda etapa refere-se à técnica de Mineração de Textos e, como tal, tem
a finalidade de organizar ou agrupar notícias que tratam do mesmo assunto. Assim, nessa
etapa serão executados os processos referentes ao Clustering, que dentre eles estão a
Análise dos Dados, Recuperação das Informações, Cálculo de Similaridade e
Agrupamento. Através da Figura 12 pode ser visualizada como a estrutura da aplicação é
organizada.
41
Feeds RSS pré-definidos
Categoria A
Feed
RSS
01
Categoria B
Feed
RSS
02
Feed
RSS
03
Feed
RSS
n
LEITURA dos Feeds RSS
PASSO 01:
Leitura dos Feeds
para Obtenção de
Conteúdo
ARMAZENAMENTO
DO
CONTEÚDO
PASSO 02:
Armazenamento
dos Conteúdos
obtidos na Leitura
BASE DE DADOS
TEMPORÁRIA
PASSO 03:
PROCESSOS:
PROCESSO
DE
CLUSTERING
1 – Análise dos Dados;
2 – Recuperação Informação;
3 – Cálculo de Similaridade;
4 – Agrupamento.
Cluster 1
Cluster 2
Cluster 3
BASE DE DADOS
CENTRAL
PASSO 04:
Liberação dos
Clusters para
Consulta
Figura 12 – Estrutura Aplicação.
A estrutura apresentada na Figura 12 é dividida em quatro passos, que descrevem
as seguintes funcionalidades: o passo 01 (um) representa o processo de obtenção de
42
conteúdo, também chamada de fase leitura de informações, que é a primeira fase da CN.
Nesta fase são lidos todos os feeds RSS pré-cadastrados no banco, dando inicio ao passo
02 (dois), que corresponde ao armazenamento dessas informações em uma base
temporária. Nesta fase as informações ainda não estão disponíveis para o usuário, sendo
liberadas somente após o processo de Clustering concluído. O passo 03 (três) corresponde
à execução dos processos que compõem a etapa de agrupamento (Clustering), que terá
como resultado a criação de clusters de notícias, que serão liberados para serem
consultados pelo usuário no passo 04 (quatro).
As fases que compõem o processo de Clustering, assim como as dificuldades
encontradas e as soluções adotadas em cada uma, serão explanadas nas seções seguintes.
4.2 Análise dos Dados
O processo de Análise dos Dados, conforme descrito na revisão de literatura deste
trabalho, busca melhorar a performance e a qualidade do processamento das informações,
ao remover palavras irrelevantes, identificar variações morfológicas de cada termo e
identificar semelhanças de significados entre palavras.
Neste trabalho foi adotado o processo de remoção de stopwords. O Stemming e o
Thesaurus não foram adotados nesta fase do trabalho porque as informações trabalhadas,
que neste caso são resumo de notícias, não possuem uma quantidade significativa de
termos (muitas das notícias possuem apenas título) ao ponto de justificar a adoção de
técnicas complexas, cujo resultado final não teria muito relevância para o contexto. Desta
forma, levando em conta a pequena quantidade de termos encontrados em uma notícia e
verificando que o stemming em certo momento tende a generalizar determinados termos
(ao levar o termo ao seu radical, poderá alterar o sentido do termo) [MARTINS, 2003],
chegou-se a conclusão da não utilização desta técnica neste trabalho, deixando para
trabalhos futuros, os estudos sobre a viabilidade de se adotar certos algoritmos da técnica
de stemming. Outro ponto importante, conforme mencionado na literatura deste trabalho, a
utilização da técnica de thesaurus em situações em que não existe o conhecimento do
domínio, que neste caso assemelha-se com as informações trabalhadas neste trabalho, a
mesma se torna complexa e inviável.
Após o processo de leitura e armazenamento das notícias, dá-se inicio ao processo
de Clustering, e sua primeira tarefa é a de diminuir a dimensão de termos, mantendo
43
apenas termos que represente uma determinada notícia. Para isso, foram eliminados todos
os termos insignificantes de cada notícia. Esse processo seguiu os seguintes passos:
a) Organizar String: neste passo foram removidas as quebras de linhas contidas
nas notícias, assim como o excesso de espaços ou caracteres nulos, além de
converter todos os termos para minúsculo.
b) Remover tags HTML: as notícias advindas de feeds RSS podem ou não
possuir em sua estrutura tags HTML (Ex: <br />, <p></p> e etc). Neste
contexto é desnecessário mantê-las, por isso, foram removidas.
c) Remover Pontuação: neste passo foi removida a maioria das pontuações,
como, por exemplo, vírgulas, pontos, interrogações, exclamações, entre outras.
d) Remover Símbolos: neste passo foram removidos os caracteres especiais ou
símbolos (Ex: $*+=\&@#%).
e) Remover Acentuação: considerando a existência de erros ortográficos em
relação à acentuação, como, por exemplo, a palavra certa “Informações” escrita
da forma errada como “Informacoes” sem acentuação, gerou transtornos no
momento de se agrupar termos semelhantes, já que havia a necessidade de
compará-los e, para isso, a estrutura deveria ser idêntica. Assim, a melhor
solução foi substituir todas as acentuações e caracteres especiais por suas letras
correspondentes sem acentuação (Ex: “ã” por “a”, “ç” por “c”).
f)
Remover Números: por se tratar de notícias, muitas das informações
continham datas (Ex: 23/11/2005), entre outros valores numéricos, que não
representam de forma significativa alguma característica importante dentro do
texto para ser considerada como termo-índice. Desta forma, todos os números
foram removidos.
g) Remover Stopwords: neste passo foram removidos todos os termos negativos
dentro de um texto, ou seja, em sua maioria termos como pronomes, artigos,
preposições e interjeições (Ex: a, de, seu, lhe, outros e etc). As listas de
stopwords ou stoplist utilizadas neste trabalho foram retiradas do “Eurekha”,
produzido por Wives [WIVES, 2005].
Para a remoção dos termos negativos foram utilizadas funções do PHP que
suportam expressões regulares. Assim, a notícia, ainda no formato de string, foi submetida
a algumas expressões que representam os passos descritos anteriormente, no intuito de
44
manter apenas os termos relevantes. Este processo de remoção pode ser melhor
visualizado através da Figura 13.
$str = “Ronaldinho brilha, e Barça surpreende o Real em Madrid (19/11/05-18h46)”;
Título original da notícia
1. $str = strtolower($str);
2. $str = eregi_replace("[\.,;:\?!]", "", $str);
3. $str = eregi_replace("[ç]", "c", $str);
4. $str = eregi_replace('[-()/]', "", $str);
5. $str = eregi_replace("[0-9]", "", $str);
6. $str = eregi_replace($expressao_stoplist, " ", $str);
Código de Remoção Utilizando Expressão Regular
$str == “ronaldinho brilha barca surpreende real madrid”;
Título após remoção de termos negativos
Figura 13 – Exemplificação da Remoção de Stopwords utilizando Exp. Regulares.
Conforme apresentado na Figura 13, no código de remoção, a linha 1 converte toda
a string para minúsculo, em seguida na linha 2 e nas 4 a 6 são removidos todas as
pontuações, alguns símbolos e todos os números, respectivamente. Na linha 3 ocorre a
substituição de termos, para evitar palavras com cedilhas e acentuação. Na linha 6 são
removidas as stopwords. Tal expressão é montada dinamicamente através de uma consulta
na base de dados, que retorna todas as stopwords cadastradas e, a partir disso, é executada
a expressão e todas as stopwords são removidas.
Portanto, nessa etapa do processo de Clustering foram removidos todos os termos
indesejados e mantidos apenas aqueles que possam ser utilizados como termos-índices,
que posteriormente foram inseridos na base de dados para serem utilizados na próxima
etapa, que é a de Recuperação das Informações.
45
4.3 Representação das Informações
Após o processo de Análise dos Dados restaram para cada notícia apenas os termos que
serão utilizados como termos-índices. Este processo tem a finalidade de selecionar os
termos que irão representar cada notícia, juntamente com o seu grau de importância e,
posteriormente, utilizá-los para calcular a similaridade entre cada notícia, que será descrita
na próxima seção.
Notícia após processo de Análise
Título: opensolaris sistema arquivos
Descrição: sun torna publica versao opensolaris suporte zfs novo sistema arquivos sun pagina
opensolaris demonstracao flash capacidades zfs tambem pode ser encontrada apresentacao zfs
$v[0] = “opensolaris”;
$v[1] = “sistema”;
$v[2] = “arquivos”;
$v[3] = “sun”;
$v[4] = “opensolaris”;
$v[5] = “zfs”;
$v[6] = “sun”;
$v[7] = “opensolaris”;
$v[8] = “zfs”;
$v[9] = “zfs”;
$v[10] = “flash”;
...
$v[n] = termoN;
Passo 1)
- Vetor de Termos-Índices.
(Neste caso, são apresentados apenas os
termos que serão utilizados para a
exemplificação)
Passo 2)
- Cálculo de Freqüência Absoluta
$tindice[0][0]
$tindice[0][1]
$tindice[1][0]
$tindice[1][1]
$tindice[2][0]
$tindice[2][1]
$tindice[3][0]
$tindice[3][1]
$tindice[4][0]
$tindice[4][1]
$tindice[5][0]
$tindice[5][1]
...
$tindice[n][0]
$tindice[n][1]
=
=
=
=
=
=
=
=
=
=
=
=
“opensolaris”;
0,90;
“sistema”;
0,90;
“arquivos”;
0,90;
“zfs”;
0,11;
“sun”;
0,07;
“flash”;
0,03;
F(zfs) = 3 / 26;
F(zfs) = 0,11;
...
$tindice[0][0] = “zfs”;
$tindice[0][1] = 0,11;
...
Passo 3)
- Vetor de Termos-Índices e Valor de
Importância;
- Ordenado por Ordem decrescente de
Importância;
- “Truncagem” do Vetor;
= termoN;
= valorN;
Passo 4)
- Inserir Termos-Índices na Banco
BANCO DE
DADOS
Figura 14 – Exemplificação da Representação das Informações.
46
A Figura 14 ilustra os passos que compõem o processo de Representação das
Informações, que podem ser compreendidos da seguinte forma: no passo 1, o título e a
descrição das notícias são transformados em vetores de termos; entre os passos 1 e 2 é
feita a contagem da freqüência (absoluta), para servir como parâmetro no momento de
calcular a freqüência relativa. No passo 2 é calculada a freqüência relativa de cada termo.
O valor resultante representa o grau de importância de cada termo dentro da notícia, que
afetará significativamente no processo de Cálculo de Similaridade (próxima seção). Após
calculada a freqüência relativa é montado um vetor resultante contento os termos e os seus
respectivos graus de importância e, no passo 3, este vetor é ordenado de forma decrescente
por grau de importância, ou seja, os termos considerados mais importantes estarão nas
primeiras posições, desta forma é executado o processo de “truncagem”, em que são
mantidos apenas os 20 (este valor pode variar) primeiros termos e o resto é descartado. O
passo 4 corresponde ao armazenamento dos termos resultantes dos passos anteriores, desta
forma, para cada notícia armazenada no banco de dados central existirão cerca de 20
termos que a represente.
Portanto, neste processo são escolhidos e armazenados os termos-índices
(juntamente com seu grau de importância), que irão representar ou identificar cada notícia
da CN. Após o término desta fase, dá-se início ao processo de cálculo de similaridade, os
termos selecionados nesta fase serão a base para tal processo.
4.4 Cálculo de Similaridade
Nessa fase é construída a matriz de similaridade, em que é calculado o valor de
similaridade entre as notícias. A partir deste valor será possível a criação de aglomerados
(clusters) de notícias. A Figura 15 ilustra o processo adotado para a execução do cálculo
de similaridade entre as notícias da CN.
47
BANCO DE
DADOS
Notícia 1
Notícia 2
Termos:
[A]
[B]
[C]
[D]
[E]
Termos:
[B]
[C]
[F]
[H]
Passo 1)
- Escolha de duas notícias para
serem comparadas;
- É selecionada a notícia de
maior quantidade de termos para
ser o pivô da comparação;
- É realizada a comparação de
cada termo da notícia pivô com a
outra notícia;
- Caso algum termo da notícia
pivô não exista na outra notícia,
o valor correspondente ao peso
da outra notícia receberá zero.
Notícia 1 : {(A, 0.40), (B, 0.20), (C, 0.15), (D, 0.08), (E, 0.03)};
Notícia 2 : {(A, 0), (B, 0.50), (C, 0.25), (D, 0), (E, 0)};
Passo 2)
- Preparação dos dados para o Cálculo;
Passo 3)
- É aplicada a fórmula cosine
e retornado o valor de
similaridade entre as notícias.
Notícia 1
Notícia 2
0.50 (50%)
Notícia 3
Passo 4)
- Criação da Matriz de
Similaridade entre
notícias.
0.25 (25%)
Figura 15 – Exemplificação do Cálculo de Similaridade.
Conforme apresentado na Figura 15, o processo de cálculo de similaridade pode
ser compreendido em quatro passos, que são: no passo 1 são escolhidos duas notícias para
serem comparadas – levando em conta que este processo é executado entre todas as
48
notícias da base de dados temporária, ou seja, cada notícia será comparada com todas as
demais, desta forma se existe n notícias, será criada uma matriz de similaridade do tipo
nxn. Após a escolha das duas notícias, é selecionada a notícia que possui mais termos
(mesmo com a truncagem dos termos, pode acontecer que notícias possuem menos que 20
termos, como aquelas que só possuem título) para ser utilizada como o pivô da
comparação, em que os termos pertencentes a ela serão comparados com os termos da
outra notícia – esta escolha de notícia pivô é necessária para delimitar a quantidade de
termos e seu grau de importância, que será utilizado na hora de efetuar o cálculo.
No momento da comparação, os termos da notícia pivô que não existirem na outra
notícia, receberão o valor de importância 0 (zero) – este valor advém da multiplicação do
valor de importância do termo da notícia pivô (que neste caso é 1) com o valor da outra
notícia (que é zero); no passo 2 são organizados os termos e seus respectivos graus de
importância para serem utilizados no próximo passo; através do passo 3 é calculado o grau
de similaridade ao se aplicar a fórmula cosine (detalhada na seção de revisão de literatura
desse trabalho) juntamente com os valores vindos dos passos anteriores. O valor resultante
sempre estará entre 0 (zero) e 1 (um). Assim, o valor 0 representará que uma notícia é
totalmente diferente da outra e o valor 1 representará que uma notícia é totalmente similar.
Os valores que estiverem no intervalo dos dois representará o grau de similaridade entre as
notícias. No passo 4 é representada a matriz de similaridade entre as notícias. Assim, ao
finalizar o processo do cálculo de similaridade, as informações são armazenadas no banco
de dados para serem utilizadas na próxima fase.
Desta forma, através do processo do cálculo de similaridade é possível inferir o
quanto uma notícia é similar a outra, logo a coleção de notícias já estará apta a passar para
a etapa de agrupamento. Nessa etapa será executado o processo de clustering propriamente
dito.
4.5 Agrupamento
Este é o último processo da técnica de clustering, em que são criados os clusters de
notícias a partir da aplicação do algoritmo adotado sobre a matriz de similaridade. Através
da Figura 16 pode ser compreendido todo o processo de execução do algoritmo de
agrupamento.
49
A
A
B
C
A
B
A
C
B
B
A
C
B
B
A
A
A
A
B
C
A
B
A
A
B
C
A
C
B
C
B
A
A
A
A
B
B
C
C
Legenda:
- Processo é executado sempre no inicio e no término da
execução do algoritmo;
- Seleciona-se uma notícia que ainda não foi adicionada
a um cluster (seleção feita de forma aleatória);
- Esta será a notícia pai do cluster e irá representar todas
as ligações do cluster.
- Processo de comparação entre a notícia pai e com as notícias
que ainda não foram selecionadas;
- Se satisfaz o valor pré-definido do threshold (valor adotado
0.6) então a notícia é mantida como integrante do cluster, senão
é descartada (deste cluster);
Figura 16 – Exemplificação do Agrupamento (Clustering).
50
Antes de discorrer sobre a seqüência do processo, é importante ressaltar que, no
momento em que foi criado a matriz de similaridade entre as notícias, todas as mesmas
foram ligadas entre si, através do valor de similaridade. Então, nesse momento, é possível
afirmar que existe apenas um cluster e que todas as notícias da base temporária pertencem
a ele.
Conforme a exemplificação da Figura 16, o processo de agrupamento é realizado
através da aplicação de um algoritmo, em que as ligações que não satisfazerem o threshold
são removidas, mantendo-se apenas as ligações entre notícias que são realmente similares.
Desta forma, o resultado é a criação de vários grupos. O processo inicia-se a partir da
seleção das notícias que se encontram na base temporária. Nesse primeiro momento, é
selecionada uma notícia aleatoriamente para ser a notícia pai do primeiro cluster, que
posteriormente é comparado o grau de similaridade (dela com as outras notícias) com o
valor do threshold pré-definido, se o grau for maior ou igual ao valor do threshold, este
registro é mantido, caso contrário, ele é removido da base. Após o término do processo, a
etapa é executada novamente, utilizando-se as notícias que restaram, até que não haja mais
notícias que ainda não foram comparadas.
Após o término do processo de agrupamento, foi criado uma gama de grupos ou
clusters, contendo apenas notícias similares dentro de cada grupo. Ressaltando que após o
processo de clustering, as notícias ficaram alocadas em grupos disjuntos, ou seja, uma
notícia pertencente a um grupo não poderá estar ligada a outro cluster, desta forma tem-se
grupos limitados de notícias que tratam do mesmo assunto.
A partir da clusterização das notícias, foi possível verificar uma melhora
significativa na qualidade do serviço prestado pela CN, no que se diz respeito à agilidade
na busca de notícias sobre determinados assuntos. Isso possibilitou uma maior abrangência
das consultas, pois, ao incluir a mesma a possibilidade de se agrupar possíveis notícias que
satisfazem à condição da busca, foi possível retornar notícias pertencentes aos clusters das
notícias retornadas em primeira instância. Os resultados obtidos nessas consultas serão
descritos na próxima seção, em que serão apresentadas as telas de interação com o usuário
e seus resultados.
4.6 Consultas
Após o término do processo de clustering sobre as notícias da base temporária, ou seja, ao
finalizar a etapa de criação de clusters de notícias, as mesmas já estão aptas a serem
51
visualizadas e consultadas pelos usuários, portanto, neste momento as notícias são
liberadas para visualização.
A interface disponibilizada (derivada do primeiro trabalho) para visualização dos
clusters de notícias é o principal meio de acesso a estas informações. Mas antes de
detalhar como os clusters são visualizados, vale a pena ressaltar como as notícias eram
consultadas no primeiro trabalho, para que haja, a partir disso, uma noção do que foi
modificado.
No primeiro trabalho, que resultou a criação da Central de Notícias, as consultas
podiam ser disparadas pelo usuário (através de consulta por palavra-chave) ou sugeridas
pela CN (através da tela principal, sem ação de consulta pelo usuário), em que a ordenação
das mesmas estava ligada às interações dos usuários com a CN, ou seja, as categorias e as
notícias que fossem mais acessadas eram tidas como importantes e conseqüentemente
eram mostradas primeiramente. Desta forma, após o processo de leitura, as notícias já
estavam disponíveis para o usuário, podendo, assim, executar consultas por palavras-chave
ou por acesso direto as categorias de notícias. O potencial das consultas estava na forma
de ordenação das notícias, em que era considerada a interação do usuário com a CN, pois
era possível, através disso, visualizar apenas notícias pertencentes ao seu contexto, ou seja,
visualizar notícias que pertencem ao contexto que ele mais acessa. Mais detalhes sobre as
consultas em [PASSARIN, 2005].
Nesse trabalho, manteve-se algumas das funcionalidades do primeiro, sendo
agregado o processo de Clustering, da técnica de Mineração de Textos. Tal processo
permitiu, além das vantagens mantidas do primeiro trabalho, a visualização de notícias
agregadas por similaridade. Isso possibilitou a cada notícia acessada pelo usuário, a
possibilidade de navegação por notícias similares.
A interface desenvolvida permite o acesso e a visualização dos clusters de notícias.
Mas é interessante ressaltar as vantagens advindas da utilização destes clusters, podendo
citar um exemplo, através da Figura 17, de como foi reorganizada a forma de visualização
das notícias da tela principal da CN.
52
Figura 17 – Tela de Principal da CN.
A tela principal da CN, como ilustrada na Figura 17, mostra uma quantidade
limitada de notícias (dez) da última leitura efetuada, no entanto, é possível acessar as
demais notícias através de um mecanismo de paginação. Mas, o diferencial em relação ao
primeiro trabalho, é que neste, as notícias que estão na tela principal são as consideradas
notícias pais, ou seja, a notícia usada como fator de comparação com as demais notícias no
cluster. Portanto, tem-se na tela principal da CN as principais notícias, ordenadas de forma
decrescente de tamanho do cluster (quantidade de notícias em um cluster). Isso possibilita
inferir que, se várias fontes disponibilizam notícias que tratam do mesmo assunto, pode-se
dizer que este assunto tem uma forte probabilidade de ser mais relevante que os outros em
um dado tempo (num sentido global). Portanto, quanto maior for a quantidade de notícias
dentro de um cluster, maior é o seu grau de importância. Essa característica melhora a
disposição das notícias, possibilitando o aperfeiçoamento da interface com o usuário. Tal
53
forma de ordenação também é mantida no momento em que um usuário executa uma
consulta por palavra-chave ou quando acessa diretamente uma das categorias de notícia.
É importante ressaltar também a forma como foi tratada uma consulta por palavrachave. Para esse tipo de consulta foram realizadas as seguintes alterações:
ƒ
As palavras-chave também passaram pelo processo de Análise dos Dados. Com
isso, foram removidas as palavras negativas. Tendo apenas os termos-índices da
busca, a consulta que era executada nos campos título e descrição, passou a ser
executada sobre os termos já tratados na fase de identificação de termos-índices.
Desta forma são retornados apenas os registros de notícias que satisfazem à
condição, sobre os termos-índices das notícias.
ƒ
A forma de ordenação dos resultados, que antes era realizada de forma decrescente
da quantidade de acessos em uma notícia, ou seja, as notícias mais visitadas eram
mostradas nas primeiras posições, passou a ter relação ao tamanho dos clusters.
Assim, os clusters com mais notícias são os primeiros a serem apresentados.
A forma de acessar as notícias de um cluster está disponível ao usuário no
momento em que ele acessa uma notícia e visualiza as notícias semelhantes. A forma
disponibilizada para acessar uma notícia está relacionada ao link disponível em cada
notícia, denominado “Notícias Semelhantes (quantidade de notícias semelhantes)”,
conforme ilustrado na Figura 17. A partir do acesso a esse link é aberta uma nova tela que
contém as informações sobre a notícia e as notícias pertencentes ao seu cluster. Essa tela
pode ser visualizada na Figura 18.
54
Notícia Pai
Notícias
Semelhantes
Figura 18 – Tela de Notícias Semelhantes da CN.
A partir da tela ilustrada na Figura 18 é possível a visualização de todas as notícias
pertencentes a um cluster. Nela são mostradas informações da notícia, como título,
descrição, a fonte da notícia, a data que foi cadastrada e a quantidade de acessos. Logo
abaixo são mostradas as notícias similares. Tais notícias são apresentadas ao se executar
uma consulta na base de dados central. Essa consulta tem como retorno todas as notícias
pertencentes ao cluster em que a notícia aberta está incluída.
Ao se aplicar a técnica para a criação de aglomerados de notícias foi possível a
concretização da idéia principal do trabalho, que era a de aperfeiçoar as consultas e/ou
resultados. Isso possibilitou ao usuário uma navegação mais dinâmica e uma localização
de informações mais eficiente.
4.7 Interface de Gerenciamento
Essa seção irá apresentar as telas construídas para executar os processos descritos nas
seções anteriores, ou seja, todo o processo de Leitura e Clusterização foi executado através
de uma área de gerenciamento (ou administração) dos processos executados em cada
etapa, podendo ser executados em qualquer momento e de qualquer lugar.
55
Conforme a Figura 19 pode ser visualizada a principal tela de acesso aos processos
desempenhados pela CN, em que através de uma área principal (menu) pode-se dar início
a todas as fases adotadas para obtenção, tratamento e disponibilização de notícias.
Figura 19 – Tela de Gerenciamento da CN.
Conforme descrito nas seções anteriores, cada etapa que compõe o processo de
Clustering é executada individualmente e de forma seqüencial. Esta seqüência segue a
seguinte ordem: Leitura dos Feeds RSS, Análise dos Dados, Recuperação das
Informações, Cálculo de Similaridade, Agrupamento e Liberação das notícias para o
usuário.
Na etapa de obtenção de conteúdo através dos feeds RSS é criado um processo de
leitura, que representa a definição da base de dados temporária, assim, enquanto todas as
notícias obtidas deste processo não forem totalmente tratadas, as mesmas estarão inaptas a
serem visualizadas pelo usuário, ou seja, ficarão temporariamente em segundo plano,
aguardando liberação. Este processo de leitura será utilizado para as demais fases, em que
a partir da mesma, dá-se início a cada etapa individualmente. Esse processo de obtenção
de conteúdo pode ser visualizado na Figura 20, em que é feita a leitura de cada feed RSS
de forma seqüencial.
56
Figura 20 – Tela de Leitura de Feeds RSS.
A partir do processo de Leitura, dá-se início a tarefa de Clustering. Na primeira
etapa é executada a Análise dos Dados. Conforme é apresentado na Figura 21, para iniciar
a Análise dos Dados, é selecionada a leitura desejada e executado o processo. Desta
forma, todas as notícias pertencentes à leitura em questão serão analisadas, assim, serão
removidas todas as palavras negativas do texto, mantendo apenas os termos importantes.
Essa maneira de selecionar uma leitura e executar um processo sobre as notícias
pertencentes a ela, é mantida também nas fases de Recuperação das Informações, Cálculo
de Similaridade, Agrupamento e Liberação, sendo as telas semelhantes a da Figura 21.
Figura 21 – Tela de Análise dos Dados.
Portanto, a partir destas telas de gerenciamento é possível executar os processos
que compõem a obtenção de conteúdo e de pós-tratamento dos mesmos, que representa o
processo de Clustering. Na próxima seção serão mostrados os resultados obtidos, assim
como algumas limitações e problemas ocasionados no decorrer do desenvolvimento e as
soluções tomadas para sanar essas divergências.
57
5 CONCLUSÕES
O trabalho Central de Notícias [PASSARIN, 2005] possui um repositório com uma vasta
quantidade de informações que se mantém atualizada diariamente. Mas, essa estrutura não
foi explorada no primeiro trabalho, deixando para novas pesquisas a responsabilidade de
trabalhar especificamente com o conteúdo destas informações. A partir disso, deu-se início
a elaboração desse trabalho. A técnica de Mineração de Textos, pertencente à área de
Inteligência Artificial, foi escolhida para extrair conhecimentos advindos das notícias
armazenadas.
Entre as diferentes tarefas de Mineração de Textos, a que foi mais bem aceita no
domínio deste trabalho, foi o processo de Clustering, que possibilitou a criação de grupos
de notícias que tratam do mesmo assunto. Isso permitiu à CN sugerir ao usuário, através
de uma notícia inicial, novas notícias que abordam o mesmo assunto.
No decorrer do desenvolvimento deste trabalho surgiram algumas problemáticas
decorrentes, principalmente, da grande quantidade de informações contida na CN, de
acordo com o número de notícias. Agrega-se, a isso, o fato de tratar de uma aplicação web,
em que os procedimentos são executados em tempo real, o que torna certas etapas do
processo de clustering trabalhosas e inviáveis.
Uma decisão tomada para suprir esta problemática foi a de executar o processo de
clustering apenas uma vez, após a leitura das informações, ou seja, o processo de
clustering é pré-executado antes de liberar as notícias, e os clusters criados são mantidos
em banco de dados. Mas o ideal seria que a aplicação do Clustering fosse realizada em
tempo real e que, através de uma consulta executada pelo usuário, fosse feito o processo
de agrupamento e as notícias similares fossem retornadas como resultado. No entanto, essa
idéia foi descartada devido ao grande processamento que iria resultar cada consulta.
A problemática da quantidade excessiva de dados resultou na eliminação de alguns
feeds RSS, como, por exemplo, os feeds da língua inglesa e os que tiveram pouco acesso
no primeiro trabalho. Essa medida visou diminuir a quantidade de informações,
trabalhando-se apenas com as notícias pertencentes aos contextos mais acessados na CN
(ou seja, as notícias mais importantes para os usuários que acessam o sistema). Isso
melhorou consideravelmente o processamento e tornou possível a execução de certos
processos via web. Como, por exemplo, os processos relacionados ao cálculo de
similaridade, que exige de um processamento consideravelmente grande. Nesse processo,
58
cada notícia é comparada com todas as demais e, ao ser executada tal tarefa, o tempo de
processamento da página sempre extrapolava o tempo limite (padrão da web, que é de 30
segundos). Como medida imediata para minimizar este tempo de processamento, fez-se
necessária a eliminação de feeds RSS não tão importantes, mantendo apenas as possíveis
notícias condizentes com o contexto dos leitores.
Um outro ponto importante está relacionado aos resultados obtidos através da
aplicação da técnica de clustering. Nesses resultados foi detectada a existência de notícias
em clusters que, aparentemente, não tratam do mesmo assunto, apenas possuem palavras
em comum. Mas esse tipo de divergência já era esperado, pois os relatos sobre a utilização
dessa técnica já demonstram que um pequeno percentual de erro pode vir a ocorrer.
Uma explicação para a existência deste tipo de divergência está na forma em que
os textos das notícias foram tratados, ou seja, como citado na literatura deste trabalho,
existem dois tipos de abordagens de dados, que é a Análise Semântica e a Análise
Estatística. A semântica baseia-se nas funcionalidades dos termos nos textos e a estatística
na freqüência em que os termos aparecem no texto. E por ter utilizado a análise estatística
neste trabalho, o sentido dos termos, a localização dos termos em uma oração e as suas
corretas funções foram descartadas. Desta forma, se um determinado termo em um texto
de uma notícia possui certo significado e em outro texto outro significado, essa diferença
não é considerada, o que resulta na existência de notícias que possuem os mesmos termos,
mas que tratam de assunto totalmente diferentes.
Embora tenham ocorrido algumas limitações impostas pela quantidade de
informações trabalhadas e pelo grande processamento exigido na execução do processo de
clusterização, os resultados propostos e esperados foram alcançados. Como trabalhos
futuros, pode ser proposta uma melhoria dos algoritmos utilizados, a possibilidade de se
adotar a análise semântica dos dados e a implementação de algoritmos de stemming e
thesaurus condizentes com o domínio do trabalho.
59
6 REFERÊNCIAS BIBLIOGRÁFICAS
[ALMEIDA, 2004] ALMEIDA, Leandro Maciel. Categorização de Mensagens de
Texto para Ambientes de Aprendizado Colaborativo. Trabalho de Conclusão de
Curso (Curso Sistemas de Informação) CEULP/ULBRA, Tocantins, 2004.
[BIAZUS, 2003] BIAZUS, Diogo de Oliveira. PostgreSQL. 2003. Disponível em:
<http://www.postgresql.org.br/pmwiki.php?n=Main.PostgreSQL>. Acesso em: 22
de novembro de 2005.
[CASTAGNETTO, 2001] CASTAGNETTO, Jesus; RAWAT, Harish; SCHUMANN,
Sascha; SCOLLO, Chris; VELIATH, Deepak. Profissional PHP Programando.
São Paulo: Makron, 2001.
[CORDEIRO, 2005] CORDEIRO, Arildo Dirceu. Gerador inteligente de sistemas
com auto-aprendizagem para gestão de informações e conhecimento. Tese de
Doutorado (Universidade Federal de Santa Catarina), Santa Catarina, 2005.
[EBECKEN, 2003] EBECKEN, Nelson Francisco Favilha. LOPES, Maria Célia
Santos. COSTA, Myrian Christina de Aragão. Mineração de Textos. In:
REZENDE, S.O. Sistemas Inteligentes: Fundamentos e Aplicações. Manole:
São Paulo, 2003.
[HABN, 2000] HABN, U.; MANI, I. The challenges of automatic sumarization.
IEEE Computer, 2000.
[HAMMERSLEY, 2003] HAMMERSLEY, Ben. Content Syndication with RSS.
Sebastopol: O’Reilly, 2003.
[LOPES, 2004] LOPES, Maria Célia Santos. Mineração de Dados Textuais
Utilizando Técnicas de Clustering para o Idioma Português. Tese de Doutorado
(Universidade Federal do Rio de Janeiro, COPPE), Rio de Janeiro, 2004.
[MARTINS, 2003] MARTINS, Claudia Aparecida. Uma abordagem para préprocessamento de dados textuais em algoritmos de aprendizado. Tese de
Doutorado (ICMC-USP), São Paulo, 2003.
[PASSARIN, 2005] PASSARIN, Darley. RSS no desenvolvimento de uma Central
de Notícias. Prática de Sistemas de Informação I. CEULP/ULBRA, Tocantins,
2005.
[SALTON, 1983] SALTON, Gerard; MACGILL, Michael J. Introdution to Modern
Information Retrieval. New York: McGRAW-Hill, 1983.
60
[SALTON, 1987] SALTON, Gerard; BUCKEY, Chris. Term weighting opproaches
in automatic text retrieval. Ithaca, New York: Department of computer science,
Cornell University, 1987.
[SANCHES, 2003] SANCHES, Marcelo Kaminski. Aprendizado de máquina semisupervisionado: proposta de um algoritmo para rotular exemplos a partir de
poucos exemplos rotulados. Dissertação de Mestrado em Ciência da Computação
e Matemática Computacional (USP), São Paulo, 2003.
[SOARES, 2004] SOARES, Walace. PHP5: Conceitos, Programação e Integração
com Banco de Dados. São Paulo: Érica, 2004.
[TAN, 1999] TAN, A. H. Text Mining: The state of the art and the challenges. In
Proceedings of the PAKDD’99 workshop on Knowledge Discovery from
Advanced Databases, Beijing, pp. 65-70, 1999.
[YANG, 1997] YANG, Y.; PEDERSON, J. A comparative study on feature
selection in text categorization. Fourteenth International Conference on Machine
Learning, ICML, 1997.
[WIVES, 1997] WIVES, Leandro Krug. Um Estudo Sobre Técnicas de Recuperação
de Informações Com Ênfase em Informações Textuais. Programa de Pós-
Graduação em Computação (Universidade Federal do Rio Grande do Sul), Rio
Grande do Sul, 1997.
[WIVES, 1999] WIVES, Leandro Krug. Um estudo sobre Agrupamento de
Documentos Textuais em Processamento de Informações não Estruturadas
Usando Técnicas de “Clustering”. Dissertação de Mestrado em Ciência da
Computação (Universidade Federal do Rio Grande do Sul), Rio Grande do Sul,
1999.
[WIVES,
2002]
WIVES,
Leandro
Krug.
Tecnologias
de
Descoberta
de
Conhecimento em Textos Aplicadas à Inteligência Competitiva. Programa de
Pós-Graduação em Computação (Universidade Federal do Rio Grande do Sul), Rio
Grande do Sul, 2002.
[WIVES,
2005]
WIVES,
Leandro
Krug.
Eurekha!.
Disponível
em:
<
http://www.leandro.wives.nom.br/eurekha/eurekha.htm>. Último acesso em: 10 de
novembro de 2005.
Download