Вы находитесь на странице: 1из 191

MINERAO DE DADOS TEXTUAIS UTILIZANDO TCNICAS DE

CLUSTERING PARA O IDIOMA PORTUGUS

Maria Clia Santos Lopes

TESE

SUBMETIDA

AO

CORPO

DOCENTE

DA

COORDENAO

DOS

PROGRAMAS DE PS-GRADUAO DE ENGENHARIA DA UNIVERSIDADE


FEDERAL

DO

RIO

DE

JANEIRO

COMO

PARTE

DOS

REQUISITOS

NECESSRIOS PARA A OBTENO DO GRAU DE DOUTOR EM CINCIAS


EM ENGENHARIA CIVIL.

Aprovada por:
_______________________________________________________
Prof. Nelson Francisco Favilla Ebecken, D.Sc

_______________________________________________________
Prof. Marta Lima de Queirs Mattoso, D.Sc.

_______________________________________________________
Prof. Elton Fernandes, D.Sc.

_______________________________________________________
Prof. Alexandre Gonalves Evsukoff, Dr.

_______________________________________________________
Prof. Eduardo Raul Hruschka, D.Sc.

_______________________________________________________
Prof. Geraldo Martins Tavares, D.Sc.

RIO DE JANEIRO, RJ - BRASIL


OUTUBRO DE 2004

LOPES, MARIA CLIA SANTOS


Minerao

de

Dados

Textuais

Utilizando

Tcnicas de Clustering para o Idioma Portugus [Rio


de Janeiro] 2004
XI, 180 p. 29,7 cm (COPPE/UFRJ, D.SC.,
Engenharia Civil, 2004)
Tese - Universidade Federal do Rio de Janeiro,
COPPE
1. Text mining
2. Clustering de Dados Textuais
3. Representao Visual de Resultados
I. COPPE/UFRJ

II. Ttulo (srie)

ii

A Gerson e Matheus
A meus pais

iii

AGRADECIMENTOS

A meu marido Gerson pelo apoio e ajuda e, principalmente, pela pacincia em


todos os momentos ao longo da realizao desta tese.

A meus pais pela constante presena e apoio incondicionais sem os quais se


tornaria bem difcil alcanar este objetivo.

Ao meu orientador prof. Nelson Francisco Favilla Ebecken pelo apoio e


incentivo no desenvolvimento da tese.

Ao CNPQ pelo suporte financeiro que viabilizou a realizao desta tese.

Ao Laboratrio do Ncleo de Transferncia de Tecnologia NTT, pela infraestrutura, suporte administrativo e logstico.

Gostaria de agradecer tambm a Rodrigo Bessa pelo trabalho caprichoso das


figuras que ilustraram esta tese e a todos os demais amigos do NTT, Estela Estrella e
Guilherme Saad Terra, pelo apoio e incentivo.

iv

Resumo da Tese apresentada COPPE/UFRJ como parte dos requisitos necessrios


para a obteno do grau de Doutor em Cincias (D. Sc.)

MINERAO DE DADOS TEXTUAIS UTILIZANDO TCNICAS DE


CLUSTERING PARA O IDIOMA PORTUGUS

Maria Clia Santos Lopes

Outubro/2004

Orientador: Nelson Francisco Favilla Ebecken


Programa: Engenharia Civil

Esta tese se concentra no desenvolvimento de uma soluo que realize o


clustering de documentos cujos contedos se apresentam no idioma Portugus. O
presente trabalho composto de trs mdulos distintos, sendo que cada mdulo gera a
entrada para o mdulo seguinte. O primeiro mdulo realiza o pr-processamento de
dados textuais fazendo as consideraes necessrias para o tratamento de dados textuais
em Portugus. O segundo mdulo o mdulo de clustering de dados, que disponibiliza
diferentes mtodos, alimentado pela etapa de preparao dos dados, e gera a sada de
acordo com o mtodo escolhido. A visualizao de resultados considerada de grande
auxlio para a interpretao e utilizao dos resultados fornecidos por um processo de
clustering. Dessa forma, o terceiro mdulo o mdulo de visualizao que disponibiliza
uma forma facilmente interpretvel de visualizao de resultados.

Abstract of Thesis presented to COPPE/UFRJ as a partial fulfillment of the


requirements for the degree of Doctor of Science (D. Sc.)

TEXT DATA MINING USING CLUSTERING TECHNIQUES FOR


PORTUGUESE LANGUAGE

Maria Clia Santos Lopes

October/2004

Advisor: Nelson Francisco Favilla Ebecken


Department: Civil Engineering
This thesis focuses on the development of a document clustering solution
which deals with document contents in Portuguese. The current work presents three
distinct modules, each module generating the input to the next one. The first module
presents text data preprocessing, performing all considerations needed for textual data
treatment in Portuguese. The second module is the clustering module which disposes
different methods, it is fed with data preparation phase output, and displays results
according to the method chosen. The visualization of results is considered of great help
in order to use and interpret results coming from a clustering process. Thus, the third
module is the visualization one, which disposes an easily interpretable way of
visualizing results.

vi

ndice Geral

Introduo ................................................................................................................. 2
1.1
Motivao ............................................................................................. 3
1.2
Linhas Gerais da Tese .......................................................................... 4
1.2.1
Estudo das Etapas do Processo de Text Mining.................................... 4
1.2.2
Ambiente de Clustering de Documentos.............................................. 5
2
Etapas do Processo de Text Mining.......................................................................... 7
2.1
Preparao dos Dados........................................................................... 8
2.1.1
Recuperao de Informao ................................................................. 8
2.1.1.1 Mtodos Tradicionais ......................................................................... 10
2.1.1.1.1 Coincidncia de Cadeias de Palavras ........................................... 10
2.1.1.1.2 Modelo Booleano .......................................................................... 10
2.1.1.1.3 Modelo de Espao Vetorial .......................................................... 11
2.1.1.1.4 Uso do Thesaurus ......................................................................... 14
2.1.1.1.5 Mtodo do arquivo de assinatura .................................................. 14
2.1.1.1.6 Inverso......................................................................................... 15
2.1.1.2 Mtodos Modernos ............................................................................. 15
2.1.1.2.1 Indexao Semntica Latente (LSI).............................................. 15
2.1.1.2.2 Mtodo Conexionista .................................................................... 17
2.1.2
Filtragem de Informao (Information Filtering) ou FI ..................... 17
2.1.3
Recuperao de Informao e Filtragem de Informao:................... 19
2.2
Anlise dos Dados .............................................................................. 20
2.2.1
Case Folding ....................................................................................... 21
2.2.2
Stop words .......................................................................................... 21
2.2.3
Stemming............................................................................................ 21
2.2.3.1 Mtodo do Stemmer S......................................................................... 22
2.2.3.2 Mtodo de Porter ................................................................................ 22
2.2.3.3 Mtodo de Lovins ............................................................................... 23
2.2.4
Uso do Dicionrio ou Thesaurus ........................................................ 23
2.2.4.1 Termos Compostos ............................................................................. 24
2.2.4.2 Relacionamentos entre termos ............................................................ 24
2.2.5
Transformao dos Dados .................................................................. 25
2.2.5.1 Converso em Tabelas ........................................................................ 26
2.3
Processamento dos Dados Tarefas de Text Mining ........................ 26
2.3.1
Indexao............................................................................................ 27
2.3.1.1 Indexao do Texto Completo ............................................................ 27
2.3.1.2 Indexao Temtica ............................................................................ 28
2.3.1.3 Indexao Semntica Latente ............................................................. 29
2.3.1.4 Indexao por Tags ............................................................................. 30
2.3.1.5 Indexao por Listas ou Arquivos Invertidos ..................................... 30
2.3.2
Extrao de Informao...................................................................... 31
2.3.2.1 Aplicaes de Extrao de Informao .............................................. 31
2.3.2.2 Construindo um sistema EI................................................................. 32
2.3.2.3 Componentes de um sistema EI.......................................................... 33
2.3.3
Extrao de Caractersticas................................................................. 35
2.3.3.1 Informao Lingustica definido importncia .................................... 35

vii

2.3.3.2 Mtrica Definidoras de Importncia ................................................... 36


2.3.3.2.1 Freqncia de Documentos - Document Frequency (DF) ............ 36
2.3.3.2.2 Ganho de Informao ................................................................... 36
2.3.3.2.3 Informao Mtua ........................................................................ 37
2.3.3.2.4 Estatstica X2 ................................................................................. 38
2.3.4
Sumarizao ....................................................................................... 39
2.3.4.1 Sumarizao por Abstrao ................................................................ 39
2.3.4.2 Sumarizao por Extrao .................................................................. 39
2.3.4.2.1 Extrao Automtica de Resumos ................................................ 40
2.3.5
Categorizao ..................................................................................... 40
2.3.5.1 Categorizao de rtulo simples vs categorizao multi-rtulo ......... 42
2.3.5.2 Categorizao por pivotamento de categoria vs pivotamento de
documento .......................................................................................... 42
2.3.5.3 Categorizao rgida (hard) vs ordenao .......................................... 42
2.3.5.4 Aplicaes em Categorizao de Texto.............................................. 43
2.3.6
Construo de Classificadores de Texto............................................. 45
2.3.6.1 Classificadores de rvore de Deciso ................................................ 45
2.3.6.2 Classificadores de Regra de Deciso .................................................. 46
2.3.6.3 Classificadores de Regresso.............................................................. 46
2.3.6.4 Classificadores Rocchio ...................................................................... 46
2.3.6.5 Redes Neurais ..................................................................................... 46
2.3.6.6 Classificadores baseados em exemplos .............................................. 47
2.3.6.7 Classificadores Probabilsticos ........................................................... 47
2.3.6.8 Classificadores baseados em Support Vector Machines (SVM) ........ 48
2.3.6.9 Comit de Classificadores .................................................................. 48
2.3.7
Clustering de Documentos ................................................................. 48
2.3.7.1 Tcnicas de Clustering ....................................................................... 49
2.3.7.1.1 Clustering Hierrquico ................................................................. 50
2.3.7.1.2 Clustering K-means ...................................................................... 53
2.3.7.1.3 Clustering de Palavras .................................................................. 53
2.3.7.2 Avaliao da Qualidade do Cluster .................................................... 54
2.3.7.3 Aplicaes em Clustering de Texto.................................................... 54
2.4
Ps-Processamento dos Dados ........................................................... 56
2.4.1
Mtricas de Avaliao de Resultados ................................................. 56
2.4.1.1 Preciso ............................................................................................... 56
2.4.1.2 Recall .................................................................................................. 56
2.4.2
Ferramentas de Visualizao .............................................................. 57
2.4.2.1 Visualizaes 2-D............................................................................... 57
2.4.2.2 Visualizaes 3-D............................................................................... 58
2.4.3
Conhecimento de Especialistas .......................................................... 58
2.5
Ferramentas Comerciais ..................................................................... 59
2.5.1
Intelligent Miner for Text ................................................................... 59
2.5.2
Temis .................................................................................................. 59
2.5.2.1 Insight Discoverer Extractor ............................................................... 59
2.5.2.2 Insight Discoverer Categorizer ........................................................... 60
2.5.2.3 Insight Discoverer Clusterer ............................................................... 60
2.5.3
Online Miner ...................................................................................... 61
2.5.4
TextSmart ........................................................................................... 61
2.5.4.1 Categorizao dos termos baseada em clustering............................... 62
2.5.5
Smart Discovery ................................................................................. 62

viii

2.5.6
VizServer ............................................................................................ 63
2.5.7
Knowledge Discovery System ............................................................. 63
2.5.8
ThemeScape........................................................................................ 64
2.5.9
Data Junction...................................................................................... 64
2.5.10
TextAnalyst ......................................................................................... 65
2.5.11
Technology Watch .............................................................................. 66
2.5.12
Outras Ferramentas............................................................................. 66
2.5.13
Tabela Comparativa ............................................................................ 67
3
Descrio do Sistema.............................................................................................. 70
3.1
Linguagem Perl .................................................................................. 70
3.1.1
Compilador e Interpretador ................................................................ 70
3.1.2
Conversor Script Executvel........................................................... 72
3.2
Case Folding ...................................................................................... 73
3.3
Stemmers............................................................................................. 73
3.3.1
Mtodo de Porter ................................................................................ 73
3.3.1.1 O algoritmo de Stemming de Porter .................................................... 74
3.3.2
Stemmer Portuguese ........................................................................... 78
3.3.2.1 Algoritmo de Stemming - StemmerPortuguese................................... 79
3.3.2.2 Dificuldades no Stemming Portugus ................................................. 81
3.4
Anlise de Clusters ............................................................................. 83
3.4.1
Clustering Hierrquico de Documentos ............................................. 85
3.5
C-Clustering Library.......................................................................... 87
3.5.1
Manuseio dos Dados........................................................................... 88
3.5.1.1 Pesos ................................................................................................... 88
3.5.1.2 Valores Ausentes ................................................................................ 88
3.5.2
Funes de Distncia .......................................................................... 88
3.5.2.1 Coeficiente de Correlao de Pearson................................................ 89
3.5.2.2 Correlao de Pearson Absoluta ......................................................... 90
3.5.2.3 Correlao descentralizada Cosseno do ngulo............................... 90
3.5.2.4 Correlao descentralizada absoluta ................................................... 91
3.5.2.5 Correlao de Spearman..................................................................... 92
3.5.2.6 de Kendall ....................................................................................... 92
3.5.2.7 Distncia Euclidiana ........................................................................... 93
3.5.2.8 Distncia Euclidiana Harmonicamente Somada................................. 93
3.5.2.9 Distncia City-block ........................................................................... 94
3.5.2.10 Calculando a distncia entre clusters.................................................. 94
3.5.2.11 Matriz de Distncias ........................................................................... 95
3.5.3
Algoritmos Particionais ...................................................................... 95
3.5.3.1 Inicializao ........................................................................................ 96
3.5.3.2 Encontrando o centride do cluster .................................................... 96
3.5.3.2.1 Encontrando o vetor mdio do cluster.......................................... 97
3.5.3.2.2 Encontrando a mdia do cluster ................................................... 97
3.5.3.3 Algoritmo EM..................................................................................... 97
3.5.3.4 Encontrando a soluo tima .............................................................. 99
3.5.4
Clustering Hierrquico ....................................................................... 99
3.5.4.1 Mtodos de clustering hierrquicos .................................................... 99
3.5.4.2 Podando a rvore de clustering hierrquico ..................................... 100
3.5.5
SOM ................................................................................................. 100
3.6
O Processo de Clustering ................................................................. 103
3.6.1
Mdulos do Sistema ......................................................................... 104

ix

3.6.2
Diagrama do Sistema........................................................................ 107
3.6.3
Interface com o Usurio ................................................................... 109
3.6.3.1 Perl/TK ............................................................................................. 111
3.6.4
Fluxo de Trabalho ............................................................................. 112
3.7
O Processo de Categorizao Assistida............................................ 112
3.7.1
Interface com o usurio .................................................................... 114
3.7.2
Fluxo de Trabalho ............................................................................. 115
3.8
Mdulo de Visualizao ................................................................... 116
4
Estudos de Casos .................................................................................................. 119
4.1
Bases de Textos ................................................................................ 119
4.1.1
Corpus Conhecimentos Gerais ......................................................... 119
4.1.2
Corpus TeMario ................................................................................ 120
4.1.3
Corpus CETENFolha ........................................................................ 121
4.2
Cluto ................................................................................................. 123
4.2.1
Repeated Bisections .......................................................................... 123
4.2.2
Direct ................................................................................................ 124
4.2.3
Graph................................................................................................ 124
4.2.4
Agglo................................................................................................. 124
4.3
Efeito do Stemming no Processo de Clustering................................ 125
4.3.1
Corpus Conhecimentos Gerais ......................................................... 126
4.3.1.1 Sem Stemmer .................................................................................... 127
4.3.1.2 Stemmer de Porter............................................................................. 127
4.3.1.3 Stemmer Portuguese ......................................................................... 128
4.3.1.4 Resultados obtidos com a Ferramenta Temis ................................... 129
4.3.2
Corpus TeMario ................................................................................ 130
4.3.2.1 Sem Stemmer .................................................................................... 130
4.3.2.2 Stemmer de Porter............................................................................. 131
4.3.2.3 Stemmer Portuguese ......................................................................... 132
4.4
Variao do Nmero de Termos - Dados Default ............................ 134
4.4.1
Corpus Conhecimentos Gerais 6 classes ....................................... 134
4.4.2
Corpus Conhecimentos Gerais 17 classes ..................................... 135
4.4.3
Corpus TeMario 3 classes ............................................................. 136
4.4.4
Corpus TeMario 5 classes ............................................................. 137
4.4.5
Corpus CETENFolha ........................................................................ 138
4.5
Visualizao dos Resultados ............................................................ 141
4.5.1
Corpus Conhecimentos Gerais 6 classes ....................................... 143
4.5.2
Corpus Conhecimentos Gerais 17 classes ..................................... 147
4.5.3
Corpus TeMario ................................................................................ 150
4.6
Resultados da Categorizao Assistida ............................................ 154
5
Consideraes Finais ............................................................................................ 157
5.1
Concluses........................................................................................ 157
5.2
Trabalhos Futuros ............................................................................. 158
5.3
Perspectivas Futuras ......................................................................... 159
6
Referncias Bibliogrficas .................................................................................... 161
Apndice A................................................................................................................... 171
Apndice B ................................................................................................................... 177

ndice de Figuras

Figura 2.1 Etapas do Text mining..................................................................................... 7


Figura 2.2 Modelo geral de RI.......................................................................................... 9
Figura 2.3 Modelo geral de FI ........................................................................................ 18
Figura 2.4 Utilizao do thesaurus na indexao temtica ............................................. 28
Figura 2.5 Componentes Principais em um sistema EI .................................................. 34
Figura 2.6 Processo de Categorizao ............................................................................ 41
Figura 2.7 Processo Bsico de Clustering ...................................................................... 49
Figura 3.1 Seqncia de passos para o algoritmo de stemming RSLP ........................... 78
Figura 3.2 Diagrama em blocos do sistema .................................................................. 108
Figura 3.3 Tela de entrada da interface de usurio do mdulo de clustering ............... 110
Figura 3.4 Tela do mdulo de configurao ................................................................. 111
Figura 3.5 Tela de entrada da interface de usurio do mdulo de categorizao ......... 114
Figura 3.6 Mdulo de Visualizao Java TreeView.................................................. 116
Figura 4.1 (a)K-means sem mudanas nos dados (b) com mudanas .......................... 143
Figura 4.2 (a)Graph sem mudanas nos dados (b) com mudanas............................... 144
Figura 4.3 (a)Hierrquico sem mudanas nos dados (b) com mudanas ..................... 145
Figura 4.4 (a)termos ocorrem em documentos Geografia (b) termos no ocorrem.. 146
Figura 4.5 (a)K-means sem mudanas nos dados (b) com mudanas .......................... 148
Figura 4.6 (a)Hierrquico sem mudanas nos dados (b) com mudanas ..................... 149
Figura 4.7 (a) Mtodo K- means simples (b) Mtodo com retirada de termos ........... 150
Figura 4.8 Documentos prximos e destacados dos demais na hierarquia de clusters 151
Figura 4.9 Visualizao Hierrquica com dados inalterados........................................ 152
Figura 4.10 Visualizao Hierrquica aps a retirada de termos ................................. 153

xi

Captulo 1
Apresentao

1 Introduo
Todos os tipos de textos que compem o dia a dia de empresas e pessoas so produzidos
e armazenados em meios eletrnicos. Inmeras novas pginas contendo textos so
lanadas diariamente na Web. Outros tipos de documentos como relatrios de
acompanhamento, atas de reunies, histricos pessoais, etc. so periodicamente gerados
e atualizados. Entretanto, at pouco tempo atrs, essas informaes em formato de
textos no eram usadas para significar algum tipo de vantagem competitiva, ou mesmo
como suporte tomada de decises, ou ainda como indicador de sucesso ou fracasso.
Com o advento do text mining, a extrao de informaes em textos passou a ser
possvel e o imenso e crescente mundo dos textos est comeando a ser explorado.
Em virtude desse crescimento contnuo do volume de dados eletrnicos disponveis,
tcnicas de extrao de conhecimento automticas tornam-se cada vez mais necessrias
para valorizar a gigantesca quantidade de dados armazenada nos sistemas de
informao. Alm disso, como as tcnicas desenvolvidas para data mining foram
desenvolvidas para dados estruturados, tcnicas especficas para text mining tem sido
desenvolvidas para processar uma parte importante da informao disponvel que pode
ser encontrada na forma de dados no-estruturados.
As aplicaes de text mining podem fornecer uma nova dimenso das informaes
disponveis nas empresas, sendo utilizadas no acompanhamento da gerncia de projetos
a partir de relatrios de status, documentao de projeto e comunicaes com o cliente.
Uma outra aplicao o desenvolvimento do planejamento de marketing baseado em
detalhes e planos passados, opes de anncios e pesquisas de marketing. Aplicaes
no to pretensiosas j se encontram implantadas atualmente, como a categorizao
automtica de mensagens de correio eletrnico em bancos de investimento; e a extrao
automtica de resumos a partir de documentos pesquisados, realizada por alguns
mecanismos de busca na Web.
O Clustering de documentos tem sido estudado intensivamente por causa de sua
aplicabilidade em reas tais como information retrieval [61], web mining [60, 27], e
anlise topolgica. Um outro catalisador para o desenvolvimento de um algoritmo de
clustering de documentos eficiente a quantidade gigantesca de dados no-estrutrados
na internet. A maior parte dessa informao se encontra em formato de textos, por
exemplo, emails, notcias, pginas web, relatrios, etc. Organiz-los em uma estrutura

lgica uma tarefa desafiadora. Clustering empregado, mais recentemente, para


percorrer (browsing) colees de documentos [62] ou organizar os resultados de uma
consulta retornados por um mecanismo de busca [63]. Ele tambm pode servir como um
passo de pr-processamento para outros algoritmos de minerao de dados como
classificao de documentos [8]. Um objetivo ambicioso do clustering de documentos
gerar automaticamente clusters de documentos organizados hierarquicamente [5] da
mesma forma que a hierarquia de assuntos Yahoo!, por exemplo. A utilizao de
mtodos de clustering em vrios contextos, pelas mais diferentes disciplinas, refletem
sua grande utilidade na explorao de conhecimento sobre dados.

1.1 Motivao
A grande maioria de textos tcnicos, cientficos, notcias, etc. disponibilizados na web
se encontram na lngua inglesa. Embora no ocorram com a mesma assiduidade que no
idioma ingls, as pginas e documentos disponveis em portugus esto se tornando
mais e mais freqentes. No entanto, para tratar os contedos desses arquivos,
necessrio que pelo menos uma parte da abordagem esteja ligada ao idioma. Alm do
fato de os dados se apresentarem em formato de texto, o que j exige um trabalho
adicional, a lngua em que os mesmos se encontram influencia a anlise em vrios
momentos. O objetivo desta tese a disponibilizao de uma soluo capaz de agrupar
textos em portugus por similaridade de contedo e que permita a visualizao da sada
de uma forma que facilite a interpretao dos resultados. A parte inicial do trabalho de
preparao de dados dependente do idioma e envolve alguns passos preparao de
listas de stopwords, algoritmo de stemming, case folding, dicionrio que exigem uma
infinidade de consideraes para a identificao e aglutinao de termos na massa de
dados. Ainda assim, quando esta etapa est concluda, comum que os arquivos em
formato texto sejam representados por uma quantidade muito grande de termos. Com o
objetivo de promover uma diminuio dessa quantidade de termos, freqente a
utilizao de critrios de reduo da representao destes arquivos. O conjunto de
termos resultante pode, ento, ser convertido para uma forma mais estruturada de dados,
passando, por exemplo, forma de tabelas ou listas invertidas que so facilmente
manuseveis.

A etapa subsequente diz respeito definio do problema e forma de abordagem e


soluo do mesmo. Neste ponto, a expectativa do usurio ser traduzida nas atividades
que devem ser desempenhadas para que o resultado desejado seja alcanado. Nesta tese,
so apresentadas vrias tarefas comumente realizadas em dados textuais e tipos de
aplicaes que as utilizam. O objetivo desta tese em termos de tarefa o clustering
(aprendizado no-supervisionado) de dados textuais. Esta abordagem difere das demais
por considerar o idioma portugus e suas particularidades no tratamento dos dados.
Quando o processo de clustering terminado, produz-se uma sada identificando os
clusters ou agrupamentos encontrados pelo mtodo utilizado. O resultado apresentado,
no entanto, nem sempre facilmente entendido. No caso dos textos, em que cada termo
considerado convertido para um atributo ou dimenso, a visualizao da sada pode
ser confusa e pouco esclarecedora. Nesta tese, apresenta-se uma forma de visualizao
que permite ao usurio ver toda a estrutura e organizao dos clusters encontrados.
Tanto o tratamento de documentos em Portugus como a visualizao detalhada de
resultados provenientes de um processo de clustering de dados textuais constituem os
pontos de maior contribuio cientfica do presente trabalho.

1.2 Linhas Gerais da Tese


Esta tese composta de uma primeira parte que mostra uma seqncia terica de
tratamento de dados textuais desde a formao das bases de textos at a interpretao
dos resultados, apresentando diferentes aplicaes dos dados textuais. A segunda parte
desta tese apresenta os mdulos que incluem o pr-processamento de dados em
Portugus; o processo de clustering propriamente dito, que disponibilizado em
mtodos diferentes possibilitando a comparao dos resultados; e a visualizao dos
resultados produzidos.

1.2.1

Estudo das Etapas do Processo de Text Mining

Como introduo vasta gama de aplicaes as quais os dados textuais podem servir,
apresenta-se na primeira parte desta tese um estudo descrevendo as etapas do processo
de text mining, mostrando conceitos que serviram como base, as diferentes

metodologias que podem ser empregadas, aplicaes possveis e interpretao dos


resultados.

1.2.2

Ambiente de Clustering de Documentos

Em vrios momentos do processo de text mining o idioma um diferenciador no


tratamento dos dados textuais. A maior parte das ferramentas disponveis no mercado
atualmente no possui abordagem para o idioma Portugus e dependem de contratao
de servios especializados. Esta tese dedica um tratamento especial ao idioma
desenvolvendo toda a preparao de dados stop words, stemming, dicionrio para o
Portugus. De todas as possveis aplicaes disponveis para textos que sero
apresentadas na parte de estudo da tese, ser abordado o clustering de documentos. Ser
apresentada,

tambm,

uma

forma

elucidativa

de

visualizao

dos

resultados

provenientes do processo de clustering da etapa anterior. O objetivo deste trabalho ,


ento, o desenvolvimento de uma soluo de clustering de dados textuais em portugus,
realizando todos os passos de preparao de dados, clustering de documentos e
visualizao de resultados.
A segunda parte desta tese enfocar, portanto, a tarefa de clustering de um modo mais
detalhado e descrever a soluo proposta para clustering de documentos em Portugus.

Captulo 2
Fundamentao Terica

2 Etapas do Processo de Text Mining


Text mining, tambm conhecido como Text data mining [7] ou Knowledge discovery
from textual databases [6], refere-se ao processo de extrair padres interessantes e notriviais ou conhecimento a partir de documentos em textos no-estruturados. Text
mining pode tambm ser definido como um conjunto de tcnicas e processos que se
prestam a descobrir conhecimento inovador nos textos. Esta nova tecnologia est sendo
empregada atualmente em projetos de diversas reas, por exemplo, para descobrir fatos
na gentica e na pesquisa de protenas.
Nesta parte da tese ser apresentado o esquema bsico de um processo de text mining
com os passos que podem compor cada etapa. Esse esquema mostrado na figura 2.1.
Primeiramente, ser mostrado como o pr-processamento dos dados realizado, de
forma a preparar o conjunto de dados textuais para as fases posteriores de execuo das
tarefas de processamento dos dados e anlise de resultados obtidos. Em seguida, ser
apresentado o conjunto de tarefas que podem ser realizadas a partir dos textos,
mostrando em que situaes podem ser utilizadas e o que se espera como sada. Depois,
apresentam-se formas de avaliao da qualidade dos resultados advindos das etapas
anteriores, para que os mesmos possam ser efetivamente empregados. Algumas
ferramentas disponveis atualmente sero tambm comentadas.

Figura 2.1 Etapas do Text mining

2.1 Preparao dos Dados


O manuseio de arquivos texto apresenta alguns desafios. O primeiro a ser citado
envolve o prprio formato dos textos com nenhuma ou pouca estruturao, o que
dificulta a utilizao imediata de vrias tcnicas de minerao de dados conhecidas. Um
outro desafio diz respeito ao tamanho dos arquivos em formato texto, comumente da
ordem de milhares de palavras ou termos. Alm disso, muitas dessas palavras so
repetidas, expressam o mesmo significado ou so de significado irrelevante. As
situaes mencionadas acima, assim como outras encontradas quando se lida com dados
textuais, devem ser trabalhadas e resolvidas para viabilizar o uso de arquivos texto em
primeira instncia e em segunda aumentar a eficincia de atividades executadas a
posteriori.
A preparao dos textos a primeira etapa do processo de descoberta de conhecimento
em textos. Esta etapa envolve a seleo das bases de textos que constituiro os dados de
interesse e o trabalho inicial para tentar selecionar o ncleo que melhor expressa o
contedo dos textos, ou seja, toda a informao que no refletir nenhuma idia
considerada importante poder ser desprezada.
Alm de promover uma reduo dimensional, esta etapa tenta identificar similaridades
em funo da morfologia ou do significado dos termos, de modo a aglomerar suas
contribuies.

2.1.1

Recuperao de Informao

A rea de Recuperao de Informao (RI ou Information Retrieval) desenvolveu


modelos para a representao de grandes colees de textos que identificam
documentos sobre tpicos especficos. Os documentos recuperados so colocados em
ordem e apresentados ao usurio. A figura 2.2 apresenta um modelo geral para RI como
descrito em [9].
Embora esse seja um campo vasto, neste trabalho o

interesse em RI se restringe

representao e identificao de documentos sobre conjuntos de assuntos especficos.

Fontes de Texto

Usurio

Colees de Texto

Necessidade de
Informao

Representao e
organizao

Representao

Substitutos de Textos
Organizados

Query

Comparao/Matching

Documentos Recuperados

Uso e/ou Feedback

Figura 2.2 Modelo geral de RI

Neste modelo, um usurio com alguma necessidade de informao apresenta uma query
ou consulta ao sistema RI . A consulta a representao da necessidade de informao
do usurio em uma linguagem entendida pelo sistema. Esta representao considerada
como uma aproximao, devido dificuldade de representao da necessidade de
informao. A consulta , ento, comparada aos documentos, que esto organizados em
substitutos dos textos (isto , palavras-chave, ttulos, resumos). Substitutos de textos
podem ser vistos como uma representao estruturada dos dados textuais noestruturados. Assim, eles fornecem uma alternativa de representao dos documentos
originais, uma vez que eles tomam bem menos tempo para serem examinados e ao
mesmo tempo codificam deixas semnticas suficientes para serem usados em
comparao s consultas ao invs dos documentos originais. Como resultado da
comparao, um conjunto de documentos seria selecionado e apresentado ao usurio. O
usurio pode usar estes documentos ou fornecer ao sistema um retorno (feedback) que
resulta em modificaes na consulta (feedback de relevncia), na necessidade de

informao original ou nos substitutos [9]. O processo de interao continua at que o


usurio esteja satisfeito ou at que o usurio deixe o sistema.

Pode-se considerar que a RI seja o primeiro passo de um processo de minerao de


textos. Um sistema RI atua como se fosse um filtro sobre um conjunto de documentos,
retornando ao usurio o resultado de um problema ou consulta particular.
Esta seo d uma viso geral de mtodos usados nos sistemas de RI. Na literatura,
mtodos de RI so categorizados em dois grupos: tradicional e moderno. Uma descrio
de alguns mtodos de cada categoria mostrada a seguir.

2.1.1.1 Mtodos Tradicionais


So os mtodos mais conhecidos e que so comumente utilizados para Recuperao de
Informao.

2.1.1.1.1 Coincidncia de Cadeias de Palavras


O usurio especifica sua necessidade de informao atravs de uma cadeia de palavras.
Um documento satisfaria a necessidade de informao de um usurio se a cadeia
especificada pelo usurio existir no documento. Este mtodo uma das primeiras e
mais simples abordagens. Este mtodo sofre de trs problemas [102]:

Homonmia: o significado de uma palavra depende do contexto no qual ela


aparece;

Sinonmia: palavras tendo o mesmo significado;

Tempo de resposta ruim.

2.1.1.1.2 Modelo Booleano


Na recuperao Booleana um documento representado por um conjunto de termosndice. Uma consulta ou query consiste de um conjunto de termos-ndice combinados
com operadores de Boole. Este mtodo uma modificao do mtodo 2.1.1.1.1 onde o
usurio pode combinar palavras usando operadores booleanos tais como AND, OR e
NOT. O modelo binrio, isto , a freqncia de um termo no tem efeito.

Nesse

modelo, a semntica da consulta bem definida cada documento, ou corresponde


expresso booleana, ou no. Em razo desta semntica descomplicada e do clculo

10

direto dos resultados utilizando operaes de conjuntos, o modelo booleano


amplamente usado em ferramentas de busca comerciais.
Este mtodo d ao usurio uma ferramenta para expressar melhor sua necessidade de
informao mas ao mesmo tempo requer alguma habilidade por parte do usurio. Neste
mtodo, o usurio tem que estar bem familiarizado com as primitivas booleanas
especialmente em casos de queries ou consultas complexas.

Vrios mecanismos de

busca so baseados neste mtodo Alta Vista, Lycos e Excite so alguns exemplos
[10]. Em [11] encontram-se mais detalhes sobre este modelo.

Os problemas relacionados ao modelo booleano so, no entanto, bem conhecidos:


-

a formulao de uma consulta adequada, isto , a seleo dos termos para a


consulta difcil, especialmente se o domnio no bem conhecido.

O tamanho da sada no pode ser controlado. O conjunto resultante tanto pode


conter nenhum como milhares de itens. Alm disso, sem um grau de comparao
parcial, no se pode saber o que foi deixado de fora da definio da consulta.

Uma vez que no h um grau de comparao, no possvel ordenar os


resultados de acordo com a relevncia.

2.1.1.1.3 Modelo de Espao Vetorial


O Modelo de Espao Vetorial (VSM Vectorial Space Model) se presta a resolver
problemas de representao de documentos utilizando representao geomtrica. Esse
modelo utilizado, tambm, em casos em que preciso encontrar documentos que
atendam a um critrio, e a soluo desse problema decorre naturalmente do esquema de
representao dos documentos.
Documentos so representados como pontos (ou vetores) em um espao Euclidiano tdimensional onde cada dimenso corresponde a uma palavra (termo) do vocabulrio
[12]. Cada palavra tem um peso associado para descrever sua significncia, que pode
ser sua freqncia em um documento, ou uma funo dela. A similaridade entre dois
documentos definida ou como a distncia entre os pontos ou como o ngulo entre os
vetores,

desconsiderando

comprimento

do

documento.

comprimento

desconsiderado para levar em conta documentos de tamanhos diferentes. Assim, cada


documento normalizado de forma que fique com comprimento unitrio.

11

Por causa de sua simplicidade, o modelo do espao vetorial (VSM) e suas variantes so
uma forma bastante comum de representar documentos textuais na minerao de
colees de documentos. Uma explicao para isso que operaes de vetores podem
ser executadas muito rapidamente e existem algoritmos padronizados eficientes para
realizar a seleo do modelo, a reduo da dimenso e visualizao de espaos de
vetores. Em parte por estas razes, o modelo de espao vetorial e suas variaes tem
persistido em avaliaes de qualidade, no campo da recuperao de informao [13].
Um problema bvio com o modelo de espao vetorial a dimensionalidade alta: o
nmero de palavras diferentes em uma coleo de documentos facilmente atinge
centenas de milhares. Outro problema conhecido composto por variaes de estilo de
escrita, erros de grafia, etc.
Alm disso, quaisquer duas palavras so consideradas por definio no-relacionadas.
Entretanto, difcil obter uma informao exata das relaes semnticas apenas a partir
das informaes textuais, automaticamente.
Se fosse possvel basear um modelo em alguns tipos de variveis latentes (ou dimenses
conceituais) ao invs de palavras, uma representao consideravelmente mais concisa,
provavelmente seria obtida [14].

a. Atribuio de Pesos (Weighting)


Neste modelo, cada documento representado como um vetor cujas dimenses so os
termos presentes na coleo de documentos inicial a ser minerada. Cada coordenada do
vetor um termo e tem um valor numrico que representa sua relevncia para o
documento. Normalmente, valores maiores implicam em relevncias maiores. Este
processo de associar valores numricos a coordenadas de vetor referenciado como
atribuio de pesos ou weighting. Formalmente falando, weighting o processo de dar
nfase aos termos mais importantes. Existem vrias medidas de atribuio de pesos
(weighting) entre as quais podemos citar trs mais populares que so: Binria, TF e
TF*IDF. O esquema binrio usa os valores 1 e 0 para revelar se um termo existe em um
documento ou no, respectivamente. A frequncia do termo (Term Frequency - TF)
conta as ocorrncias de um termo em um documento e usa este contador como uma
medida numrica. Normalmente, as medidas so normalizadas para valores no intervalo
[0,1]. Isto feito independentemente para cada documento, dividindo-se cada medida de
coordenada pela medida de coordenada mais alta do documento considerado. Este

12

procedimento ajuda a resolver problemas asssociados com o tamanho (comprimento) do


documento. Sem a normalizao, um termo pode ter uma medida maior num certo
vetor-documento simplesmente porque o documento correspondente muito grande. O
terceiro esquema o TF*IDF (Term Frequency Inverse Document Frequency) onde
se multiplica a medida de coordenada oriunda de um esquema TF por seu peso global.
A medida total de um termo se torna a combinao de sua medida local (medida TF) e
global (medida IDF). A medida IDF para o termo t definida como log(N/N t) onde N
o nmero total de documentos e Nt o nmero total de documentos contendo t. A IDF
aumenta conforme a singularidade do termo entre os documentos aumenta isto
conforme sua existncia diminui dando assim ao termo um peso maior. Termos que
ocorrem muito num certo documento (contagem local alta) e termos que ocorrem em
poucos documentos (contagem global alta) so ditos como tendo alto poder de deciso e
recebem pesos altos. O peso de um termo em um documento uma combinao de suas
contagens local e global. Pelas mesmas razes previamente expostas, a normalizao ,
tambm, usualmente usada neste processo. Para normalizar medidas baseadas no
esquema TF*IDF, a normalizao do cosseno [124] usada. Ela calculada como a
seguir:
Ntk d j =

TF * IDF (t k , d j )

(TF * IDF (t , d ))(TF * IDF (t


T

s =1

, d j ))

Equao 2.1

onde t k e dj so o termo e o documento em considerao, respectivamente, TF*IDF(t s,dj)


a medida da coordenada de t s em dj, e |T| o nmero total de termos no espao de
termos.
b. Medida do Cosseno
O Modelo do Espao Vetorial ([15]e [16]) usa as estatsticas dos termos para comparar
as necessidades de informao e os documentos. Cada documento representado como
um vetor de n dimenses onde cada dimenso um termo proveniente do conjunto de
termos usados para identificar o contedo de todos os documentos e consultas. A cada
termo ento dado um peso dependendo da sua importncia em revelar o contedo de
seu documento associado ou consulta. Freqncias de termos podem ser binrias
(simples e eficientes) ou nmeros (mais exatas). Um esquema tpico usado para associar

13

pesos a termos o TF*IDF explicado previamente. Para comparar um documento dado


com alguma consulta ou mesmo com outro documento (ambos representados no
formato de vetor), o cosseno do ngulo [10] entre dois vetores medido como:

Cos( I , D) = I .D ( I D )

Equao 2.2

onde I ou o vetor de consulta , D um vetor documento, I.D o produto escalar de I e


D, e ||I|| a raiz quadrada do produto escalar do vetor I por ele mesmo.
Este mtodo tem as vantagens de requerer uma interveno de usurio mnima e ser
robusto; entretanto, ele ainda sofre de efeitos de homonmia e sinonmia nos termos.

2.1.1.1.4 Uso do Thesaurus


Para resolver problemas de vocabulrio (homonmia e sinonmia), alguns sistemas
integraram um thesaurus no seu processo. Um thesaurus um conjunto de termos
(palavras ou frases) com relaes entre elas. A finalidade do thesaurus aplicar ou
substituies palavra a palavra substituir todos os termos que tem relao no
thesaurus (isto , tem o mesmo significado) pelo mesmo termo ou substituies de
hierarquias de conceitos tais como substituies de generalizao [18] onde todos os
termos so generalizados para os termos adequados de mais alto nvel de acordo com a
hierarquia de conceitos descritas no thesaurus. Embora o uso do thesaurus tenha
ajudado com problemas de sinonmia, este mtodo ainda sofre de homonmia. O
Thesaurus ser melhor explicado na seo 2.2.4.

2.1.1.1.5 Mtodo do arquivo de assinatura


Neste mtodo, cada documento representado por um cadeia de bits de tamanho fixo,
que referida como a assinatura do documento. Para conseguir esta assinatura, uma
tcnica de hashing e uma tcnica de superimposio de cdigo so aplicadas nas
palavras dos documentos [17]. As assinaturas de todos os documentos so armazenadas
seqencialmente em um arquivo o arquivo de assinaturas que muito menor que o
conjunto original de documentos. Comparaes entre consultas e documentos so feitas
atravs do arquivo de assinatura. Este mtodo tem as vantagens de ser simples e de ser
capaz de tolerar erros de tipos e grafia. Alguns algoritmos usando estes mtodos so
apresentados em [20] e [21]. Veja em [19] o captulo 9.5 para mais detalhes.

14

2.1.1.1.6 Inverso
Cada documento representado por um conjunto de palavras chave que descrevem seu
contedo. Estas palavras-chave so armazenadas (normalmente em ordem alfabtica)
em um arquivo-ndice. Um outro arquivo arquivo de endereamento criado para
guardar o conjunto de apontadores de cada palavra-chave no arquivo-ndice e o
conjunto de ponteiros nos arquivos de endereamentos so utilizados para comparar
com as consultas. Este mtodo sofre de sobrecarga de armazenamento (at 300% do
tamanho original do arquivo [22]) e o custo de manter o ndice atualizado num
ambiente dinmico assim, mais adequado para sistemas RI . Por outro lado, fcil
de implementar, rpido e suporta sinnimos. Este mtodo tem sido adotado em vrios
sistemas comerciais. Confira [16] para detalhes.

2.1.1.2 Mtodos Modernos


Os mtodos descritos at este ponto usam apenas uma poro limitada da informao
associada a um documento. Em alguns casos, isto no suficiente. Os mtodos
apresentados a seguir so considerados alguns dos mais recentes empregados na
filtragem de informao.

2.1.1.2.1 Indexao Semntica Latente (LSI)


O modelo de recuperao de informao com indexao semntica latente construdo
sobre a pesquisa anterior em recuperao de informao e, usando a decomposio de
valor singular (DVS) [64] para reduzir as dimenses do espao termo-documento, tenta
resolver problemas de sinonmia e polissemia (uma palavra que representa mais de um
significado) que so o grande problema dos sistemas de recuperao de informao
automticos. LSI representa explicitamente termos e documentos em um espao rico e
de dimensionalidade alta, permitindo que relacionamentos semnticos subentendidos
(latentes) entre termos e documentos sejam explorados durante a procura. LSI
depende dos termos que constituem um documento para sugerir o contedo semntico
do documento. Entretanto, o modelo LSI v os termos em um documento como
indicadores no muito confiveis de conceitos contidos no documento. Ele assume que
a variabilidade de escolha das palavras torna parcialmente obscura a estrutura semntica
do documento. Pela reduo da dimensionalidade do espao termo-documento, os
15

relacionamentos semnticos subentendidos entre documentos so revelados, e muito do


rudo (diferenas no uso das palavras, termos que no ajudam a distinguir
documentos, etc.) eliminado. LSI estatisticamente analisa os padres de uso das
palavras pela coleo de documentos inteira, colocando documentos com padres de
uso de palavras similares prximos uns dos outros no espao termo-documento e
permitindo que documentos semanticamente relacionados estejam prximos uns aos
outros, mesmo que eles possam no compartilhar termos [65].
LSI difere de tentativas anteriores de usar modelos de espao reduzido para recuperao
de informao de vrias maneiras. A mais notada que LSI representa documentos em
um espao de dimensionalidade alta. No exemplo apresentado em [66] foram usadas
apenas sete dimenses para representar o espao semntico. Em segundo, ambos termos
e documentos so explicitamente representados no mesmo espao. Em terceiro,
diferentemente de Borko e Bernick [67], nenhuma tentativa de interpretar o significado
de cada dimenso feita. Cada dimenso simplesmente assumida para representar um
ou mais relacionamentos semnticos no espao termo-documento. Finalmente, por
causa dos limites impostos, na maior parte, por exigncias computacionais de
abordagens de recuperao de informao do tipo espao-vetor, tentativas anteriores se
concentraram em colees de documentos relativamente pequenas. LSI capaz de
representar e manipular grandes conjuntos de dados, tornando-se vivel para aplicaes
do mundo real [68].
Comparada a outras tcnicas de recuperao de informao, LSI tem um desempenho
surpreendemente bom. Em um teste, Dumais [65] reportou que LSI fornece 30% a mais
de documentos relacionados que as tcnicas de recuperao padro baseadas em
palavras quando procurando na coleo MED. Em cinco colees de documentos
aproximadamente, o mesmo estudo indicou que LSI teve um desempenho 20% melhor
que tcnicas de recuperao lxicas. Alm disso, LSI totalmente automtica e fcil de
usar, no requerendo expresses complexas ou sintaxe para representar a query. Uma
vez que termos e documentos so representados explicitamente no espao, feedback de
relevncia [68] pode ser integrado com o modelo LSI sem problemas, fornecendo um
desempenho geral ainda melhor.

16

2.1.1.2.2 Mtodo Conexionista


Este mtodo usa uma rede neural onde cada n representa uma palavra-chave do
conjunto de documentos. Para efetuar uma consulta num conjunto de documentos, os
nveis de atividade dos ns de entrada so passados para um nvel especfico. Esta
atividade ento propagada para outra(s) camada(s) eventualmente chegando at a
camada mais externa na qual so apontados os documentos que atendem. No caso da
rede ser treinada adequadamente, este mtodo mostra bons resultados revelando sua
habilidade para manusear semntica (extrair radicais de palavras, e sinnimos)
adequadamente. Uma descrio mais detalhada apresentada em [23].

2.1.2

Filtragem de Informao (Information Filtering) ou FI

Sistemas de Filtragem de Informao lidam com grandes seqncias de documentos


novos, normalmente distribudos a partir de fontes remotas. Algumas vezes so
referidos como roteadores de documentos (document routing). O sistema mantm os
perfis de usurios que descrevem seus interesses a longo prazo. O perfil deve descrever
o que o usurio gosta ou no. Os documentos novos que no casam com o perfil do
usurio so removidos das seqncias que chegam. Como resultado, o usurio s v o
que deixado na sequncia depois que os documentos descasados foram removidos
um filtro de e-mails por exemplo remove lixo dos e-mails. A figura 2.3 mostra um
modelo geral para FI [9].

17

Seqncia de Documentos

Usurio/Grupo de usurios

Necessidade de informao
regular de longo prazo

Documentos Novos

Representao e
distribuio

Representao

Substitutos de textos

Perfis ou Profiles

Comparao/Matching

Documentos recuperados

Uso e/ou Feedback

Figura 2.3 Modelo geral de FI

O primeiro passo no uso de um sistema FI criar um perfil ou profile. Um perfil


representa as necessidades de informao de um usurio ou grupo de usurios, que se
percebe estvel por um longo perodo de tempo. Sempre que um novo documento
recebido na seqncia de dados, o sistema o representa com o substituto do texto e o
compara com cada perfil armazenado no sistema. Se o documento coincide com o
perfil, ele ser roteado para o usurio correspondente. O usurio pode ento usar os
documentos recebidos e/ou fornecer um retorno (feedback). O retorno fornecido pode
levar a modificaes no perfil e/ou necessidade de informao.
Os mtodos descritos para RI so tambm utilizados para FI. A maior parte desses
mtodos foi inicialmente desenvolvida visando RI . Com o advento da FI, os mtodos
de RI foram adaptados para se adequar s necessidades da FI. Alm disso, mais
pesquisa tem surgido nesta rea e isto resultou no desenvolvimento de mais mtodos
novos, que so correntemente usados em ambas as reas.

18

2.1.3

Recuperao de Informao e Filtragem de Informao:

Recuperao de Informao (RI) e Filtragem de Informao (FI) [9, 10, 17] so dois
processos que tem objetivos subentendidos equivalentes. Eles lidam com o problema de
procura de informao. Dada alguma necessidade de informao apresentada pelo
usurio de uma forma adequada, eles tentam devolver um conjunto de documentos que
satisfaam a necessidade.
A necessidade de informao representada via consultas ou queries em sistemas de RI
e via perfis ou profiles em sistemas FI. Nosso estudo destes processos focar apenas em
objetos como documentos que podem ser semi-estruturados, por exemplo e-mails, ou
no-estruturados embora isto possa ser aplicado, por exemplo, a objetos de multimdia
tambm. Na literatura, RI visto como um antecessor de FI. A razo para isto que RI
mais antigo e FI baseia vrios de seus fundamentos em RI . Muito da pesquisa feita
para RI tem sido usada e/ou adaptada para se adequar a FI. Apesar do fato que estes
dois processos so muito similares do ponto de vista de fundamentos, existem vrias
diferenas entre os dois que os tornam dois tpicos separados. Uma comparao entre
estes tpicos delineada a seguir:

Sistemas RI so desenvolvidos para tolerar algumas inadequaes na representao


da consulta ou query da necessidade da informao enquanto sistemas FI assumem
que perfis ou profiles so acurados.

Sistemas RI so normalmente usados uma vez por um usurio nico (por um


usurio de uma s query ou consulta [9]) enquanto sistemas FI so repetidamente
usados pelo mesmo usurio com algum profile.

Sistemas RI so desenvolvidos para servir aos usurios com necessidade de curto


prazo enquanto sistemas FI servem a usurios cujas necessidades so relativamente
estticas por um longo perodo de tempo.

Sistemas RI normalmente operam em colees estticas de documentos enquanto


sistemas FI lidam com dados dinmicos de seqncias de documentos.

O primeiro objetivo de RI coletar e organizar (ordenar de acordo com a


importncia) um conjunto de documentos que coincide com uma dada consulta,
enquanto o objetivo primrio da FI distribuir os novos documentos recebidos aos
usurios com perfis coincidentes.

19

Em FI, o fato de um documento chegar no tempo (ou ocasio) adequado de


grande importncia enquanto em RI isto no to importante.

A comparao acima entre FI e RI

reala as principais diferenas entre os dois em

relao a objetivos, uso, usurios e os tipos de dados que eles operam (esttico vs.
dinmico).
De forma a prover aos usurios com a informao requisitada, tanto sistemas RI quanto
FI devem representar a necessidade de informao consulta ou query e perfil ou profile
respectivamente) e o conjunto de documentos de uma maneira adequada comparao e
combinao. Algumas representaes correntemente usadas so: a representao
vetorial, redes neurais e redes semnticas [10]. O mecanismo de comparao usado para
combinar a necessidade de informao e de documentos depende da tcnica de
representao utilizada. Para melhorar a acurcia dos sistemas RI e FI, um mecanismo
de feedback de relevncia utilizado. Uma vez que apresentado ao usurio um
conjunto de documentos retornado por um sistema RI ou FI, as medidas de preciso ou
recall so calculadas. Preciso o percentual de documentos recuperados que so
relevantes consulta ou ao perfil. Ela calculada como o nmero de itens relevantes
recuperados divididos pelo nmero total de itens recuperados. O recall mede o
percentual de itens relevantes recuperados em relao ao nmero total de itens
relevantes no banco de dados. A grosso modo, estas duas medidas tm uma relao
inversa. Conforme o nmero de resultados retornados aumenta, a probabilidade de
retornar respostas erradas tambm aumenta.

2.2 Anlise dos Dados


O objetivo principal da anlise dos dados facilitar a identificao de similaridades de
significado entre as palavras, apesar de suas variaes morfolgicas. Essa situao
ocorre, por exemplo, pela variao de um mesmo termo assumindo diferentes sufixos,
que o caso do stemming. Uma outra situao contemplada pela anlise dos dados o
caso de palavras sinnimas: apesar de serem morfologicamente diferentes expressam a
mesma idia. As diferentes implementaes no necessariamente consideram todos os
passos apresentados a seguir para a anlise de dados.

20

2.2.1

Case Folding

Case Folding o processo de converter todos os caracteres de um documento no mesmo


tipo de letra ou todas maisculas ou minsculas. Isso tem a vantagem de acelerar
comparaes no processo de indexao.

2.2.2

Stop words

Um dos primeiros passos no processo de preparao dos dados a identificao do que


pode ser desconsiderado nos passos posteriores do processamento dos dados. a
tentativa de retirar tudo que no constitui conhecimento nos textos. Nesta etapa, uma
lista contendo palavras a serem descartadas formada. Este conjunto de palavras
chamado de Stop words (conhecido ainda como Stoplist).
Stop words so palavras que no tem contedo semntico significante no contexto em
que ela existe e so palavras consideradas no relevantes na anlise de textos.
Normalmente isso acontece por se tratarem de palavras auxiliares ou conectivas (e, para,
a, eles) e que no fornecem nenhuma informao discriminativa na expresso do
contedo dos textos. Na construo de uma lista de stop words incluem-se palavras
como preposies, pronomes, artigos e outras classes de palavras auxiliares.
Stop words tambm podem ser palavras que apresentam uma incidncia muito alta em
uma coleo de documentos. Stop words geralmente no so includas como termos
indexados.

2.2.3

Stemming

O processo de stemming realizado considerando cada palavra isoladamente e tentando


reduz-la a sua provvel palavra raiz. Isto tem a vantagem de eliminar sufixos,
indicando formas verbais e/ou plurais; entretanto, algoritmos de stemming empregam
lingustica e so dependentes do idioma.
Os algoritmos de stemming correntes no costumam usar informaes do contexto para
determinar o sentido correto de cada palavra, e realmente essa abordagem parece no
ajudar muito. Casos em que o contexto melhora o processo de stemming no so muito
freqentes, e a maioria das palavras pode ser considerada como apresentando um

21

significado nico. Os erros resultantes de uma anlise de sentido imprecisa das palavras,
em geral, no compensam os ganhos que possam ser obtidos pelo aumento de preciso
do processo de stemming.
Existem, porm, outros tipos de erros que devem ser observados e controlados durante a
execuo do stemming. Os erros mais comuns associados ao processo de stemming
podem ser divididos em dois grupos:
Overstemming: acontece quando a cadeia de caracteres removida no era um
sufixo, mas parte do stem. Isto pode resultar na conflao de termos norelacionados.
Understemming: acontece quando um sufixo no removido. Isto geralmente
causa uma falha na conflao de palavras relacionadas.

Alguns mtodos de stemming so apresentados a seguir, com o objetivo de mostrar as


diferentes abordagens utilizadas pelos algoritmos existentes. Estes mtodos foram
desenvolvidos para a lngua inglesa, embora sejam encontradas adaptaes de alguns
deles para diversos idiomas.

2.2.3.1 Mtodo do Stemmer S


Um mtodo de stemming simples o stemmer S [24], no qual apenas uns poucos finais
de palavras da lngua inglesa so removidos: ies, es, e s ( com excees). Embora
o stemmer S no descubra muitas variaes, alguns sistemas prticos o usam pois ele
conservador e raramente surpreende o usurio negativamente.

2.2.3.2 Mtodo de Porter


O processo de stemming de Porter [25] consiste da identificao das diferentes inflexes
referentes mesma palavra e sua substituio por um mesmo stem. A idia conseguir
agregar a importncia de um termo pela identificao de suas possveis variaes.
Termos com um stem comum usualmente tm significados similares, por exemplo:

22

CONSIDERAR
CONSIDERADO
CONSIDERAO
CONSIDERAES

Um outro ponto importante o aumento de desempenho de um sistema quando ocorre a


substituio de grupos de termos por seu stem. Isto acontece por causa da remoo dos
diferentes sufixos, -AR, -ADO, -AO, -AES, deixando apenas o radical comum
CONSIDER.
O algoritmo de Porter remove 60 sufixos diferentes em uma abordagem multi-fsica.
Cada fase remove sucessivamente sufixos e promove alguma transformao no stem.

2.2.3.3 Mtodo de Lovins


O mtodo de Lovins [26] um mtodo de um nico passo, sensvel ao contexto e que
usa um algoritmo da combinao mais longa para remover cerca de 250 sufixos
diferentes. Este mtodo remove no mximo um sufixo por palavra, retirando o sufixo
mais longo conectado palavra. O algoritmo foi desenvolvido a partir de um conjunto
exemplo de palavras na lngua inglesa, usadas para formar a lista de regras de Lovins.
Vrios sufixos no entanto no foram contemplados por esta lista. Mesmo assim, o
mais agressivo dos trs algoritmos de stemming.

2.2.4

Uso do Dicionrio ou Thesaurus

Um dicionrio pode ser definido como um vocabulrio controlado que representa


sinnimos, hierarquias e relacionamentos associativos entre termos para ajudar os
usurios a encontrar a informao de que eles precisam. Embora isto parea complexo,
apenas uma questo de se entender para que um thesaurus desenvolvido. O valor do
thesaurus vem justamente dos problemas inerentes procura e indexao da linguagem
natural. Usurios diferentes definem a mesma query usando termos diferentes. Para
resolver este problema, um thesaurus mapeia termos variantes sinnimos, abreviaes,
acrnimos, e ortografias alternativas para um termo preferido nico para cada
conceito. Para processos de indexao de documentos, o thesaurus informa que termos

23

ndices devem ser usados para descrever cada conceito. Isto refora a consistncia da
indexao.
Um thesaurus pode tambm representar a riqueza dos relacionamentos associativos e
hierrquicos [1]. Usurios podem expressar a necessidade de informao com um nvel
de especificidade mais restrito ou mais amplo que o usado pelo indexador para
descrever os documentos. O mapeamento de relacionamentos hierrquicos endeream
este problema.

2.2.4.1 Termos Compostos


Alm de considerar termos simples, existem Thesaurus que consideram a utilizao de
termos compostos nos casos de palavras que aparecem sempre juntas. O uso de
descritores consistindo de mais de uma palavra so aceitveis, no entanto, somente se o
termo composto expressa um conceito nico expresso pela associao dos termos
considerados. So palavras que quando se renem apresentam um significado diferente
que cada uma delas tem separadamente.

2.2.4.2 Relacionamentos entre termos


Relacionamentos como os mostrados a seguir podem ser encontrados em um thesaurus:

Relacionamento de Equivalncia

Relacionamento de Hierarquia

Relacionamento de Associao

Relacionamento

Indicador

Equivalncia

Sinnimos

Hierarquia

Termo Amplo
Termo Restrito

Associao

Termo Relacionado

Tabela 2.1. Tabela de Relacionamentos de um Thesaurus

24

O relacionamento hierrquico a primeira caracterstica que distingue um thesaurus de


uma lista de termos no estruturada, como um glossrio. Ele baseado em graus ou
nveis de super ou subordenao. O descritor superordenado representa uma classe ou
um todo; o descritor subordenado refere-se aos membros ou partes de uma classe. No
thesaurus, relacionamentos hierrquicos so expressados pelas seguintes notaes:

Termo Amplo (Broader Term) = rtulo para o descritor superordenado


Termo Restrito (Narrower Term) = rtulo para o descritor subordenado

O relacionamento hierrquico cobre trs situaes logicamente diferentes e mutuamente


exclusivas: a) o relacionamento genrico, b) o relacionamento modelo, c) o
relacionamento todo-parte. Cada descritor subordenado deve se referir ao mesmo tipo
de conceito que o seu descritor superordenado, isto , ambos os termos amplo e restrito
devem representar um objeto, uma ao, uma propriedade, etc.

O relacionamento genrico identifica a ligao entre a classe e seus membros ou


espcies. Neste tipo de relacionamento a seguinte afirmao sempre pode ser aplicada:
[termo restrito] um [termo amplo].

O relacionamento modelo identifica a ligao entre uma categoria genrica de coisas ou


eventos, expressos por um nome comum, e um modelo individual daquela categoria,
freqentemente um nome prprio.

O relacionamento todo-parte cobre situaes nas quais um conceito includo por


herana em outro, independentemente do contexto, de forma que os descritores podem
ser organizados em hierarquias lgicas, com o todo sendo tratado como um termo
amplo. Alguns exemplos seriam orgos do corpo, sistemas ou pontos geogrficos.

2.2.5

Transformao dos Dados

Uma das formas mais comuns de utilizao dos dados provenientes dos textos a sua
converso em tabelas. Este formato permite a aplicao de diversas tcnicas
desenvolvidas para dados estruturados.

25

2.2.5.1 Converso em Tabelas


Aps a eliminao da lista de stopwords, utilizao do Thesaurus e execuo do
processo de Stemming, obtm-se um conjunto de dados reduzido em relao ao original,
formado pelos termos restantes e que podem, ento, ser analisados. Este tipo de
representao conhecido como bag of words e pode ser facilmente convertido em
tabelas.

Embora,

esse

processo

de

converso

seja

praticamente

imediato,

dimensionalidade do conjunto resultante de atributos freqentemente bastante alta,


pois cada termo que no foi eliminado ou aglutinado, transformado em um atributo.
Uma coleo de documentos representada da seguinte forma: cada clula expressa a
relao termo-documento do tipo term k-dj. Esta relao dada por um peso ajk,como
mostrado na tabela 2.2.

Tabela 2.2. Tabela de converso dos termos em atributos

2.3 Processamento dos Dados Tarefas de Text Mining


A maior parte dos problemas com o manuseio de textos est relacionada busca da
representao adequada, ou um modelo para os dados disponveis usando os recursos
existentes com um tempo limitado, de forma que o desempenho subseqente do modelo
atenda aos critrios de qualidade e eficincia.
Na etapa de processamento dos dados, os objetivos do processo de text mining devem
ser definidos para que as tarefas cabveis possam ser executadas. Existem vrias tarefas
que podem fazer parte do processo de extrao de conhecimento em textos.
Cada tipo de tarefa extrai um tipo diferente de informao dos textos. O Processo de
Agrupamento ou Clustering torna explcito o relacionamento entre documentos,
26

enquanto a categorizao identifica os tpicos-chave de um documento. A extrao de


caractersticas usada quando se precisa conhecer pessoas, lugares, organizaes e
objetos mencionados no texto. A sumarizao estende o princpio de extrao de
caractersticas concentrando-se mais em sentenas inteiras que em nomes ou frases. A
Indexao temtica til quando se quer ser capaz de trabalhar preferencialmente com
tpicos que com palavras-chave. Algumas tarefas utilizadas usualmente pelo Text
mining so descritas a seguir.

2.3.1

Indexao

A indexao permite que se procure eficientemente em textos por documentos


relevantes a uma query sem precisar examinar os documentos inteiros. Nesta forma, a
indexao de textos similar s indexaes de bancos de dados convencionais, que
permitem que se evite escanear tabelas inteiras para a recuperao eficiente de linhas de
dados.

Os tipos mais comuns de indexao so a indexao do texto completo e a

indexao temtica. Existem ainda a indexao tradicional, a indexao por tags, a


indexao semntica latente e a indexao por listas invertidas.

2.3.1.1 Indexao do Texto Completo

A indexao do texto completo ocorre automaticamente em vrias ferramentas de


anlise de textos quando os documentos so carregados. ndices normalmente guardam
informao sobre a localizao dos termos dentro do texto, de forma que operadores de
proximidade, assim como operadores booleanos possam ser utilizados em queries no
texto completo. Os operadores mais comuns em queries de texto so:
-

Operadores Booleanos: and, or, not

Operadores de Proximidade: near, within

A indexao suporta operadores booleanos, permitindo que estas operaes sejam


executadas nos ndices sem a procura no documento completo. Assim, os operadores
podem ser utilizados de forma rpida e eficiente mesmo para grandes colees de
textos. Uma vez que os ndices mantm informaes sobre a posio das palavras dentro
de um texto, operadores de proximidade podem tambm fazer uso desses ndices.
27

2.3.1.2 Indexao Temtica

A indexao temtica depende do uso do dicionrio. O Thesaurus um conjunto de


termos que define um vocabulrio e montado usando relacionamentos. Ele fornece
uma estrutura hierrquica que permite s ferramentas de text mining encontrar
rapidamente generalizaes assim com especializaes de termos especficos como
mostrado na figura 2.4.

Figura 2.4 Utilizao do thesaurus na indexao temtica

A estrutura de thesaurus mais comumente utilizada para indexao temtica consiste de


quatro componentes principais:
-

Thesaurus

Termo indexador

Termo preferido

Termo no-preferido

Termos indexadores ou so uma palavra simples ou um termo composto representando


um conceito no thesaurus. Termos preferidos so os termos usados quando se indexa
conceitos. Termos preferidos so organizados hierarquicamente. Os termos no-

28

preferidos so ligados estrutura hierrquica por sua referncia ao termo preferido.


Termos preferidos esto relacionados uns aos outros por relaes que definem a
hierarquia.

2.3.1.3 Indexao Semntica Latente


Procuras regulares por palavras-chave aproximam uma coleo de documentos da
seguinte forma: um documento contm uma palavra dada ou no, sem meio termo. Criase um conjunto de resultados olhando em cada documento procurando por certas
palavras e frases, descartando quaisquer documentos que no os contenha, e ordenando
o resto baseado em algum sistema de ordenao. Cada documento julgado sozinho
pelo algoritmo de procura no existe interdependncia de qualquer tipo entre
documentos, que so avaliados apenas por seus contedos.
Relacionamentos entre palavras podem ser deduzidos de seus padres de ocorrncias
nos documentos. Esta noo utilizada em um mtodo chamado Indexao Semntica
Latente (LSI) [54] que aplica a decomposio de valor singular (DVS) matriz
documento-por-palavra para obter uma projeo de ambos, documentos e palavras, num
espao referenciado como o espao latente. A indexao semntica latente adiciona um
passo importante ao processo de indexao de documentos. Alm de registrar que
palavras-chave um documento contm, o mtodo examina a coleo de documentos
como um todo, para ver que outros documentos contm algumas daquelas mesmas
palavras. LSI considera documentos que tem as mesmas palavras em comum como
sendo semanticamente prximos, aqueles com poucas palavras em comum como sendo
semanticamente distantes. Este mtodo simples se correlaciona surpreendentemente
bem com a forma com que o ser humano, olhando para o contedo, poderia classificar
uma coleo de documentos. Embora o algoritmo LSI no entenda nada sobre o que as
palavras significam, os padres que ele percebe podem fazer com que ele parea
espantosamente inteligente. Quando se procura uma base de dados indexada-LSI, o
mecanismo de busca verifica os valores de similaridade que ele calculou para cada
palavra do contedo, e retorna os documentos que ele pensa que melhor se adequam
consulta. Dois documentos podem ser semanticamente muito prximos mesmo que eles
no compartilhem uma palavra especfica, porque LSI no requer uma comparao para
retornar resultados teis. Em situaes em que uma procura simples de palavra falhar

29

se no houver uma correspondncia perfeita, LSI freqentemente retornar documentos


relevantes que no contm a palavra indicada.
Os algoritmos originais LSI tem uma complexidade computacional alta, O(N 3 ), o que
problemtico para o uso com grandes conjuntos de dados. A complexidade
computacional do LSI conhecida como (nld ) ,onde n o nmero de documentos, l
o nmero mdio de palavras diferentes em cada documento, e d a dimensionalidade
resultante.

2.3.1.4 Indexao por Tags

Na indexao por tags, algumas partes do texto so selecionadas automaticamente para


fazer parte do ndice. Para a indexao por tags, normalmente adota-se o uso de
gramticas parsers e expresses regulares para a definio e reconhecimento das tags.
As palavras-chave so extradas com base nestas tags.

2.3.1.5 Indexao por Listas ou Arquivos Invertidos


Uma outra tcnica bem conhecida e utilizada para indexar arquivos em forma de texto
so as listas ou arquivos invertidos [28,29]. Um arquivo invertido contm, para cada
termo que aparece no banco de dados, uma lista contendo os nmeros dos documentos
contendo aquele termo. Para processar uma consulta ou query, um vocabulrio usado
para mapear cada termo da query para o endereo da lista invertida; as listas invertidas
so lidas a partir do disco; e as listas so mescladas, considerando a interseo dos
conjuntos de nmeros de documentos em operaes AND, a unio em operaes OR, e
o complemento em operaes NOT. As listas invertidas de maneira geral apresentam
bom desempenho para procuras de palavras-chave nicas (logartmico em relao ao
tamanho do banco de dados, o que realmente significa poucos acessos a disco por
procura) mas seu desempenho rapidamente degrada quando o tamanho da consulta
aumenta. As consultas podem conter vrios termos indexados.
Algumas melhorias foram acrescentadas ao mtodo das listas invertidas. So as
chamadas listas invertidas comprimidas [31,32,33,34] que aumentaram o desempenho
significativamente em termos de requisitos de armazenagem em relao s listas
originais.

30

2.3.2

Extrao de Informao

A Extrao de Informao (EI) uma rea de pesquisa que conjuga text mining e
processamento de linguagem natural (PLN). EI o processo de extrair informao prdefinida sobre objetos e relacionamentos entre eles a partir de documentos textuais.
Normalmente esta informao armazenada em modelos. Em geral, os dois objetivos
da EI so:

dividir um documento em partes relevantes e irrelevantes, e

preencher modelos pr-definidos com informao extrada.

2.3.2.1 Aplicaes de Extrao de Informao


Tarefas de EI simples, como extrair nomes prprios e de companhias a partir de textos,
podem ser executadas com alta preciso, diferentemente de tarefas mais complexas,
como determinar a sequncia de eventos a partir de um documento. Em tais tarefas
complexas, geralmente, sistemas de EI so definidos em um domnio muito restrito e
transformar o sistema de um domnio para outro exige muito trabalho e requer suporte
de especialistas. Sistemas de EI escaneiam uma coleo de documentos de forma a
transform-la em pedaos bem menores de informaes relevantes extradas que so
fceis de serem apreendidas.
Algumas aplicaes de EI comuns incluem:

o Preencher modelos (templates) com informao extrada. Esses modelos so ento


guardados em ambientes estruturados tais como bancos de dados para recuperao
de informao rpida mais tarde. Referir-se a [40] para alguns exemplos de sistemas
de peenchimento de modelos.
o Responder questes pr-definidas como Onde fica o Lbano? Esta uma variao
de preenchimento do modelo mas ainda uma rea no muito avanada, de forma
que no se pode responder questes tais como Que pas teve a inflao mais baixa
em 1999?; entretanto, alguns sistemas poderiam ser capazes de apontar ao usurio
alguns documentos que discutam a questo considerada. O sistema BORIS (1983)

31

um sistema EI pergunta-resposta que tenta entender pequenos documentos


especficos de um domnio e responder as questes sobre eles.
o A sumarizao de documentos em extraes que so resumos feitos por mquina so
totalmente diferentes de resumos feitos pelo homem. Normalmente, extrai-se um
grupo de sentenas altamente relevantes e as apresenta como um resumo. Alguns
sistemas para esta finalidade so descritos em [40].
o Extrair os termos mais importantes a partir de um conjunto de documentos de forma
que estes termos extrados possam ser utilizados para a indexao eficiente de
documentos como o oposto a usar todos os termos dos documentos para index-los.
Isto especialmente til em sistemas RI e FI.

2.3.2.2 Construindo um sistema EI


Duas abordagens bsicas para a construo de sistemas EI podem ser citadas:
abordagem da engenharia do conhecimento e abordagem do treinamento automtico.

o Abordagem da engenharia do conhecimento: engenharia do conhecimento o


processo de construir sistemas usando a abordagem de tentativa e erro. Um
engenheiro de conhecimento responsvel por construir um sistema e modific-lo
depois de consultar um especialista que tenha conhecimento sobre o domnio onde o
sistema construdo. Isto normalmente um processo interativo onde o engenheiro
de conhecimento extrai um conjunto de regras que so executadas sobre um
conjunto de dados de treinamento. A sada ento examinada e as regras que
compem o sistema so modificadas de acordo. Esta abordagem referida como
baseada no conhecimento humano (human-based approach) e tem a vantagem de
incorporar os mais bem sucedidos sistemas EI desenvolvidos at o presente estudo.
Entretanto, ele apresenta problemas como:

tedioso ciclo testar-e-depurar,

interveno direta do trabalho e das habilidades humanas,

dependncia dos recursos lingsticos.

Resumindo, a abordagem da engenharia de conhecimento requer gramticas


construdas mo e padres no domnio para serem descobertos pelos especialistas
pela inspeo da sada de algumas amostras de treinamento. Veja [35] para mais
detalhes.

32

o Abordagem

do

treinamento

automtico:

Uma

pessoa

que

tenha

bom

conhecimento do domnio e das tarefas de EI requeridas faz as anotaes no


conjunto de documentos sob considerao para a informao a ser extrada. Por
exemplo, os documentos usados por um sistema EI para reconhecimento de nomes
tem todos os nomes prprios relevantes no domnio anotados. Depois da anotao,
alguns algoritmos so executados no conjunto de documentos considerados para
retirar informao que possa ser empregada por um sistema EI quando aplicado a
novas colees. Esta informao pode ser considerada como uma gramtica feita
mo na abordagem da engenharia de conhecimento. Claramente, esta abordagem
tem a vantagem de requerer muito menos interveno humana. No so necessrias
regras pr-definidas; apenas informao extrada a partir do conjunto de treinamento
usada. Veja [35] para mais detalhes.

2.3.2.3 Componentes de um sistema EI


Embora sistemas EI variem em arquitetura, a maior parte deles compartilham uma base
comum de componentes. Estes componentes so resumidos na figura 2.5 e descritos
suscintamente a seguir.

33

Text Zoning
and Filtering
Pr-processamento
Tokenization

Tagging
Processamento lxico e
Morfolgico
Lexical look-up

Anlise Sinttica

Parsing completo

Co-referncia
Anlise de domnio
Mesclando resultados
parciais

Figura 2.5 Componentes Principais em um sistema EI

O processo envolve tokenization, zoneamento de textos, e filtragem de textos.


Tokenization a parte onde se divide o texto em sentenas, pargrafos, palavras, etc.
Zoneamento de textos o processo de anlise de texto (parsing), separando em
segmentos de regies formatadas e no formatadas. A filtragem de textos o processo
de ignorar informao no relevante. Usualmente, tcnicas estatsticas so empregadas
para decidir sobre a relevncia de uma informao fornecida dentro de regies do texto.
Processamento Lxico e Morfolgico incluem derivao/lookup, part of speech tagging
e semantic tagging. Lexical lookup o processo de construir um lxico para identificar
o que exatamente se est procurando. Geralmente, lxicos incluem termos especficos
de todos os domnios e incorporam uma parte envolvendo o idioma, mas no devem ser
muito grandes. Part of speech tagging usada para encontrar unidades frasais, mas
pode no ser necessria para todas as aplicaes de EI. Semantic Tagging ou word sense
tagging o processo de encontrar unidades frasais de nomes, como pessoas ou
corporaes que podem ser de interesse. Por exemplo, pode-se usar letras maisculas
como indicativos para nomes prprios. Depois de dividir o texto em regies

34

(usualmente sentenas) e definir um lxico, a anlise semntica feita. Isto inclui


anlise ou parsing, onde sentenas so divididas em unidades presentes no lxico
atravs de parse trees. S se realiza essa anlise ou parsing em sentenas que poderiam
conter informao valiosa. Em alguns sistemas, parsing envolve somente termos
dependentes de domnio onde se tenta localizar somente padres que esto dentro da
sentena. A anlise do domnio envolve co-referncia e fuso dos resultados parciais.
Co-referncia simplesmente o processo de unificar todas as unidades que referenciam
a mesma entidade semntica. Entidades relevantes poderiam ser referenciadas de
mltiplas formas, vrias vezes. Por exemplo,

International Business Machines,

IBM, e Big Blue so todas referncias mesma entidade. Isto mostra o caminho a
um nvel mais alto de fuso, fundindo resultados parciais, onde toda a informao
pertencendo mesma entidade de informao fundida para produzir uma sada parcial.
Veja [35] para mais detalhes.

2.3.3

Extrao de Caractersticas

Mtodos de extrao de caractersticas so usualmente decompostos em dois passos


distintos [36]:
-

a extrao de termos pode ocorrer nas bases da informao lingstica


estruturada.

a seleo de termos pode ocorrer nas bases de alguma mtrica estatstica, como a
freqncia, informao mtua, coeficiente 2 , etc.

2.3.3.1 Informao Lingustica definido importncia


Neste primeiro passo, a extrao de caractersticas tenta identificar nomes, e em alguns
casos pode at determinar se o nome uma pessoa, um lugar, uma empresa, ou outro
objeto. Algoritmos de extrao de caractersticas podem usar dicionrios ou thesaurus
para identificar alguns termos, e padres lingsticos para detectar outros. O nome de
uma empresa, por exemplo, pode no estar no dicionrio, mas um programa de extrao
de caractersticas poderia ser capaz de determinar que ele um nome e provavelmente
um termo significativo.

35

A extrao de termos pela utilizao de padres lingusticos pode ser realizada a partir
de padres morfo-sintticos pr-definidos, como por exemplo:
-

Nome Prep Nome: cargo de gerente, pista de dana, etc.

Nome Adjetivo: gua gelada, taxa mensal, etc.

Pode-se empregar ainda algoritmos de reconhecimento de padro que costumam utilizar


uma tcnica chamada Hidden Markov Models (HMM) [37]. Esses modelos podem ser
treinados para detectar padres numa seqncia de objetos. Por exemplo, um nome,
seguido por um verbo , freqentemente seguido por outro nome. Treinados com
exemplos suficientes, os algoritmos HMM podem aprender um grande nmero de
padres com uma exatido bem alta.

2.3.3.2 Mtrica Definidoras de Importncia


Alguns mtodos so mostrados a seguir, cada um deles empregando um critrio de
limite para importncia do termo de forma a alcanar o grau desejado de eliminao de
termos a partir do vocabulrio total do documento.

2.3.3.2.1 Freqncia de Documentos - Document Frequency (DF)


Freqncia de documentos o nmero de documentos no qual um termo ocorre. A idia
deste mtodo o clculo da freqncia de cada termo e a remoo do espao das
caractersticas daqueles termos cuja freqncia de documentos inferior a um limite
determinado. A suposio bsica a de que termos raros ou so no-informativos para
predizer a categoria ou no influenciam o desempenho global. Em qualquer dos casos, a
remoo de termos raros reduz a dimensionalidade do espao de caractersticas.
Freqncia de documentos a tcnica mais simples de reduo de termos.

Ela

facilmente escalvel para conjuntos bem maiores de textos com uma complexidade
computacional aproximadamente linear em relao ao nmero de documentos.

2.3.3.2.2 Ganho de Informao


Ganho de Informao freqentemente empregado como um critrio de importncia do
termo no campo do aprendizado de mquina [38]. Ele mede o nmero de partes de
informao obtidas para predio da categoria, pela presena ou ausncia de um termo
36

em um documento. Dado um conjunto de documentos, o ganho de informao


calculado para cada termo, e os termos cujos ganhos de informao so menores que um
determinado limite so retirados do espao das caractersticas. Este clculo inclui as
estimativas das probabilidades condicionais de uma categoria dado um termo,

e o

clculo da entropia na definio. A estimativa da probabilidade tem uma complexidade


de tempo de O(N) e uma complexidade de espao de O (V N) onde N o nmero de
documentos e V o tamanho do vocabulrio. O clculo da entropia tem uma
complexidade de tempo de O (V m) onde m o dimensionalidade do espao das
categorias.

2.3.3.2.3 Informao Mtua


Informao mtua um critrio comumente usado em modelagem estatstica da
linguagem em associaes de palavras e aplicaes correlatas [39]. Considerando-se
uma tabela de contingncias de um termo t e uma categoria c, A o nmero de vezes em
que t e c co-ocorrem, B o nmero de vezes em que t ocorre sem c, C o nmero de
vezes em que c ocorre sem t, e N o nmero total de documentos, ento o critrio de
informao mtua entre t e c definido como:

I (t , c) = log

Pr ( t c )
Pr (t ) Pr ( c)

Equao 2.3

e estimada usando-se:

I (t , c )

log A N
( A + C)( A + B)

Equao 2.4

I(t,c) tem naturalmente o valor de zero se t e c so independentes. Para medir a


importncia de um termo em uma seleo de caractersticas global, combinam-se as
pontuaes especficas da categoria de um termo em duas formas alternativas:

I avg ( t ) = Pr ( ci ) I (t , ci )

Equao 2.5

i =1

37

I max (t ) = max {I (t , c i )}

Equao 2.6

i =1

O clculo da Informao Mtua tem uma complexidade de O(Vm), similarmente ao


clculo do Ganho de informao.

Uma deficincia da Informao Mtua que a pontuao fortemente influenciada


pelas probabilidades marginais dos termos, como pode ser visto nesta forma
equivalente:

I (t , c ) = log Pr (t c ) log Pr (t )

Equao 2.7

Para termos com uma probabilidade igual a Pr(t|c), poucos termos vo ter uma
pontuao maior que termos comuns. Desta forma, no se pode comparar pontuaes
entre termos de freqncia muito diferente.

Os filtros de seleo atuais consistem de combinaes de diferentes mtricas associadas


cujos limites so definidos experimentalmente.
2.3.3.2.4 Estatstica X2
A estatstica X2 mede a falta de dependncia entre t e c e pode ser comparada
distribuio X2 com um grau de liberdade para julgar extremos. Usando uma tabela de
contingncias de um termo t e uma categoria c, onde A o nmero de vezes que t e c
co-ocorrem, B o nmero de vezes que t ocorre sem c, e C o nmero de vezes que c
ocorre sem t, D o nmero de vezes que nem c nem t ocorrem, e N o nmero total de
documentos, a medida de importncia definida por:

2 (t , c) =

N ( AD CB) 2
( A + C ) ( B + D) ( A + B) (C + D)

Equao 2.8

A estatstica X2 tem naturalmente um valor igual a zero se t e c so independentes.


Calcula-se para cada categoria a estatstica X2 entre cada termo no conjunto de

38

documentos e aquela categoria, e ento combina-se as pontuaes especficas da


categoria para cada termo na medida:

avg (t ) = Pr ( ci ) ( t , ci )
2

Equao 2.9

i =1

2.3.4

Sumarizao

o processo da reduo da quantidade de texto em um documento, porm mantendo


seus significados-chave [41].

2.3.4.1 Sumarizao por Abstrao


Este tipo de sumarizao tenta trabalhar da mesma forma em que o ser humano resume,
ou seja, pela determinao do significado e posterior escrita em um pequeno
documento, enfatizando as idias principais do texto original. Pesquisadores de
Inteligncia Artificial fizeram algumas incurses nesta rea, mas a criao de resumos
por abstrao no uma opo prtica hoje.

2.3.4.2 Sumarizao por Extrao


A Sumarizao indireta no usa padres como aqueles encontrados na extrao de
caractersticas. Ao invs disso, sentenas inteiras ou pargrafos so copiados do
documento original numa tentativa de construir um texto menor que ainda conserve as
idias-chave do documento original. Isto chamado de sumarizao por extrao.
A sumarizao por extrao baseada na medida da importncia relativa das palavras
em um documento. Palavras como as stopwords, mesmo ocorrendo freqentemente, no
ajudam na distino do significados dos textos e so ignoradas.

Outras palavras so

analisadas para identificar seus stems, e a freqncia destes stems so um indicativo de


sua importncia, uma vez que todas as variaes de uma palavra so substitudas pelo
mesmo stem e computadas como se fossem a mesma. Enquanto um contador simples de
stems de palavras pode trabalhar bem em alguns casos, outras pistas esto
freqentemente disponveis e so utilizadas para melhorar o processo.

39

2.3.4.2.1 Extrao Automtica de Resumos


A extrao automtica de resumos, tipicamente baseada na extrao de sentenas
importantes a partir dos textos.
Pesquisadores tendem a concentrar seus esforos na extrao de sentenas mais
importantes, levando em conta alguns quesitos como:
-

a posio de uma sentena dentro do documento ou pargrafo

presena

de

palavras-chave

expresses

tais

como

importante,

definitivamente, em particular (todas positivas), e talvez, por exemplo


(todas negativas)
-

a presena de construes indicativas tais como A finalidade dessa pesquisa


e Nossa investigao mostrou que

o nmero de links semnticos entre uma sentena e seus vizinhos

Os mtodos acima de extrao de resumos so freqentemente referenciados como


procedimentos de extrao.

2.3.5

Categorizao

A categorizao, em Text mining, visa identificar os tpicos principais em um


documento e associar este documento a uma ou mais categorias pr-definidas [42].
Existem duas maneiras de criar as categorias. A primeira a criao de um thesaurus
para definir o conjunto de termos especficos para cada domnio e a relao entre eles
[43]. A estrutura do thesaurus, com as relaes pertinentes esto apresentadas na seo
2.2.4. As categorias podem assim ser criadas, baseando-se na freqncia das palavras
especficas de cada domnio que esto no texto. Uma outra forma seria treinar uma
ferramenta de categorizao com um conjunto de documentos amostrais, como
mostrado na figura 2.6. Um conjunto de exemplos representando cada categoria
apresentado ferramenta que, ento, analisa estatisticamente modelos lingsticos, tais
como afinidades lxicas e freqncias de palavras, para produzir uma assinatura
estatstica para cada categoria. O categorizador aplica as assinaturas estatsticas a
documentos para encontrar os candidatos mais parecidos. A maior vantagem desta
abordagem que o processo trabalhoso de montar um thesaurus evitado.

40

Figura 2.6 Processo de Categorizao

Os vrios algoritmos de categorizao de documentos que tm sido desenvolvidos


dividem-se em duas categorias gerais. A primeira categoria contm algoritmos de
aprendizado de mquina [45] tais como rvores de deciso, conjuntos de regras,
classificadores baseados em exemplos, classificadores probabilsticos, support vector
machines, etc., que tem sido ou usados diretamente, ou adaptados para uso no contexto
de dados em forma de documentos. A segunda categoria contm algoritmos de
categorizao especializados desenvolvidos a partir da rea de recuperao de
informao.

Exemplos

de

tais

algoritmos

incluem

feedback

de

relevncia,

classificadores lineares, classificadores de conjuntos de exemplos genricos, etc.


As categorias so escolhidas para corresponder aos tpicos ou temas dos documentos. O
principal objetivo da categorizao de textos a organizao automtica. Alguns
sistemas de categorizao (ou categorizadores) retornam uma nica categoria para cada
documento enquanto outros retornam categorias mltiplas. Em ambos os casos, um
categorizador

pode

retornar

nenhuma

categoria

ou

algumas

categorias

com

confiabilidade muito baixa; nesses casos, o documento normalmente associado a uma


categoria rotulada como desconhecida para posterior classificao manual.
O incio da categorizao de textos basicamente foi guiada pela engenharia do
conhecimento. Dado um conjunto de categorias pr-definidas, um conjunto de regras
definido manualmente para cada categoria por especialistas. Essas regras especificam
condies que um documento deve satisfazer para pertencer categoria correspondente.
Nos anos 90, o aprendizado de mquina comeou a ficar popular e assumir o processo
41

de categorizao. A categorizao por aprendizado de mquina provou ser to acurada


como a categorizao dirigida por especialistas, ao mesmo tempo ela mais rpida e
no requer especialistas. Neste estudo, est sendo considerada apenas a categorizao
por aprendizado de mquina. Veja [46] para uma descrio completa sobre
categorizao de textos.

2.3.5.1 Categorizao de rtulo simples vs categorizao multi-rtulo


A categorizao de rtulo simples associa cada documento a uma e apenas uma
categoria; por outro lado, a categorizao multi-rtulo retorna um conjunto de k onde
k pr-definida categorias s quais um documento pode pertencer. No primeiro caso,
tm-se categorias no superpostas. Vrias aplicaes usam um caso especial do primeiro
caso chamado caso binrio onde se tem duas categorias complementares; um
documento pode pertencer a apenas uma dessas categorias [46].

2.3.5.2 Categorizao por pivotamento de categoria vs pivotamento de documento


A categorizao por pivotamento de categoria (CPC) encontra todos os documentos que
podem ser arquivados sob uma categoria especfica. Por outro lado, a categorizao por
pivotamento de documento (CPD) encontra todas as categorias sob as quais um certo
documento pode ser arquivado. CPD usado em aplicaes onde os documentos vem
como uma sequncia (isto , no disponvel ao mesmo tempo). Um exemplo a
filtragem de e-mail onde um novo e-mail recebido associado a uma categoria
especfica.

CPC

usado

quando

novas

categorias

podem

ser

adicionadas

dinamicamente porque um conjunto de documentos no parece ser classificado sob


qualquer das categorias dadas. CPD o mais popular.

2.3.5.3 Categorizao rgida (hard) vs ordenao


Dado um documento d para ser classificado, a categorizao por ordenao retorna uma
lista ordenada de categorias contendo todas as categorias de tal forma que categorias
com maiores probabilidades de conter d so colocadas no topo da lista.

Essa lista

poderia servir como uma forma de adicionar conhecimento do especialista na


classificao porque apenas categorias no topo da lista sero consideradas. Uma
variao disso poderia ser quando dada uma categoria c e o sistema retorna uma lista
42

ordenada contendo todos os documentos de tal forma que documentos no topo da lista
tem maiores probabilidades de pertencer a c. O primeiro o caso referido como ranking
de categoria e o ltimo como ranking de documentos. A categorizao por ranking
referida como categorizao semi automtica e usada em aplicaes onde a exatido
do classificador muito crtica e os resultados de um sistema totalmente automatizado
comprovaram ser significativamente menos acurados que aqueles com expertise
humano.
A categorizao rgida o processo de retornar uma nica categoria, dado um
documento. A categorizao rgida totalmente automatizada e mais comum.

2.3.5.4 Aplicaes em Categorizao de Texto


Aplicaes em Categorizao de Texto (CT) datam dos anos 60. A Categorizao de
Texto se expandiu de outras reas como Recuperao de Informao e Filtragem de
Informao at que se tornou uma rea de pesquisa prpria nos anos 80. A seguir, um
resumo das maiores reas de aplicao em CT apresentado:

o Indexao Automtica para Sistemas RI : Cada documento que dado


representado por um conjunto de palavras e/ou frases que descrevem seu
contedo. Os termos selecionados so retirados de um grupo de termos chamado
de dicionrio de controle. A criao de tal dicionrio feita utilizando
conhecimento humano e muito cara. As aplicaes geralmente definem dois
nmeros U e L de tal forma que a cada documento associado um nmero de
termos entre U e L isto , L < n < U. A categorizao por pivotamento de
documentos (explicada anteriormente) muito comum em tais aplicaes. Veja
[47] para um exemplo de tais aplicaes.

o Organizao de Documentos: A aplicao de Categorizao de Texto


envolvendo organizao de documentos tipicamente associa um documento a
uma ou mais categorias com o objetivo de organizar esses documentos sendo
eles de uso pessoal ou corporativo. Por exemplo, jornais recebem um nmero de
anncios todo dia e se beneficiariam muito com um sistema automtico que
pudesse associar esses anncios s suas categorias correspondentes (Imveis,

43

Autos, etc.). Uma finalidade importante para a organizao de documentos


facilitar o processo de busca. Veja [48] para exemplos.

o Filtragem de Textos: Aplicaes de Categorizao de Texto so usadas em um


nvel mais alto no campo da Filtragem de Informao onde uma sequncia de
documentos pode ser direcionada para um usurio especfico ou filtrada,
tomando como base os perfis dos usurios que expressam os interesses dos
usurios. A fonte dos documentos referida como produtora e o usurio como
consumidor. Para cada consumidor, o sistema bloqueia a entrega de qualquer dos
documentos da sequncia em que o consumidor no esteja interessado. O
sistema usa o perfil do usurio para categorizar o documento como interessante
ou no para o usurio. O categorizador binrio de rtulo simples usado para
categorizao de textos as duas categorias so: relevante e irrelevante. O
sistema poderia ser melhorado tambm no sentido de classificar todos os
documentos direcionados, isto , nem bloqueados nem filtrados em um
conjunto de categorias pr-definidas como a organizao de documentos. Um
exemplo poderia ser um filtro de e-mails que bloqueasse mensagens indesejadas
e organizasse as recebidas nas categorias definidas pelo usurio como mostra
[49]. Em qualquer caso, o filtro pode estar situado no lado do produtor onde ele
roteia documentos para todos os consumidores no-bloqueados, ou ele pode
estar situado no lado do consumidor onde ele bloqueia documentos indesejados.

o Word Sense Disambiguation (WSD): o processo pelo qual um sistema capaz


de encontrar o sentido de uma palavra ambgua, ou seja que tenha mais de um
significado, baseada em sua ocorrncia no texto. Por exemplo, a palavra classe
poderia significar um lugar onde os estudantes estudam, ou uma categoria, dado
um texto contendo esta palavra, uma aplicao desse tipo deve retornar qual dos
significados pretendido pelo texto em questo. O Word Sense Desambiguation
usado em processamento de linguagem natural (PLN) e indexao de
documentos por sentido de palavras. considerada uma tarefa CT por
pivotamento de documentos de rtulo simples. Em [50] este assunto tratado
mais extensivamente.

44

o Categorizao Hierrquica de Pginas Web: A categorizao hierrquica de


pginas Web classifica pginas da Web ou websites em um conjunto hierrquico
de categorias pr-definidas residentes nos portais. Ao invs de usar mecanismos
de busca para encontrar documentos atravs da internet, pode-se seguir um
caminho mais fcil pela hierarquia de categorias de documentos para procurar
pelo alvo apenas na categoria especificada. CPC usada para permitir adio
e/ou excluso automtica de documentos novos ou indesejados respectivamente.
Veja [51] para um exemplo.

2.3.6

Construo de Classificadores de Texto

Independentente da aplicao, um classificador de texto pode ser ansioso ou preguioso.


No primeiro caso, um conjunto de documentos pr-classificados usado para construir
o classificador. Este conjunto de dados dividido randomicamente em conjunto de
treinamento, TR, e conjunto de teste, TS . As duas parties no precisam ser iguais. O TR
usado para construir ou treinar o classificador e ento o TS usado para testar a
preciso do classificador. Este processo repetido at que um classificador aceitvel
desenvolvido. Por outro lado, um classificador preguioso no constri um classificador
a frente no tempo. Sempre que uma nova amostra no rotulada n recebida, o
classificador encontra as k amostras rotuladas mais similares, onde k pr-definido,
para decidir sobre o rtulo de n. Vrios algoritmos que se adequam s duas categorias
acima tm sido desenvolvidos.

2.3.6.1 Classificadores de rvore de Deciso


Classificadores de rvore de Deciso (CAD) tentam superar a dificuldade de interpretar
os classificadores probabilsticos que so quantitativos pelo uso de representaes
simblicas. Um Classificador de rvore de Deciso basicamente uma rvore com ns
internos representando termos, bordas representando testes no peso que um termo deve
ter, e ns-folha representando categorias. O classificador classifica um documento
percorrendo um caminho para o n-folha apropriado isto , classe ou categoria.

45

Referir-se ao captulo 3 em [38] para maiores detalhes. Alguns exemplos de tal


classificador incluem ID3, C4.5 e C5.

2.3.6.2 Classificadores de Regra de Deciso


Classificadores de Regra de Deciso criam uma regra disjuntiva normal

(CRD) para

cada categoria ci. A premissa da regra composta de letras significando a presena ou a


ausncia de uma palavra-chave no documento dj, enquanto a clusula denota que a
deciso de classificar dj para ci leva a premissa a ser satisfeita por di. Um aprendiz de
regra do tipo CRD que tem sido aplicado Classificao de Texto o CHARADE [53].

2.3.6.3 Classificadores de Regresso


Um exemplo de um algoritmo derivado de regresso o linear least squares fit (LLSF)
onde cada documento dj associado com um vetor de entrada I(dj) de T termos
ponderados e um vetor de sada O(di) de C pesos (um para cada classe). A classificao
aqui feita produzindo um vetor de sada de uma amostra dado seu vetor de entrada.
Uma matriz M, CT construda para realizar esta tarefa de forma que M(dj)=O(dj). De
acordo com [54], LLSF um dos classificadores mais conhecidos; entretanto, ele sofre
do alto custo de computar a matriz M.

2.3.6.4 Classificadores Rocchio


Cada categoria representada por um perfil (um documento prottipo) que criado
usando o mtodo Rocchio [46] que d pesos apropriados aos termos no espao de
termos de tal forma que o vetor de perfil resultante o mais til para discriminar a
classe correspondente. Este perfil ento usado para classificao de outros
documentos. Um exemplo interessante mostrado em [55].

2.3.6.5 Redes Neurais


Uma rede neural (RN) tem um conjunto de ns dividido em camadas. A primeira
camada a camada de entrada, seguida de zero ou mais camadas intermedirias,
seguida de uma camada de sada. Cada n recebe um peso de entrada e produz uma
sada. Os ns de entrada so usados para representar todos os termos e os termos de

46

sada representam o conjunto de categorias. Para classificar um documento dj, os pesos


do termo representando dj so alimentados nos ns de entrada. Isto ser propagado pela
rede at que finalmente o resultado seja recebido pelos ns de sada. Em [56] uma rede
neural no-linear apresentada.

2.3.6.6 Classificadores baseados em exemplos


Classificadores baseados em exemplos so classificadores preguiosos. Eles no
constrem um classificador a frente no tempo mas usam as amostras rotuladas para
classificar novas amostras. Um classificador deste tipo o k-Vizinho mais Prximo
(KNN) [57] que, dado um novo exemplo dj, tenta encontrar k documentos que so mais
similares a dj entre o conjunto de amostras dado. Ento um processo tal como o
plurality voting executado pelos vizinhos selecionados para dar a dj o rtulo mais
apropriado.

2.3.6.7 Classificadores Probabilsticos


Classificadores Probabilsticos representam a probabilidade de um documento dx
pertencer categoria cy por P(cy|dx) e a computa pela seguinte frmula:

P(c y d x ) = P (c y )P d x c y P(d x )

Equao 2.10

onde P(cy) a probabilidade que um documento radomicamente selecionado pertena a


categoria cy, P(dx) a probabilidade que um documento radomicamente selecionado
tenha dx como uma representao vetorial e P(dx|cy) a probabilidade que a categoria cy
contenha o documento dx. O clculo de P(dx|cy) facilitado pelo uso da suposio de
independncia ou suposio Nave Bayes que afirma que quaisquer duas coordenadas
de um vetor-documento so estatisticamente independentes. Assim P(dx|cy) calculada
como:

P( d x c y ) = P(W zx c y )

Equao 2.11

k =1

47

onde Wzx o peso do z-simo termo do vetor dx. Em [52] apresentada uma discusso
detalhada sobre o assunto.

2.3.6.8 Classificadores baseados em Support Vector Machines (SVM)


Support Vector Machines foi primeiramente aplicado em Classificao de Textos no
final dos anos 90 [58]. SVM divide o espao de termos em hiperplanos ou superfcies
separando as amostras de treinamento positivas das negativas algumas vezes estas
superfcies so referidas como superfcies de deciso. Ento a superfcie que prov a
maior separao (a maior margem possvel entre as amostras positivas e negativas)
selecionada.

2.3.6.9 Comit de Classificadores


Um Comit de Classificadores um tipo de classificador que engloba um nmero de
outros classificadores (da lista descrita at agora), os utiliza para fazer a classificao,
compara suas sadas e ento seleciona o resultado mais apropriado (usando plurality
voting por exemplo).

2.3.7

Clustering de Documentos

Clustering uma tcnica til quando se quer agrupar documentos similares. O processo
de clustering bsico funciona da seguinte forma: primeiro, uma descrio simplificada
do documento criada para cada texto que vai sendo adicionado aos clusters. A
descrio normalmente um vetor de caractersticas, ou uma lista de temas dominantes
ou palavras-chave e uma medida de importncia relativa de cada tema ou palavra-chave
no documento [59].

48

Figura 2.7 Processo Bsico de Clustering

O prximo passo determinar a proximidade de dois documentos baseada em seus


vetores de caractersticas. Quando se faz o clustering de dados numricos, normalmente
isto feito assumindo que os pesos de um vetor de caractersticas definem um ponto no
espao e encontrando a distncia entre esses dois pontos. Em documentos, alm das
mtricas

de

distncias

convencionais

conhecidas,

existem

as

medidas

de

similaridades conceituais, que so usadas para medir a distncia numa hierarquia de


assunto. Medidas de similaridades conceituais so geralmente baseadas numa funo de
distncia entre tpicos na hierarquia de assuntos e os pesos desses tpicos nos
documentos. Uma vez que a distncia entre documentos calculada, seja pelas medidas
de similaridade padro ou conceituais, eles podem ser agrupados de vrias formas
diferentes. A figura 2.7 mostra o esquema bsico da atuao de uma ferramenta de
clustering sobre um conjunto de documentos, separando-os em subgrupos de
documentos chamados clusters.

2.3.7.1 Tcnicas de Clustering


Nesta seo, ser apresentada uma breve descrio das tcnicas de clustering de
documentos mais populares que so clustering hierrquico, clustering K-means e
clustering SOM.

49

2.3.7.1.1 Clustering Hierrquico


Tcnicas de Clustering Hierrquico produzem uma hierarquia de parties com uma
simples partio incluindo todos os documentos num extremo, e clusters unitrios cada
um composto de um documento individual no outro extremo. A rvore descrevendo a
hierarquia de clusters chamada de dendrograma. Cada cluster ao longo da hierarquia
visto como uma combinao de dois clusters a partir do prximo nvel mais alto ou
mais baixo, dependendo se a abordagem divisiva ou aglomerativa, respectivamente.

a) Aglomerativa: O Clustering aglomerativo comea com o conjunto de todos os


clusters cada um incluindo um documento como a raiz da rvore e ento
combina os pares de clusters mais similares ou mais prximos juntos a cada
nvel da rvore at que ela forme um nico cluster contendo todos os
documentos no nvel de folha. Isto requer a definio de uma mtrica distncia
ou similaridade para ser efetuada.
A maior parte dos pacotes estatsticos utilizam mtodos aglomerativos, dentre os
quais os mais conhecidos so:

(1) single linkage: o modelo aglomerativo bsico o single linkage, tambm


chamado vizinho mais prximo. Ele pode comear a partir da matriz de
similaridades

entre

objetos

(matriz

de

distncias

ou

matriz

de

semelhanas). Ele ordena pares de objetos segundo sua similaridade de


maneira descendente e forma clusters hierarquicamente, comeando dos
pares mais similares. A cada passo aglomera-se uma observao
adicional para formar um cluster. Assim, o primeiro cluster aquele com
duas observaes que apresentam a menor (mnima) distncia entre si.
Uma terceira observao que tenha a prxima menor distncia,
adicionada ao cluster de duas observaes para criar um cluster de trs
observaes ou um novo cluster com duas observaes formado. O
algoritmo continua at que todas as observaes estejam em um cluster.
A distncia entre quaisquer dois clusters a menor distncia de qualquer
ponto em um cluster para qualquer ponto em outro cluster. Dois clusters
so unificados em qualquer estgio pelo link simples mais curto ou forte
entre eles.

50

No single linkage, para juntar um objeto a um cluster j existente, ele


deve ter uma similaridade ao menos igual considerada para um dos
objetos j includos no cluster. Dessa forma, um elemento ser agrupado
com um cluster no nvel correspondente similaridadde mxima entre
ele e os elementos no cluster.
Devido sua natureza, o single linkage apresenta uma propriedade que
chamada encadeamento (chaining). Como resultado, ele pode ser
inadequado em vrios casos. O encadeamento significa que os objetos
juntam-se a um cluster facilmente se existem objetos intermedirios que
faam a ponte entre o cluster e os outros objetos. Uma vez que o
encadeamento aparece onde existem pontos intermedirios, single
linkage uma boa forma de detect-los. Por outro lado, o encadeamento
faz com que o single linkage seja propenso a rudos nos dados. Quanto
maior o cluster , mais fcil unir mais e mais elementos, porque a
probabilidade de encontrar objetos intermedirios aumenta. Assim,
single linkage conhecido como aquele que contrai o espao das
relaes entre objetos na proximidade dos clusters.
O single linkage foi desenvolvido por Florek [70,71] e mais tarde
reinventado por McQuitty [72] e Sneath [73].

(2) complete linkage: Este semelhante ao single linkage, exceto que


baseado na mxima distncia, e no na distncia mnima. No complete
linkage, dois clusters se fundem dependendo do par de objetos mais
distante entre eles. Em outras palavras, A distncia mxima entre
quaisquer dois indivduos em um cluster representa a menor esfera
(dimetro mnimo) que pode englobar o cluster [74]. Em outras palavras,
um objeto se junta a um cluster quando a sua similaridade em relao a
todos os elementos daquele cluster igual ou maior que o nvel
considerado. Em um cluster que est crescendo, novos objetos tem pouca
chance de se juntar, porque eles devem estar prximos a todos os objetos
no cluster, ento eles se juntam posteriormente quando o nvel de
similaridade considerado baixo. Assim, quando um cluster cresce, ele
se move para longe de outros objetos. Complete linkage conhecido
como aquele que expande o espao na proximidade dos clusters. Este
51

algoritmo

pode

ser

adequado

quando

se

quer

inspecionar

descontinuidades claras.

(3) average linkage: Nesse caso usada a distncia ponderada de amostras


de um cluster para amostras de outros clusters. O par de clusters com a
menor distncia ponderada unido. Isto mantm uma densidade dos
clusters relativamente constante o que significa que regies com uma
densidade alta de pontos podem ter um cluster maior que aquelas com
uma densidade menor.

(4) mtodo de Ward: Este mtodo distinto de todos os outros mtodos


porque ele usa uma abordagem de anlise de varincia para avaliar as
distncias entre clusters. Em resumo, este mtodo tenta minimizar a
Soma dos Quadrados (SS) de quaisquer dois clusters (hipotticos) que
podem ser formados a cada passo. Referir-se a [75] para detalhes
concernentes a este mtodo. Em geral, este mtodo considerado um
mtodo muito eficiente, porm, ele tende a criar um nmero exagerado
de clusters pequenos, porque quanto mais dispersas estiverem as
observaes, maior a soma dos quadrados far a distncia.

(5) mtodo do Centride: A distncia euclidiana medida entre centrides


de dois clusters.

Todos esses mtodos variam em relao definio de distncia.

b) Divisiva: O Clustering divisivo trabalha de forma oposta. Ele comea com um


nico cluster contendo todos os documentos no nvel da raiz e ento separa um
cluster em dois a cada nvel da rvore at que ele forme um conjunto de clusters,
no nvel de folha, cada uma contendo um e apenas um cluster.

52

2.3.7.1.2 Clustering K-means


Dado um nmero fixo de k, o clustering K-means cria um conjunto de k clusters e
distribui o conjunto de documentos dados entre esses clusters usando a similaridade
entre os vetores-documento e os centrides dos clusters. Um centride o vetor mdio
de todos os vetores-documento no respectivo cluster. Cada vez que se adiciona um
documento em um cluster, o centride daquele cluster recalculado. Note que, quase
sempre, um centride no corresponde a um documento. A similaridade entre um
documento d e um centride c calculada como o somatrio de todos os vetoresdocumento no cluster dividido pelo nmero de vetores-documento.
Em geral, acredita-se que os mtodos de clustering hierrquicos produzem clusters de
melhor qualidade que aqueles produzidos pelo K-means (ou uma de suas variantes), o
qual tem uma complexidade linear ao nmero de documentos, mas produz clusters de
menor qualidade [2].

2.3.7.1.3 Clustering de Palavras


Mtodos de Clustering podem ser usados para reduzir o nmero de dados pelo
agrupamento de itens similares [77].

Na representao de documentos, mtodos de

clustering podem ser aplicados para agrupar palavras similares, e ento representar
documentos mais em funo de clusters de palavras que em palavras individuais. Um
clustering bem adequado para a representao de documentos deve reduzir a variao
da forma, ao mesmo tempo deve perder to pouca informao quanto possvel
considerando o contedo semntico, especialmente os tpicos discutidos em um
documento.
Um apanhado de vrios mtodos para coletar informao de palavras com a finalidade
de realizar um clustering dessas palavras automaticamente apresentado em [78]. Em
idiomas com restries estritas na ordem das palavras, como o Ingls, a distribuio das
palavras no contexto imediato de uma palavra contm quantidades considerveis de
informao considerando a categoria sinttica de uma informao, e mais ainda dentro
das categorias sintticas, informao sobre a categoria semntica [79].

53

2.3.7.2 Avaliao da Qualidade do Cluster


Vrios esquemas tem sido desenvolvidos para avaliar a qualidade dos clusters
produzida por um tcnica de clustering. O esquema de Entropia baseado na idia de
que a melhor entropia obtida quando cada cluster contm apenas um documento [2].
Primeiro, calcula-se a distribuio de classes dos documentos. Para cada cluster
produzido por uma certa tcnica, calcula-se a probabilidade de um documento em um
cluster j pertencer a uma classe i, pij. Ento a entropia para cada cluster j calculada
usando a seguinte frmula:
Entropiaj = pij log ( pij )

Equao 2.12

Assim, a entropia de um conjunto de clusters, s, calculada como

Entropias =

n j * Entropia j

j =1

Equao 2.13

Onde |s| o nmero de documentos em s, nj o tamanho do cluster j, e n o nmero


total de documentos em todos os clusters.
Um outro esquema baseado em RI a medida F-measure. Aqui, considera-se cada
cluster como sendo o resultado de uma query ou consulta e cada classe como sendo o
resultado que se supe como retorno a uma query. Calcula-se o recall e a preciso (veja
a seo RI e FI) como:

Recall(i,j) = nij/ni

Equao 2.14

Preciso(i,j) = nij/nj

Equao 2.15

Onde nij nmero de documentos que existem numa classe i e no cluster j ao mesmo
tempo, nj o tamanho do cluster j e ni o tamanho da classe i. A medida F geral
computada como a mdia de todas as F-measures. Existem outros esquemas na
literatura; em [19] captulo 3 podem ser encontrados mais detalhes.

2.3.7.3 Aplicaes em Clustering de Texto


Clustering tem sido empregado em um nmero de aplicaes baseadas em texto tais
como Categorizao de Textos [80] e Recuperao de Informao [81]. Ele tambm
usado na varredura de uma coleo de documentos [82], organizando documentos
54

retornados por um mecanismo de busca em resposta a uma query [63], automaticamente


gerando clusters hierrquicos de documentos [83]. Clustering o agrupamento de
representaes de documentos similares em parties onde os documentos nas mesmas
parties so mais similares uns aos outros que a qualquer outro documento em
qualquer

outra

partio.

Clusters

so

usualmente

mutuamente

exclusivos

coletivamente exaustivos. Clustering til para desenvolvimento de taxonomias como


por exemplo o site Yahoo! e o Open Directory (dmoz.org/) que embora sejam
construdos manualmente, podem ser muito assistidos por um processo de clustering
preliminar de grandes quantidades de amostras de documentos Web. Clustering pode
tambm ajudar a procuras rpidas baseadas em similaridade. Dado um clustering de um
corpus pr-computado, a procura por documentos similares a um documento-consulta dc
pode ser eficientemente limitado a um pequeno nmero de clusters que so mais
similares a dc, rapidamente eliminado um grande nmero de documentos que se poderia
seguramente supor que tenham uma colocao baixa.

Para concluir, interessante ressaltar que as tarefas a serem realizadas nesta etapa esto
relacionadas em grande parte aos objetivos a serem alcanados pela anlise dos textos.
Algumas tarefas atuam na melhoria de desempenho de tarefas subsequentes como, por
exemplo, a extrao de caractersticas que atua reduzindo o espao das caractersticas
para que tarefas como a de clustering ou categorizao sejam mais eficientes ou at
mesmo possveis.

55

2.4 Ps-Processamento dos Dados


O ps-processamento dos dados consiste da fase de validao das descobertas efetuadas
pela etapa de processamento dos dados e da visualizao dos resultados encontrados.
Mtricas de avaliao de resultados, ferramentas de visualizao,

e conhecimento de

especialistas ajudam a consolidar os resultados.

2.4.1

Mtricas de Avaliao de Resultados

Essas mtricas de avaliao de desempenho de um sistema foram adotadas da rea de


Recuperao de Informao e so baseadas na noo de relevncia: se um documento
atender necessidade de informao do usurio, ele considerado relevante
solicitao do usurio. A qualidade de recuperao de um sistema RI pode ser medida
para uma coleo de textos, um conjunto de solicitaes e seus respectivos documentos
relevantes. As medidas de avaliao bsicas so as seguintes:

2.4.1.1 Preciso
Avalia o quanto o modelo acerta:

Preciso = nmero de itens relevantes recuperados


nmero total de itens recuperados

2.4.1.2 Recall
Avalia o quanto o modelo contabiliza:

Recall = nmero de itens relevantes recuperados


nmero de itens relevantes na coleo

Um modelo pode ser avaliado, pela representao prvia de dados no-vistos, ou pela
medida do quanto alguma tarefa especfica, como predio ou classificao pode ser
realizada com o modelo.
56

2.4.2

Ferramentas de Visualizao

Nos ltimos anos, sistemas grficos com telas coloridas se tornaram equipamentos
comuns, alm de ferramentas de programao e tecnologia para construir aplicaes
altamente grficas e interativas. Ao mesmo tempo, pesquisas em visualizao de dados
e mtodos de anlise de dados exploratria despontaram, fornecendo mtodos e
equipamentos capazes de ilustrar propriedades e relacionamentos de conjuntos de dados
graficamente complexos [84].
Informao quantitativa tem sido apresentada usando meios grficos [85]. A informao
pode ser traduzida visualmente usando-se uma combinao de pontos, linhas, smbolos,
palavras, cores e intensidade de sombreamento. Em particular, o uso de grficos pode
ajudar a entender o sentido de grandes e complexos conjuntos de dados que no
poderiam ser manuseados de outra maneira. Se a proximidade espacial utilizada para
traduzir similaridade de itens (usando scatter plots), informaes referentes a clusters,
padres e outliers so passadas por simples observao visual, e um resumo da
informao automaticamente percebido pelo observador.

2.4.2.1 Visualizaes 2-D


Allan [86,87] desenvolveu uma visualizao para mostrar o relacionamento entre
documentos e partes de documentos. Ele transformou os documentos em arrays de
forma oval e os conectou quando sua similaridade era grande o suficiente. O objetivo
imediato de Alan era encontrar grupos de documentos relevantes, mas para encontrar
padres no-usuais de relacionamentos entre documentos.
O sistema Vibe [88] uma visualizao 2-D que mostra como os documentos so
relacionados uns aos outros em termos das dimenses selecionadas pelo usurio. Os
documentos sendo percorridos (browsed) so colocados no centro de um crculo. O
usurio pode colocar qualquer nmero de termos ao longo da borda do crculo, onde
eles formam poos de gravidade que atraem documentos dependendo da significncia
desses termos naquele documento. O usurio pode modificar a localizao dos termos e
ajustar seus pesos para melhor entender os relacionamentos entre os documentos.

57

2.4.2.2 Visualizaes 3-D


Estaes grficas potentes e o apelo visual dos grficos tridimensionais tm encorajado
esforos para apresentar relacionamentos entre documentos no espao tridimensional.
O sistema Liberworld [89] inclui uma implementao do sistema Vibe descrito acima,
mas apresentado no espao 3D. O usurio ainda deve selecionar os termos, mas agora
eles so colocados na superfcie de uma esfera ao invs de na borda de um crculo.
A dimenso adicional deveria permitir que o usurio visse a separao mais
prontamente.
O sistema descrito em [90] similar em relao abordagem ao sistema Bead [91] uma
vez que ambos usam formas de spring embedding para colocar objetos de vrias
dimenses no espao 3D. A pesquisa de Bead no investigou a questo de enfatizar a
separao de documentos relevantes e no-relevantes.

2.4.3

Conhecimento de Especialistas

A participao de especialistas importante ao longo de todo o processo de extrao de


conhecimento em texto acompanhando a anlise: ajudando a resolver situaes de
conflito,

indicando

caminhos,

complementando

informaes.

partir

de

um

determinado ponto do processamento dos dados, torna-se fundamental a colaborao de


especialistas para o progresso da pesquisa.
Durante a fase de validao de resultados, o que foi descoberto durante o processo de
extrao de conhecimento como resultado final deve novamente ser verificado pelos
especialistas.
Existem, porm, alguns problemas relativos associao do conhecimento humano a
sistemas inteligentes:
-

diferenas entre especialistas so tpicas - comumente especialistas apresentam


discordncias em seus pontos de vista;

o mesmo especialista em tempos diferentes, pode dar uma resposta diferente


mesma pergunta.

58

2.5 Ferramentas Comerciais


Nesta seo, sero comentadas ferramentas comerciais para text mining. Uma descrio
sucinta de cada uma delas apresentada. Ao final da seo, uma tabela resumindo
caractersticas dessas ferramentas de text mining ser mostrada.

2.5.1

Intelligent Miner for Text

Intelligent Miner for Text [104] (IBM) oferece um mecanismo de busca, ferramentas de
acesso Web, e um conjunto de ferramentas para analisar textos.
Intelligent Miner realiza recuperao de textos completa usando Mecanismo de busca
IBM e disponibiliza, tambm, ferramentas de acesso Web, tais como NetQuestion
Solution e IBM Web Crawler.
As ferramentas de anlise de textos (Text Analysis Tools) realizam extrao de
caractersticas, clustering, categorizao e sumarizao. As ferramentas de anlise
podem extrair informao-chave de documentos, organizar os documentos por assunto,
e encontrar temas predominantes em uma coleo de documentos. A verso 2.3,
disponvel para avaliao neste estudo, no possui interface para usurio, dificultando
sua utilizao. Os comandos so executados no ambiente Windows atravs de linhas de
comando em uma janela de Command Prompt.

2.5.2

Temis

A ferramenta Temis [105] composta de mdulos independentes que so descritos


suscintamente a seguir.

2.5.2.1 Insight Discoverer Extractor


O servidor Insight Discoverer Extractor usa informao lingstica e semntica para
extrair conhecimento a partir de documentos. Ele identifica conceitos e relaes entre
conceitos, e dirigido por regras de extrao de conhecimento especializadas chamadas
Skill Cartridges.
O servidor Insight Discoverer Extractor o crebro usado para desenvolver aplicaes
que desempenham a extrao de informao em vrios idiomas e em grandes colees
59

de documentos. Os idiomas contemplados pela ferramenta so: Portugus, Ingls,


Alemo, Francs, Italiano , Espanhol e Holands.
O servidor Insight Discoverer Extractor pode extrair os mesmos conceitos em vrias
Lnguas com os Skill Cartridges apropriados.

2.5.2.2 Insight Discoverer Categorizer


O servidor Insight Discoverer Categorizer usa um algoritmo matemtico para associar
documentos a categorias. O categorizador l e aprende a partir de um conjunto de
documentos que j esto colocados em uma certa categoria. Ento, quando alimentado
com um novo conjunto de documentos, ele categoriza comparando-os aos prcategorizados.

categorizador

trabalha

nos

modos

supervisionado

no-

supervisionado. O modo supervisionado sugere uma ou mais categorias para cada


documento. O modo no-supervisionado associa automaticamente os documentos s
categorias mais relevantes.
O servidor Insight Discoverer Categorizer baseia sua categorizao em um vetor
semntico descrevendo cada documento para sua categorizao. Ele pode ser usado para
produzir vetores semnticos a partir de documentos.

2.5.2.3 Insight Discoverer Clusterer


O Insight Discoverer Clusterer uma soluo para estruturar informao noestruturada. Ele classifica e reagrupa documentos em classes coerentes, baseando-se em
suas similaridades semnticas. O Clusterer executa este processo automaticamente em
tempo real.

Ele cria uma rvore de conceitos pertinente para uma dada coleo de

documentos. O processo de Clustering dessa ferramenta iterativo e cria subclusters


para cada cluster. O clusterer oferece uma excelente visibilidade em grandes conjuntos
de documentos e em domnios complexos. O usurio pode navegar dentro dos clusters
para ter um bom entendimento da base de dados. O mdulo de clustering
implemtentado cono um servidor Java RMI com uma API pblica. Ele utiliza uma
variao do conhecido algoritmo K-means. Nessa ferramenta, uma sesso de clustering
organizada em trs passos:
-

Pesos e filtragem de palavras: o servidor calcular o peso para cada palavra de


acordo com sua freqncia dentro do documento, e o nmero de documentos

60

com essa palavra. Essa pesagem valoriza palavras que no so muito freqentes
e remove palavras muito pouco freqentes para evitar rudo.
-

Clculo de clusters: os documentos so organizados em clusters por um


algoritmo desenvolvido pela prpria Temis. possvel definir um limite mnimo
de similaridade. Documentos que no combinam com um cluster nesse valor
mnimo no sero afetados, mas sero mantidos em um estado inalterado.

Descrio estatstica nos clusters: o servidor armazena os resultados do


clustering numa aplicao interativa, pronta para ser navegada pelo usurio. Ele
fornece um ttulo para cada cluster, baseado nas palavras mais representativas e
a lista dos melhores documentos de cada cluster, sorteados por similaridade
decrescente.

2.5.3

Online Miner

O servidor Online Miner recupera documentos e os estrutura em formato XML. Ele


tambm extrai, organiza e monitora caractersticas importantes nos documentos. Por
fim, ele organiza documentos em clusters coerentes de forma a facilitar a navegao
dentro da coleo de documentos.
O servidor Online Miner desenvolvido para ser amigvel:
-

Ele dirige e coordena servidores especializados (Insight Discoverer Extractor,


Insight Discoverer Clusterer) e pode interfacear com os mecanismos de busca
mais comuns.

A nica aplicao requerida para o usurio final interagir com o Online Miner
um navegador de web.

2.5.4

Cada Skill Cartridge cobre um domnio vertical e uma funo de negcios.

TextSmart

TextSmart [106] (SPSS) trabalha com dados no formato de perguntas e respostas,


porque foi desenvolvido para pesquisa de opinio. Assim, para que os dados possam ser
manuseados pelo programa, necessria a formulao de perguntas. O programa tenta,

61

na realidade, encontrar relaes entre as respostas referentes a um mesmo tema, o


motivo da pergunta.
Ele executa alguns passos de pr-processamento: stopwords (adaptvel para qualquer
idioma), stemming (para idioma ingls), dicionrio (adaptvel para qualquer idioma).
uma ferramenta de categorizao automtica baseada em clustering de termos.
TextSmart gera uma lista contendo o ranqueamento geral dos termos, ou seja, o nmero
de vezes que cada termo aparece em todas as respostas.

2.5.4.1 Categorizao dos termos baseada em clustering


A categorizao automtica um processo de trs passos descritos a seguir: Primeiro, o
programa cria uma matriz de similaridades a partir dos termos. Ele combina cada termo
com cada outro termo na lista e checa para certificar-se qual a freqncia que cada par
ocorre em uma resposta (co-ocorrncia). O algoritmo constri uma tabela de
contingncias 2x2 para cada par de termos como resposta.

O algoritmo usa essa

informao para computar uma medida binria, a medida de similaridade de Jaccard,


para cada par de termos.
O conjunto todo forma uma grande matriz de similaridades: cada coeficiente representa
a distncia entre um par de termos. A matriz de similaridades agrupada
hierarquicamente e coloca os agrupamentos em um nmero especfico de categorias. O
algoritmo usado para criar as categorias uma variao de clustering hierrquico. Esse
algoritmo tenta produzir agrupamentos cujas maiores distncias entre quaisquer dois
membros seja a menor possvel. Ele tende a produzir agrupamentos compactos.

2.5.5

Smart Discovery

Smart Discovery [107] (Inxight) extrai metadados a partir de documentos e combina


esses metadados com interfaces de procura familiares e opes de navegao intuitivas.
Dessa forma, o Smart Discovery permite que usurios encontrem e empreguem
rapidamente a informao de forma relevante e precisa.
Smart Discovery permite:
-

classificar dados no-estruturados em tpicos organizados e taxonomias de


eventos, fornecendo uma alternativa para as meras procuras por palavra-chave
pela fontes de dados, independente da localizao, lngua ou formato.

62

extrair as entidades mais relevantes contidas nos dados em formato de textos


pessoas, lugares, companhias, datas e eventos e interagir com elas para
localizar a informao mais relevante s suas necessidades.

identificar os relacionamentos e ligaes entre pessoas, organizaes, e outras


entidades dentro dos conjuntos de dados em formato de textos.

recuperar resultados de busca relevantes, mesmo com consultas de uma palavra,


e interagir com resultados da busca.

2.5.6

VizServer

VizServer [108] (Inxight) fornece mtodos para explorar grandes colees de


informao. O Vizserver possui visualizadores potentes que permitem aos usurios
procurar e localizar informaes e padres nos conjuntos de dados relacionais,
tabulares, hierrquicos, etc.
VizServer permite aos usurios localizar a informao especfica que se est procurando
62,5% mais rpido que os mtodos de navegao padres. Essa capacidade aumenta
significativamente a produtividade e permite decises de negcios mais geis.

2.5.7

Knowledge Discovery System

Knowledge Discovery System [109] software baseia-se na idia de lugares virtuais


onde usurios podem organizar informao, servios. Ele fornece tambm ferramentas
para satisfazer necessidades particulares, mas ao mesmo tempo mantm e atualiza
informaes em um contexto mais geral.
Para sustentar esse conceito, foram definidos dois componentes distintos de
gerenciamento de conhecimento: agregao de conhecimento e descoberta de
informao. Os dois princpios que regem a agregao de conhecimento so: (1)
Indivduos e grupos necessitam de lugares virtuais para trabalhar, tomar decises, e agir.
(2) Lugares virtuais devem incluir aplicaes, servios colaborativos e servios
pessoais.
Indivduos ou grupos definem os requisitos para esses lugares virtuais, mas indivduos
nem sempre sabem o que no sabem. s vezes, apenas conversar com um especialista
a melhor forma de aprender. A descoberta de informao uma forma de fornecer

63

acesso a toda a informao que relevante em um ambiente corporativo que no tem


conhecimento prvio de sua existncia.

2.5.8

ThemeScape

ThemeScape [110] (Cartia) um software de visualizao de textos que l


automaticamente um grande nmero de documentos, reconhecendo o contedo da
informao e organizando colees de textos por tpico num mapa que mostrado. Esse
mapa pode ser aproximado para aumentar o nvel de detalhamento. Nele se pode marcar
documentos importantes e envi-los para outras pessoas. Themescape apresenta uma
nova forma de organizar informao que no utiliza nem diretrios de arquivos, nem
rvores hierrquicas. Ao invs disso, cada documento representado como um pequeno
ponto no mapa topolgico. O conceito simples: quanto mais similares dois
documentos so, mais prximos eles aparecem. O mapa apresenta picos onde existe
uma alta concentrao de documentos sobre o mesmo tpico, e a distncia entre esses
picos mostra o quanto os tpicos esto relacionados. Essa interface visual torna possvel
para o usurio saber rapidamente que informao est disponvel, que tpicos dominam
a coleo, e quais tpicos se interrelacionam.
Uma vez que os documentos so representados como pontos no espao possvel
mostrar milhares de documentos de uma s vez e utilizar a facilidade de aproximao
(zoom) para revelar mais detalhes. Em qualquer regio do mapa, basta clicar com o
mouse que uma lista de documentos e contedos so abertos automaticamente na tela.
Quando se aponta para qualquer documento, um pequeno resumo do texto mostrado.

2.5.9

Data Junction

Data Junction [111] uma ferramenta de transformao compreensiva que elimina


completamente a necessidade de gerar, compilar e fazer o link de programas de forma a
extrair e transformar dados. O ambiente contm um mecanismo que conecta os dados
em seu ambiente nativo e executa transformaes na memria. Data Junction possui
uma interface que permite a criao de rotinas de transformao complexas.

64

O projeto da ferramenta baseia-se em trs telas intuitivas. A primeira tela permite ao


usurio definir e conectar s estruturas dos dados fonte. A segunda tela permite ao
usurio de finir e conectar com a estrutura dos dados alvo. Ambas as telas de fonte e
alvo permitem ao usurio ver e percorrer os dados e estruturas de dados uma vez que as
conexes tenham sido estabelecidas. A terceira tela onde o usurio define o
relacionamento entre fonte e alvo. A tela mapa disponibiliza:

Mapeamento visual: A funcionalidade de drag and drop permite ao usurio


comparar e integrar campos dos dados fonte com estruturas dos dados alvo,
arrastando-as para seus lugares.

Manipulao de dados: o relacionamento entre os campos fonte e alvo tratado


internamente como uma expresso lgica (isto , campo-alvo=campo-fonte).
Pode-se escolher a habilidade de manipular contedos dos dados diretamente ou
refinando essa expresso. Como um adicional para usurios, Data Junction
encapsulou um conjunto conhecido de funes de manipulao de dados em um
construtor de expresses robusto.

Filtragem e Sorteio: Existem duas formas de se operar a filtragem no Data


Junction. Usurios podem filtrar registros fonte para um subconjunto do atual
definindo parmetros de amostragrem promovendo a obteno de uma amostra
da entrada, ou o construtor de expresses pode ser empregado para especificar
critrios de extrao lgica. Em adio filtragem, Data Junction oferece
habilidades de inspeo de dados.

2.5.10 TextAnalyst
TextAnalyst [112] uma ferramenta para anlise semntica, navegao, e procura em
textos. Quando o TextAnalyst analisa um texto, ele determina que conceitos palavras
ou combinaes de palavras so mais importantes no contexto do texto investigado.
Cada conceito rotulado como um n e a ele associado um peso semntico numrico,
que

a medida da probabilidade para que este conceito seja importante no texto

estudado. Simultaneamente, TextAnalyst determina os pesos das relaes entre


conceitos individuais no texto e conceitos ligados s sentenas no texto original onde
esses conceitos foram encontrados.

65

A estrutura resultante, chamada rede semntica, um conjunto dos conceitos mais


significativos destilados a partir dos textos analisados, junto com os relacionamentos
semnticos entre esses conceitos no texto. A rede semntica um grfico que representa
toda a informao mais importante a partir da investigao dos textos de uma maneira
concisa.

2.5.11 Technology Watch


Technology Watch [113] (IBM/Synthema) uma soluo baseada em um processo qie
consiste de dois passos: anlise lxica e clustering.
A anlise lxica subdividida em anlise semntica e gramatical. Ela reduz
ambigidades

torna

freqncia

das

palavras

descrevendo

cada

documento

significativa. Assim, foram desenvolvidos lxicos e dicionrios para analisar todas as


frases, classificar palavras eliminando a ambiguidade e detectando seus sinnimos.
realizado tambm um processo de stemming.
O Processo de clustering utiliza um tagging morfo-sinttico. Uma vez que os
documentos tenham sido estruturados lingisticamente, eles so agrupados utilizando o
mtodo de Anlise de Dados Relacionais (Relational Data Analysis - RDA) [114].

2.5.12 Outras Ferramentas


Existem algumas outras aplicaes como o dt-search [115] que pode buscar
instantaneamente por gigabytes de textos em um microcomputador, rede, Internet ou
Intranet. Ele pode tambm servir para pesquisa em publicaes como busca instantnea
de texto, de grandes colees de textos a sites da Web ou CD/DVDs.

Existe, tambm, WizDoc [116], que um mecanismo de busca baseado em conceito que
indexa em torno de cem pginas por minuto. Ele suporta consultas em linguagem
natural, retornando ao usurio pginas que se relacionam com o assunto. WizDoc
tambm possui um mtodo de busca por strings.
capaz de dividir os documentos em tpicos, disponibilizando os resultados. WizDoc
possui um corretor ortogrfico e uma comparao fuzzy. Ele possui, tambm, thesaurus
para sinnimos.

66

Existe, ainda, o cMap [117] que a implementao variada de um tipo de rede neural
conhecido como Self Organizing Map (SOM) [103]. CMap uma implementao
customizada que possui algumas otimizaes em relao ao algoritmo de SOM bsico.
CMap descobre clusters e categorias dentros dos conjuntos de documentos para o qual a
estrutura interna no conhecida. Essas categorias so ento mostradas em um grfico
do tipo tridimensional, para permitir que o usurio explore e percorra o conjunto de
dados. Essas otimizaes melhoraram o tempo de execuo consideravelmente.

Uma outra ferramenta o SemioMap [118]. Esse programa permite extrair relaes
importantes, mostrando como as frases interagem nos documentos e descobrindo
significados que no esto aparentes.

O DR-LINK [119] um sistema de consulta em linguagem natural que permite ao


usurio fazer uma pergunta em ingls comum e receber como retorno uma lista de
documentos relevantes. DR-LINK fornece alerta automtico, visualizao de dados e
feedback de relevncia e classificao de documentos.

As ferramentas descritas nesta parte da tese representam algumas das mais conhecidas
ferramentas comerciais existentes no mercado. O objetivo desta seo dar uma noo
da variedade de abordagens existentes nas aplicaes de text mining.

2.5.13 Tabela Comparativa


Uma tabela comparativa das ferramentas comerciais apresentadas na seo anterior
mostrada a seguir. Essa tabela resume suas principais caractersticas de implementao.
Os campos em branco significam que a caracterstica em questo no se manifesta na
ferramenta avaliada.

67

Produto/

Companhia/

Funes de

Tipo de Abordagem

Aplicao

Organizao

Refino de Texto

iMiner

IBM

Recuperao de

de Conhecimento
Baseada em Documento

Info, sumarizao

Smart

Inxight

Clustering,
categorizao

Baseada em Documento

Classificao

Baseada em Documento

Indexao

Info, sumarizao

Discovery
dt-Search

Recuperao de

Funes de Destilao

DT-Search

Procura por Thesaurus


TextSmart

Baseada em Documento

SPSS
Corporation

ThemeScape

Categorizaao baseada
em clustering

Baseada em Documento

Cartia

Clustering,
visualizao

cMap

Baseada em Documento

Canis

Histogramas de termos
Clustering,visualizao

Technology

IBM/

Watch

Synthema

VizServer

Inxight

Baseada em Documento

Clustering,
visualizao

Baseada em Documento

Hyperbolic tree
Visualizao

Temis

Temis Group

Recuperao de

Baseada em Conceito

Info
SemioMap

Entrieva

Knowledge

IBM

Discovery

Clustering,
categorizao

Baseada em Conceito

Recuperao de

Visualizao

Baseada em Conceito

Info

System
DR_LINK

TextWise

CINDOR CHESS

Recuperao e

Baseada em Conceito

Extrao de Info

WizDoc

WizSoft

Baseada em Conceito

Content

Data Junction Extrao de Info

Baseada em Conceito

Megaputer

Recuperao de

Baseada em Conceito

Info, sumarizao

rede semntica

Indexao

Extractor
TextAnalyst

Tabela 2.3. Ferramentas de Text mining

68

Classificao

Extrao,

Captulo 3
Descrio do Sistema

69

3 Descrio do Sistema
Este captulo visa descrever todos os passos da composio da soluo para clustering
de dados em Portugus. Sero mostradas as linguagens utilizadas, algoritmos e
bibliotecas adotadas para a composio dos mdulos integrantes da soluo
disponibilizada.

3.1 Linguagem Perl


A linguagem Perl se originou e se disseminou em ambiente UNIX. Hoje em dia, porm,
existem verses para ambiente windows. O nome a abreviatura de Practical
Extraction and Report Language (Linguagem prtica de extrao e relatrio).
considerada uma linguagem recomendada para desenvolvimento de scripts para
servidores web.

A linguagem perl foi escolhida para o desenvolvimento dos programas nesta tese por se
tratar de uma linguagem eficiente e de fcil manuteno na programao de uma ampla
faixa de tarefas. Dentre as facilidades oferecidas pela linguagem Perl esto as
relacionadas manipulao de arquivos de texto, motivo principal da escolha desta
linguagem.

A Perl bastante sucinta, ou seja, poucas linhas de cdigo podem descrever vrias
tarefas, sem significar linhas de cdigo muito difceis de ler ou complicadas para
escrever.

3.1.1

Compilador e Interpretador

Normalmente, para executar um programa escrito em qualquer linguagem, necessrio


um compilador ou um interpretador. Os dois tem suas vantagens:

Um compilador gera um arquivo executvel a partir das linhas de cdigo


programadas. O arquivo executvel gerado pode ento ser executado inmeras
vezes, copiado para outros computadores, e assim por diante, mesmo sem o
cdigo-fonte do programa. Durante a compilao do programa, os compiladores
70

tendem a executar otimizaes elaboradas no cdigo do programa de forma que


o cdigo final seja executado mais eficientemente.
-

Um interpretador processa o cdigo do programa linha a linha e executa as


tarefas solicitadas pelo cdigo neste mesmo instante. Depois que o programa foi
escrito ele pode ser executado imediatamente, sem a necessidade de um estgio
separado de compilao.

Existem vantagens e desvantagens nos dois mtodos. O cdigo compilado leva mais
tempo para ser preparado, mas depois ele rapidamente executado e o cdigo fonte
permanece secreto. O cdigo interpretado fica pronto rapidamente para a execuo, mas
no to rpido quanto o cdigo compilado.

A linguagem Perl um compilador que tenta ser um interpretador. A Perl compila um


cdigo de programa em cdigo executvel antes de execut-lo, portanto existe um
estgio de otimizao e o cdigo executvel trabalha mais rapidamente. Entretanto, ele
no grava esse cdigo em um arquivo executvel separado. Em vez disso, armazena-o
na memria e depois, executa-o.

Desta forma, a Perl combina o ciclo de desenvolvimento rpido de uma linguagem


interpretada com a execuo eficiente de um cdigo compilado. Existem, no entanto, as
desvantagens correspondentes: a necessidade de compilar o programa cada vez que ele
executado significa uma inicializao mais lenta que a de uma linguagem puramente
compilada e requer que os desenvolvedores distribuam o cdigo-fonte para os usurios.
No entanto, atualmente existem programas capazes de converter um script Perl em um
programa executvel, como o Perl2Exe.

Outra caracterstica importante da linguagem Perl que alm de portvel (pode ser
executada em diversas plataformas) permite a integrao com mdulos compilados,
como por exemplo DLLs.
Esta caracterstica pode ser explorada para aumentar o desempenho do sistema,
implementado-se partes crticas, ou com muito clculos matemticos em C ou C++ por
exemplo.

71

3.1.2

Conversor Script Executvel

O Perl2Exe [99] um programa para a converso de scripts Perl em arquivos


executveis. Ele permite que se crie programas independentes em Perl que no precisam
do interpretador Perl, ou seja, geram-se arquivos executveis que no precisam
disponibilizar o cdigo-fonte. O Perl2Exe pode gerar executveis para servidores
Windows e Unix.

72

3.2 Case Folding


Para facilitar a identificao correta de palavras, o primeiro passo do processo de prprocessamento dos dados textuais a converso para o mesmo tipo de caracter:
maisculo ou minsculo. No nosso caso, o tipo de caracter adotado foi o minsculo.

3.3 Stemmers
A implementao de Porter [25,92] foi comparada com o algoritmo adotado, o
StemmerPortuguese [93], no artigo [94]. Nesse artigo, o algoritmo adotado apresenta
desempenho superior em praticamente todas as classes sintticas.
A implementao do algoritmo de Porter para o Portugus [92] foi adaptada para Perl
para utilizao nesta tese, juntamente com o StemmerPortuguese. Empregou-se, no
entanto, uma verso em Perl e no a original disponibilizada em C.

3.3.1

Mtodo de Porter

O algoritmo de Porter se encontra disponvel em vrias pginas da internet. Este


algoritmo considerado como referncia no emprego do processo de stemming para a
lngua inglesa. Uma variao deste algoritmo foi desenvolvida para o Portugus [92] e
usada como base neste trabalho para a implementao em Perl. A seguir, apresentam-se
alguns conceitos bsicos utilizados no algoritmo de Porter implementado.
Este algoritmo faz uso das definies de regies R1 e R2. Estas regies so definidas
como a seguir:
-

R1 a regio depois da primeira no vogal seguindo a vogal, ou a regio vazia


no fim da palavra se no existe tal no-vogal.

R2 a regio depois da primeira no-vogal seguindo a vogal em R1 ou a


regio vazia no fim da palavra se no existe tal no-vogal.

A definio de no-vogal varia em cada idioma. Em italiano, por exemplo, o i entre


duas outras vogais no uma vogal. O que deve ser considerado vogal deve ficar bem
explcito para a verso de stemmer em cada idioma.

A seguir, exemplos de R1 e R2 so mostrados para algumas palavras em portugus


73

B a i l a r i n a
<---------------->
<-------->

R1
R2

A letra l a primeira no-vogal seguindo a vogal em bailarina, assim R1 arina. Em


R1, r a primeira no vogal seguindo a vogal. Assim R2 ina.

B a i l e
<->

R1

>< R2

Novamente, a letra l a primeira no-vogal seguindo a vogal, assim R1 apenas a


ltima letra, e. R1 no contm nenhuma no-vogal, assim R2 a regio vazia ao final da
palavra.
B i a
>< R1
>< R2

Em bia R1 e R2 so ambos nulos.


Outros exemplos:

A m i g v e l
<------------>
<--->

R1
R2

I n d e p e n d e n t e
<------------------------->
<---------------->

R1
R2

3.3.1.1 O algoritmo de Stemming de Porter


Outras consideraes devem ser feitas para contornar problemas inerentes Lingua
Portuguesa. Um destes problemas est relacionado acentuao. As letras em Portugus
incluem as seguintes formas acentuadas,
As seguintes letras so vogais:

74

E as duas formas de vogais anasaladas,


devem

ser

tratadas

como

uma

vogal

seguida

de

uma

consoante.

e so portanto substitudas por a~ e o~ na palavra, onde~ um caracter separado a


ser tratado como uma consoante. E assim - R2 (veja a nota em R1 e R2) e RV tem a
mesma definio que no stemmer para Espanhol. RV definido como a seguir:
Se a segunda letra uma consoante, RV a regio depois da prxima vogal a seguir, ou
se as primeiras duas letras so vogais, RV a regio depois da prxima consoante, e de
outra forma (caso consoante-vogal) RV a regio depois da terceira letra. Mas RV o
fim da palavra se essas posies no puderem ser encontradas.
Por exemplo:
macho oliva trabalho
|.....|
|.|
|......|

ureo
|....|

Sempre faa Passo 1.

Descrio do Passo 1 Remoo de sufixo padro


Procure pelo mais longo entre os seguintes sufixos, e execute a ao indicada.
eza ezas ico ica icos icas ismo ismos vel vel ista istas oso osa
osos osas amento amentos imento imentos adora ador aa~o adoras
adores ao~es
apague se em R2
loga logas
substitua com log se em R2
ncia ncias
substitua com ente se em R2
amente
apague se em R1
se precedido por iv, apague se em R2 (e se precedido por at, apague se em R2),
de outra forma,
se precedido por os, ic ou ad, apague se em R2
mente
apague se em R2
se precedido por avel or vel, apague se em R2
75

idade idades
apague se em R2
se precedido por abil, ic or iv, apague se em R2
iva ivo ivas ivos
apague se em R2
se precedido por at, apague se em R2
ira iras
substitua com ir se em RV e precedido por e
Faa passo 2 se nenhum final foi removido pelo passo 1.

Descrio do Passo 2 Sufixos de Verbos


Procure pelo mais longo entre os seguintes sufixos em RV, e se encontrado,
apague.
ada ida ia aria eria iria ar ara er era ir ava asse esse isse
aste este iste ei arei erei irei am iam ariam eriam iriam aram
eram iram avam em arem erem irem assem essem issem ado ido
ando endo

indo

ara~o

era~o

ira~o

ar er ir as adas idas ias

arias erias irias ars aras ers eras irs avas es ardes erdes irdes
ares eres ires asses esses isses astes estes istes is ais eis eis areis
ereis ireis reis areis reis ereis reis ireis sseis sseis sseis veis
ados idos mos amos amos aramos eramos iramos ramos ramos
ramos vamos emos aremos eremos iremos ssemos ssemos ssemos
imos armos ermos irmos eu iu ou ira iras
Se o ltimo passo a ser obedecido ou passo 1 ou 2 alteraram palavra, faa
passo 3

Descrio do Passo 3
Apague sufixo i se em RV e precedido por c
Alternativamente, se nem passo 1 ou 2 alteraram a palavra, faa passo 4

Descrio do Passo 4 Sufixo residual


Se a palavra termina com um dos sufixos : os a i o
em RV, apague-o

76

Sempre faa passo 5

Descrio do Passo 5
Se a palavra termina com: e
em RV, apague, e se precedida por gu (ou ci) com o u (ou i) em RV, apague o u
(ou i).
Ou se a palavra termina com remova a cedilha
E finalmente:
Mude a~, o~ de volta para ,

Durante a implementao do sistema, de forma a melhorar os resultados obtidos, foram


realizadas as seguintes modificaes no algoritmo de Porter original:
-

RV = R1
sufixos ordenados pelo comprimento

Esta modificaes foram propostas a partir dos resultados obtidos com o conjunto de
palavras de teste.

77

3.3.2

Stemmer Portuguese

O algoritmo adotado para o stemming de dados textuais em Portugus [93] o Stemmer


Portuguese, tambm conhecido por RSLP (Removedor de Sufixos para a Lngua
Portuguesa), que apresentado a seguir. Implementado originalmente em linguagem C,
o algoritmo composto de oito passos que devem ser executados seguindo uma ordem
definida. O fluxograma mostrado na figura 3.1 apresenta a seqncia que estes passos
devem obedecer.
Comea

Palavra termina
em "s"
?

No

Sim

Reduo de
Plural

Palavra termina
em "a"
?

No

Sim

Reduo de
Feminino

Reduo de
Aument ativo

Reduo de
Advrbio

Reduo de
Nome

Sufixo
Removido

Sim

Nao

Reduo de
Verbo

Sufixo
Removido

No

Remove
Vogal

Sim

Remove
Acentos

Fim

Figura 3.1 Seqncia de passos para o algoritmo de stemming RSLP

Em cada passo est contido um conjunto de regras. Porm, nem todas as regras so
aplicadas. A cada passo as regras so examinadas e apenas uma regra aplicada. O
sufixo mais longo possvel sempre removido primeiro por causa da ordem das regras
dentro de um passo, desse modo o sufixo plural es deveria ser testado antes do sufixo
s. No momento, esse stemmer para o idioma Portugus contm 199 regras, que esto
apresentadas no Apndice B. Basicamente, cada regra mostra:
-

O sufixo a ser removido;

78

O comprimento mnimo do stem: isto serve para evitar remover um sufixo


quando o stem muito curto. Esta medida varia para cada sufixo, e os valores
so definidos pela observao de listas de palavras terminando com o dado
sufixo. Embora no exista suporte lingstico para esse procedimento, ele reduz
erros de overstemming.

Um sufixo de reposio a ser anexado ao stem, se aplicvel;

Uma lista de excees: para aproximadamente, todas as regras definidas,


existiram excees. Assim, uma lista de excees foi adicionada para cada regra.
Tais listas foram construdas com a ajuda de um vocabulrio de 32000 palavras
em Portugus disponvel em [95]. Testes com o stemmer mostraram que listas de
exceo reduzem erros de overstemming em 5%.

3.3.2.1 Algoritmo de Stemming - StemmerPortuguese


Note que os stems gerados no precisam ter necessariamente um significado, uma vez
que eles so usados para indexar um banco de dados de documentos e no so
apresentados ao usurio.

Descrio do Passo 1 Reduo de Plural

Com raras excees, as formas de pural em Portugus terminam em s.


Entretanto, nem todas as palavras que terminam em s denotam plural, por exemplo
lpis. Esse passo consiste basicamente em remover o s final das palavras que no
esto

listadas

como

excees. Mesmo assim algumas vezes umas pequenas

modificaes so necessrias, por exemplo, palavras terminadas em ns deveriam ter


este sufixo substitudo por m como em bons bom.

Descrio do Passo 2 Reduo de Feminimo

Todos os nomes e adjetivos em Portugus tem um gnero. Este passo consiste em


transformar formas femininas em seus correspondentes masculinos. Apenas palavras
terminando em a so testadas neste passo mas nem todas elas so convertidas, apenas
aquelas terminando nos sufixos mais comuns, por exemplo, chinesa chins

79

Descrio do Passo 3 Reduo de Advrbio

Este passo o mais curto de todos, j que s existe um sufixo que denota advrbios
mente. Novamente, nem todas as palavras que terminam com mente so advrbios,
assim, uma lista de exceo necessria.

Descrio do Passo 4 Reduo de Aumentativo/ Diminutivo

Nomes e adjetivos em Portugus apresentam muito mais variaes que o equivalente em


Ingls. As palavras tem formas aumentativas, diminutivas e superlativas, por exemplo,
casinha, onde inha o sufixo que indica um diminutivo. Esses casos so tratados nesse
passo. De acordo com [96] existem 38 desses sufixos, entretanto alguns deles so
obsoletos. De modo a evitar o overstemming, o algoritmo de stemming adotado utiliza
apenas os mais comuns que ainda so de uso comum.

Descrio do Passo 5 Reduo de Sufixo de Nome

Esse passo testa palavras em relao a 61 finais de nomes (e adjetivos). Se um sufixo


removido aqui, os passos 6 e 7 no so executados.

Descrio do Passo 6 Reduo de Sufixo de Verbo

O idioma Portugus rico em termos de formas verbais, enquanto os verbos regulares


em ingls tem apenas quatro variaes (por exemplo, talk, talks, taked, talking), os
verbos regulares em Portugus apresentam aproximadamente 50 formas diferentes [97].
Cada uma tem seu sufixo especfico. Os verbos podem variar de acordo com o tempo,
pessoa, nmero e modo. As estruturas das formas verbais podem ser representadas
como: raiz+vogal temtica+tempo+pessoa, por exemplo, and+a+ra+m. Formas verbais
so reduzidas sua raiz.

Descrio do Passo 7 Remoo de Vogal

Esta tarefa consiste em remover a ltima vogal (a, e, o) das palavras que no tem
sofreram stemming pelos passos 5 e 6, por exemplo a palavra menino, no sofreria
80

qualquer modificao proveniente dos passos anteriores, portanto este passo remover
seu o final, de forma que ela possa ser reunida s outras variaes tais como menina,
meninice, menino, menininho, que tambm sero convertidas ao stem menin.

Descrio do Passo 8 Remoo de Acentos

Remover os acentos necessrio porque existem casos em que algumas formas de


variaes da palavra so acentuadas e outras no, como em psiclogo e psicologia,
depois desse passo ambas as formas seriam unidas para psicolog. importante que este
passo seja feito nesse ponto e no no incio do algoritmo porque a presena de acentos
significante para algumas regras, por exemplo, is ol transformando sis em sol. Se
ao invs disso a regra fosse ois ol, ela cometeria erros como fazer o stemming de dois
para dol.

3.3.2.2

Dificuldades no Stemming Portugus

O stemming do idioma Portugus muito mais problemtico que o stemming da lngua


Inglesa

devido

sua

morfologia

mais

complexa.

Abaixo

discute-se algumas

dificuldades particularmente importantes que foram consideradas na implementao


original do StemmerPortuguese conforme descritas a seguir:

Lidando com excees: Como mencionado anteriormente, uma das maiores


dificuldades em construir esse algoritmo para o Portugus que para quase toda
regra formulada existem excees, por exemplo o um sufixo comumente
usado para denotar aumentativo, entretanto, nem todas as palavras terminadas
em o so aumentativos. Por essa razo, diferentemente do stemmer de Porter,
houve a necessidade de listas de exceo. Se tivesse sido escolhido no usar
essas listas, o stemmer cometeria erros de overstemming se a regra fosse mantida
e understemming se a regra fosse abandonada.

Homografia: Existem vrios casos de homografia na Lngua Portuguesa, muitos


envolvendo verbos conjugados, por exemplo, casais que pode ser o plural de
casal, ou a segunda pessoa do plural do presente do verbo casar. Esse
algoritmo no tem informao sobre categorias de palavras, assim os diferentes

81

sentidos dessas palavras no podem ser distinguidos. Para esse caso especfico, o
stemmer assume o primeiro significado e executa o stemming para sua forma
singular casal, devido ao fato de que a segunda pessoa do plural ser quase
obsoleta no Portugus moderno.

Verbos irregulares: A verso corrente do stemmer no trata verbos irregulares,


mas isso no parece afetar seriamente os resultados pelos testes efetuados em
[93]. Os testes mostraram que menos de 1% dos erros ocorrem por causa desta
razo.

Mudanas para a raiz morfolgica: Existem casos em que o processo de inflexo


modifica a raiz da palavra. Os

casos em que a mudana obedece regras

ortogrficas (por exemplo, ns m) so tratadas com sucesso. Quanto aos


demais casos, ainda no esto sendo tratados por este stemmer, por exemplo
emitir e emisso, que so semanticamente relacionados, mas no esto sendo
reduzidos ao mesmo stem, j que o primeiro reduzido para emit e o segundo
para emis.

Stemming de Nomes Prprios: Nomes prprios no deveriam sofrer stemming, o


problema est na dificuldade de reconhec-los. Uma lista de nomes prprios no
pode ser considerada uma soluo ideal por duas razes principais: existem
infinitas possibilidades e alguns nomes prprios tambm so compartilhados por
nomes de coisas, por exemplo Pereira um sobrenome comum em Portugus
mas ele tambm significa p-de-pra. Como no stemming de Porter, a atual
verso desta implementao executa o stemming em nomes prprios.

82

3.4 Anlise de Clusters


A anlise de Clusters uma importante atividade humana e normalmente forma a base
de aprendizado e conhecimento. Um exemplo poderia ser o de uma criana que aprende
a distinguir entre plantas e animais, ou ainda entre peixes e aves, melhorando esquemas
de clustering subconscientes. Basicamente, o esquema aprendido por observao das
propriedades ou caractersticas (por exemplo, a presena de asas ou nadadeiras) dos
objetos. Este tipo de propriedade binria fcil de medir, mas algumas propriedades
podem ser mais difceis de mensurar. Um exemplo seria o de propriedades que so
expressas em valores numricos, como a altura de uma pessoa.

Clustering aplicado a uma grande variedade de problemas em diversas reas de


pesquisa. No campo dos negcios clustering pode ser usado para ajudar pessoas da rea
de marketing a descobrir grupos distintos em suas bases e caracterizar grupos de
consumidores baseando-se em padres de compra. No campo da medicina, clustering de
doenas, sintomas de doenas e curas para doenas, comumente levam a taxonomias
interessantes. No campo da biologia, pode ser usado para categorizar genes com funo
similar e obter taxonomias de animais e plantas. No campo da psiquiatria, clustering
tem ajudado mdicos no correto diagnstico de clusters de sintomas como parania,
mania de perseguio, etc. Na arqueologia, pesquisadores freqentemente aplicam
tcnicas analticas de cluster para estabelecer taxonomias de ferramentas de pedra,
objetos funerrios, etc.
Clustering um processo de particionar um conjunto de objetos de dados em um
conjunto de subclasses significativas, chamadas clusters. Formalmente, consideremos
uma coleo de n objetos decritos por um conjunto de p atributos. O processo de
clustering visa obter uma diviso til de n objetos em um nmero de clusters. Um
cluster uma coleo de objetos de dados que so similares uns aos outros, baseados
em seus valores de atributos, e assim podem ser tratados coletivamente como um grupo.
Clustering til no entendimento da distribuio de um conjunto de dados.
Um algoritmo de cluster tenta encontrar grupos naturais nos dados baseados em
similaridade de atributos. A seguir apresenta-se alguns requisitos tpicos de clustering
em minerao de dados [44]:

83

Escalabilidade: Vrios algoritmos de clustering podem trabalhar bem em


pequenos conjuntos de dados; entretanto alguns deles podem falhar em
manusear grandes conjuntos de dados. Uma soluo imediata para este problema
executar o clustering em um subconjunto (ou amostra) de um grande conjunto
de dados dado, mas isto pode levar a resultados tendenciosos. Uma outra soluo
a utilizao de algoritmos paralelos e distribudos.
Dimensionalidade Alta: Um banco de dados pode conter muitas dimenses ou
atributos. A maior parte dos algoritmos de clustering trabalha bem em dados de
dimensionalidade baixa, mas podem falhar em realizar o clustering de objetos
em um espao de dimensionalidade alta, especialmente quando os objetos de
dados esto muito esparsos ou espalhados. Em conjunto de dados de
dimensionalidade alta, normalmente no existem clusters naturais no espao
dimensional inteiro, apenas no subespao formado por um conjunto de
dimenses correlacionadas. Localizar clusters no subespao pode ser desafiador.
Um exemplo tpico o clustering de documentos que tambm foco desta tese.
Vrios algoritmos de clustering simplesmente constrem uma nova dimenso
para cada palavra distinta no conjunto de documentos. Devido aos grandes
corpus em Portugus, o espao usualmente contm acima de dez mil dimenses,
o que reduz enormemente o desempenho do algoritmo. Este problema tambm
proximamente relacionado aos assuntos escalabilidade e eficincia.
Forma arbitrria dos clusters: Vrios algoritmos desempenham clustering
baseados na medida de distncia Euclidiana ou Manhattan. Algoritmos usando
estes tipos de medida de distncia tendem a encontrar clusters esfricos com
densidade e tamanho similar. Esta limitao frequentemente degrada a exatido.
Essas duas mtricas, em geral, no so adequadas para clustering de
documentos.
Insensibilidade ordem dos dados de entrada: Alguns algoritmos de clustering
so muito sensveis ordem dos dados de entrada. As solues de clustering
produzidas a partir do mesmo conjunto de objetos de dados pode ser
completamente diferente dependendo de diferentes ordens dos dados de entrada.

84

Em outras palavras, a qualidade das solues de clustering produzidas pelo


mesmo conjunto de objetos de dados pode ser completamente diferente
dependendo das diferentes ordens dos dados de entrada. Em outras palavras, a
qualidade das solues de clustering pode variar substancialmente e se tornar
imprevisveis.
Manuseio de dados com rudo: outliers ou dados errneos so um problema
comum em bancos de dados. Um algoritmo de clustering robusto deveria
minimizar o impacto deste rudo; de outro modo pode levar a uma acurcia de
clustering pobre.
Conhecimento prvio do domnio: Vrios algoritmos de clustering requerem que
o usurio especifique alguns parmetros de entrada como o nmero de clusters k,
o nmero de iteraes, mtricas, etc. Para determinar valores razoveis desses
parmteros de entrada, algum conhecimento prvio do domnio muitas vezes
necessrio.

Entretanto,

eles

so

difceis

de

estimar

em

alguns

casos,

especialmente para conjuntos de dados contendo objetos de dimensionalidade


alta. A acurcia do clustering pode degradar drasticamente se um algoritmo de
clustering muito sensvel a esses parmetros de entrada. Isto no apenas
incomoda os usurios, mas tambm torna a qualidade do clustering difcil de
controlar.

3.4.1

Clustering Hierrquico de Documentos

Clustering de Documentos a organizao automtica de documentos em clusters ou


grupos de modo que documentos dentro de um cluster tem similaridade alta
comparando-se uns aos outros, mas so muito dissimilares a documentos em outros
clusters. Em outras palavras, o agrupamento baseado no princpio de maximizao da
similaridade intra-cluster e minimizao da similaridade inter-cluster. O maior desafio
do clustering identificar eficientemente grupos significativos que so concisamente
anotados.

85

Clustering tambm chamado de aprendizado no-supervisionado porque aprende-se


por observao e no por exemplos.

Ao invs de produzir uma simples lista de clusters, o clustering hierrquico de


documentos organiza os clusters em uma hierarquia ou rvore que facilita o browsing.
O relacionamento pai-filho entre os ns da rvore pode ser visto como tpicos ou subtpicos numa hierarquia de assuntos.

O conceito de clustering hierrquico e a incapacidade dos mtodos de clustering padro


formulam o objetivo desta pesquisa: Fornecer um mtodo de clustering acurado,
eficiente e escalvel, que resolva problemas do clustering de documentos. A hierarquia
de clusters resultante deveria facilitar o browsing e ser adequado para outros
processamentos de outros algoritmos de minerao de dados.

Muitos algoritmos de clustering de documentos empregam vrios passos de prprocessamento, incluindo a remoo de stop words e stemming no conjunto de
documentos. Para fins de clustering, no faz diferena se os stems gerados so palavras
genunas ou no. Stemming no apenas aglomera variantes de um termo em uma forma
nica de representao, mas tambm reduz o nmero de termos distintos necessrios
para representar um conjunto de documentos. Um nmero menor de termos distintos
resulta em economia de memria, espao e tempo de processamento.
Cada documento representado por um vetor de freqncias dos itens remanescentes
dentro do documento. Esses vetores-documento formam um modelo vetorial no qual
todas as operaes de clustering so executadas. Existem tipicamente milhares de itens
remanescentes depois da remoo de stop words e stemming. Em outras palavras, o
espao vetorial ainda teria uma dimensionalidade muito alta [76].

Como um passo extra do pr-processamento, vrios algoritmos de clustering de


documentos substituem a frequncia de termos atual de um item por uma frequncia
balanceada, isto , freqncia do termo (term frequency), - freqncia inversa do
documento (inverse document frequency) TF-IDF no vetor documento. A idia
que se um item muito comum por todos os diferentes documentos, ento ele teria um
baixo poder discriminativo, e vice-versa [61]. Experimentos mostram que o peso TFIDF aumenta a acurcia do clustering em todos os algoritmos testados.
86

wi, d = TFi, d log (n DFi )

onde:
TFi,d = freqncia de um termo i em um documento j
n = nmero total de documentos
DFi =nmero de documentos que contm o termo i
Assim como outros algoritmos de clustering de documentos, o mtodo adotado emprega
a remoo de stopwords, stemming, modelo vetorial, e TF-IDF.

Para clustering de documentos similares juntos, a maior parte dos algoritmos de


clustering requer uma medida de similaridade entre dois documentos d1 e d2 . Vrias
medidas possveis so propostas na literatura, mas a mais comum a medida cosseno
[2], definida abaixo:

similarida de(d1 , d 2 ) = cos seno(d 1 , d 2 ) =

(d 1 d 2 )
d1 d 2

onde representa o vetor produto escalar e

representa o comprimento de um vetor.

3.5 C-Clustering Library


Os algoritmos de clustering disponibilizados so provenientes da integrao da CClustering Library [98] com o sistema desenvolvido. C-Clustering Library um
conjunto de rotinas que reunidas implementam os algoritmos de clustering que so mais
comumente usados. Os algoritmos de clustering so:
Clustering Hierrquico (centroid- linkage, single-linkage, complete-linkage, e
average-linkage);
Clustering K-means;
Self-Organizing Maps;

87

Esta biblioteca foi escrita em ANSI C e, dessa forma, pode ser facilmente ligada a
outros programas C/C++. Esta biblioteca particularmente til quando chamada de uma
linguagem script tal como Perl [120], Python [121], ou Ruby [122]. A interface com a
linguagem Perl feita utilizando um wrapper disponvel.

3.5.1

Manuseio dos Dados

A entrada para as funes de distncia contm dois arrays e dois ndices de linha ou de
coluna, ao invs de dois vetores de dados. Isto permite calcular a distncia entre dois
casos (vetores) ou entre atributos na matriz de similaridades formada.

3.5.1.1 Pesos
Para a maior parte das funes de distncias disponveis na C-Clustering Library, um
vetor peso pode ser aplicado. O vetor peso contm pesos para os elementos do vetor de
dados. Se o peso para o elemento I wi, ento aquele elemento tratado como ele
ocorresse wi vezes nos dados. O peso no tem que ser um nmero inteiro. Para a
correlao de Spearman e de Kendall, discutida a seguir, os pesos no tem um
significado bem definido e dessa forma no so implementados.

3.5.1.2 Valores Ausentes


comum encontrar dentre os dados que sero levados anlise, valores de dados nopreenchidos. Neste caso, esse valores so indicados e no so levados em considerao
para o clculo das funes de distncia.

3.5.2

Funes de Distncia

Para o clustering de dados em grupos de itens similares, deve-se primeiro definir o que
significa similar. Na C-Clustering Library, oito funes de distncia esto disponveis
para medir a similaridade ou a distncia entre os vetores de dados:
Coeficiente de correlao de Pearson;

88

Valor absoluto do coeficiente de correlao de Pearson;


Correlao de Pearson descentralizada (equivalente ao cosseno do ngulo entre
dois vetores de dados);
Correlao de Pearson descentralizada absoluta (equivalente ao cosseno do
menor ngulo entre dois vetores de dados);
Correlao de Spearman;
de Kendall;
Distncia Euclidiana;
Distncia Euclidiana harmonicamente somada;
Distncia City-block.

As primeiras seis distncias esto relacionadas ao coeficiente de correlao, enquanto as


trs outras esto relacionadas distncia Euclidiana.
Quando se lida com documentos, normalmente no se utiliza distncia Euclidiana, pois,
tradicionalmente no fornecem bons resultados. comum a utilizao do cosseno.

3.5.2.1 Coeficiente de Correlao de Pearson


O coeficiente de correlao de Pearson definido como:
1 n x i x y i y

r =
n i=1 x y

no qual x, y so a mdia das amostras de x e y respectivamente, e x , y so o desvio


padro da amostra de x e y. O coeficiente de correlao de Pearson uma medida para o
quo bem uma linha reta pode ser adequado para um grfico de disperso (scatterplot)
de x e y. Se todos os pontos no grfico de disperso repousam sobre um linha reta, o
coeficiente de correlao de Pearson ou +1 ou 1, dependendo se a inclinao da linha
positiva ou negativa. Se o coeficiente de correlao de Pearson igual a zero, no
existe correlao linear entre x e y.
A distncia de Pearson ento definida como:

89

d p 1 r.
Uma vez que o coeficiente de correlao encontra-se entre 1 e 1, a distncia de Pearson
encontra-se entre 0 e 2.
Note que a correlao de Pearson automaticamente centraliza os dados pela subtrao
da mdia, e os normaliza pela diviso pelo desvio padro. Essa normalizao til em
vrias situaes, porm existem casos em que a magnitude dos atributos precisa ser
preservada.

3.5.2.2 Correlao de Pearson Absoluta


Tomando-se o valor absoluto da correlao de Pearson, encontra-se um nmero entre
zero e um. Se o valor absoluto um, todos os pontos no scatter plot repousam sobre
uma linha reta ou com inclinao positiva ou negativa. Se o valor absoluto igual a
zero, no existe correlao entre x e y.
A distncia definida usualmente como:

dA 1 r ,
onde r o coeficiente de correlao de Pearson. Uma vez que o valor do coeficiente de
correlao de Pearson encontra-se entre 0 e 1, a distncia correspondente encontra-se
entre 0 e 1 tambm.

3.5.2.3 Correlao descentralizada Cosseno do ngulo


Em alguns casos pode ser prefervel usar correlao descentralizada ao invs de
coeficiente de correlao de Pearson convencional. A correlao descentralizada
definida como:

rU =

1 n x i y i
,

n i=1 x(0) (y0 )

onde

90

x(0) =

i n 2
xi
n
i =1

y(0) =

i n 2
yi
n
i =1

Esta a mesma expresso que para o coeficiente de correlao de Pearson


convencional, exceto que a mdia das amostras x, y so definidas como iguais a zero.
A correlao descentralizada pode ser apropriada se existe um estado de referncia zero.
A distncia correspondente ao coeficiente de correlao descentralizado definido
como

dU 1 rU ,
onde rU a correlao descentralizada. Uma vez que o coeficiente de correlao
descentralizado encontra-se entre 1 e 1, a distncia correspondente encontra-se entre 0
e 2.
A correlao descentralizada igual ao cosseno do ngulo de dois vetores de dados no
espao n-dimensional, e frequentemente referido como tal. Deste ponto de vista, faz
mais sentido definir a distncia como o arco cosseno do coeficiente de correlao
descentralizado.

3.5.2.4 Correlao descentralizada absoluta


Assim como a correlao de Pearson, pode-se definir a medida de distncia usando o
valor absoluto da correlao descentralizada:

d AU 1 rU ,
onde rU o coeficiente de correlao descentralizado. Uma vez que o coeficiente de
correlao descentralizado encontra-se entre 0 e 1, a distncia correspondente encontrase entre 0 e 1, tambm.

91

Geometricamente, o valor absoluto da correlao descentralizada igual ao cosseno


entre as linhas de sustentao dos dois vetors de dados isto , o ngulo sem levar a
direo dos vetores em considerao.

3.5.2.5 Correlao de Spearman


A correlao de Spearman [123] um exemplo de uma medida de similaridade noparamtrica. Ela til porque ela mais robusta contra dados errneos (outliers) que a
correlao de Pearson.
Para calcular a correlao de Pearson, substitui-se cada valor dos dados pela sua faixa se
os dados fossem ordenados em cada vetor por seu valor. Calcula-se ento a correlao
de Pearson entre os dois vetores de faixa ao invs de vetores de dados.

Se a correlao de faixa de Spearman usada, os pesos no podem ser adequadamente


aplicados aos dados, especialmente se os pesos no so necessariamente nmeros
inteiros. O clculo da correlao de faixa de Spearman na C-Clustering Library portanto
no leva em considerao nenhum peso. Como no caso da correlao de Pearson, podese definir uma medida de distncia correspondendo correlao de faixa de Spearman
como

d S 1 rS ,
onde rS a correlao de faixa de Spearman.
3.5.2.6 de Kendall
O de Kendall um outro exemplo de medida de similaridade no paramtrica. Ela
similar correlao de faixa de Spearman, mas ao invs das prprias faixas, apenas as
faixas relativas so usadas para calcular o . Como na correlao de faixa de
Spearman, os pesos so ignorados no clculo. Pode-se definir uma medida de distncia
correspondente ao de Kendall como:

dK 1.

92

Uma vez que o de Kendall definido de tal forma que se encontra entre 1 e 1, a
distncia correspondente estar entre 0 e 2.

3.5.2.7 Distncia Euclidiana


A distncia Euclidiana definida como:

d=

(x
i =1

y i )2 .

Nessa frmula, os parmetros x i e yi so subtrados diretamente um do outro. Deveriase dessa forma ter certeza que esses parmetros esto normalizados adequadamente
quando se usa a distncia Euclidiana.
Diferentemente das funes de distncia baseadas em correlao, a distncia Euclidiana
leva em considerao a magnitude das diferenas dos valores dos dados. Dessa forma,
ela preserva mais informao sobre os dados e pode ser prefervel.
Entretanto, embora seja uma medida comum para dados convencionais, esta mtrica e
suas variaes, como a Distncia Euclidiana Harmonicamente Somada no so
consideradas propcias para dados textuais, apresentando resultados pobres quando
comparadas a outras mtricas.

3.5.2.8 Distncia Euclidiana Harmonicamente Somada


Distncia Euclidiana Harmonicamente Somada a variao da distncia Euclidiana,
onde os termos para as diferentes dimenses so inversamente somados (similar mdia
harmnica):

1 n 1
d =
n i =1 xi yi

A distncia Euclidiana harmonicamente somada mais robusta contra dados errneos


quando

comparada

distncia

Euclidiana.

Note

que

harmonicamente somada no uma mtrica. Por exemplo considere:

93

distncia

Euclidiana

u = (1, 0 );
v = (0 ,1);
w = (1,1).
Isto fornece

d (u , v ) = 1 enquanto d (u , w ) + d ( w , v ) = 0

3.5.2.9 Distncia City-block


A distncia City-block, tambm conhecida como Manhattan distance, relacionada
distncia Euclidiana. Assim como a distncia Euclidiana corresponde ao comprimento
do caminho mais curto entre dois pontos, a distncia city-block a soma das distncias
ao longo de cada dimenso:

d = xi yi .
i =1

Isto igual distncia que se deveria caminhar entre dois pontos em uma cidade, onde
se tem que caminhar por quadras da cidade. A distncia city-block uma mtrica que
como a distncia Euclidiana, possui parmetros que so subtrados uns dos outros
diretamente, e deve-se ter o cuidado de que os parmetros sejam normalizados.

3.5.2.10 Calculando a distncia entre clusters


Nos mtodos de clustering hierrquicos, a matriz de distncias primeiramente
calculada, e em passos sucessivos do algoritmo a nova matriz de distncias calculada a
partir da martiz de distncias anterior. Em alguns casos, entretanto, gostaria-se de
calcular a distncia entre clusters diretamente, dados seus membros.
A distncia entre dois clusters pode ser definida de vrias maneiras. A distncia entre os
meios aritmticos de dois clusters usada no clustering de pares centroid-linkage e no
clustering K-means. Para o ltimo, a distncia entre as mdias de dois clusters pode ser
usada alternativamente. A distncia de pares mais curta entre elementos de dois clusters

94

usada no clustering de pares single-linkage. No clustering de pares average-linking, a


distncia entre dois clusters definida como a mdia sobre as distncias de pares.

3.5.2.11 Matriz de Distncias


Na etapa de clustering, um passo considerado bsico o clculo da matriz de distncias.
Essa matriz contm todas as distncias entre os itens que esto sendo agrupados. Uma
vez que as funes de distncia so simtricas, a matriz de distncias tambm
simtrica. Alm do mais, os elementos da diagonal so zero, assim como a distncia de
um item para ele mesmo zero. A matriz de distncias pode, desse modo, ser
armazenado em um array, com o nmero de colunas em cada linha igual ao nmero da
linha (zero-offset). A distncia entre os itens i e j armazenada no localizao [i] [j] se j
< i, em [j] [i] se j > i, enquanto ela zero se j=i. Note que a primeira linha da matriz de
distncias vazia. Ela includa para convenincia computacional, uma vez que incluir
uma linha vazia requer um armazenamento mnimo.

3.5.3

Algoritmos Particionais

Algoritmos particionais dividem itens em K clusters de tal forma que a soma das
distncias dos itens aos centros de seus clusters mnima. O nmero de clusters K
especificado pelo usurio. Dos algoritmos particionais disponveis na C-Clustering
Library, foram utilizados:
Clustering K-means
Clustering K-medians

Esses algoritmos diferem em como o centro do cluster definido. No clustering Kmeans, o cluster definido como o vetor mdio dos dados ponderado por todos os itens
no cluster. Ao invs de vetor mdio, no clustering K-medians a mdia calculada para
cada dimenso do vetor de dados. O algoritmo de clustering adequado para casos no
quais a matriz de distncias conhecida, mas a matriz de dados originais no est
disponvel.
O

algoritmo

maximizao

de

expectativa

(Expectation-Maximixation -

EM)

comumente usado para encontrar o particionamento em k grupos. O primeiro passo no

95

algoritmo EM criar K clusters e associar randomicamente itens a eles. A seguinte


iterao ento feita:
Calcula-se o centride de cada cluster;
Para cada item, determina-se qual centride de cluster o mais prximo;
Reassocie o item quele cluster.
A iterao terminada se no h mais reassociaes de itens acontecendo.

Como a associao inicial dos itens aos clusters feita randomicamente, usualmente
uma soluo diferente de clustering encontrada cada vez que o algoritmo EM
executado. Para encontrar a soluo tima de clustering, o algoritmo K-means
repetido vrias vezes, cada vez comeando de um clustering randmico inicial
diferente. A soma das distncias dos itens para os centros dos clusters guardada para
cada execuo, e a soluo com o menor valor dessa soma ser retornada como a
soluo de clustering geral.
A freqncia com que o algoritmo de EM deve ser executado depende do nmero de
itens sendo agrupados. Como regra, pode-se considerar a freqncia com que a soluo
tima foi encontrada. Esse nmero retornado pelos algoritmos particionais como
implementado na biblioteca. Se a soluo tima foi encontrada muita vezes,
improvvel que solues melhores que aquela encontrada existam. Entretanto, se a
soluo tima foi encontrada apenas uma vez, pode existir outras solues com uma
soma de distncia intra-cluster menor.

3.5.3.1 Inicializao
O algoritmo K-means pode ser inicializado pela associao randmica de itens aos
clusters. Um cuidado especial seria assegurar-se que nenhum cluster vazio produzido.
Isto feito primeiro escolhendo-se K itens randomicamente e associando-se cada um
deles a um cluster diferente. Os itens remanescentes so ento randomicamente
associados aos clusters. Cada cluster assim garantido de conter ao menos um item.

3.5.3.2 Encontrando o centride do cluster


O centride de um cluster pode ser definido de vrias maneiras. Para o clustering Kmeans, o centride de um cluster definido como o vetor mdio de todos os itens num

96

cluster para cada dimenso separadamente. Para robustez contra dados errneos, no
clustering K-medians a mdia para cada dimenso usada ao invs do vetor mdio. A
C-Clustering Library fornece rotinas para calcular o vetor mdio do cluster e a mdia
do cluster.

3.5.3.2.1 Encontrando o vetor mdio do cluster


A rotina calcula o centride dos clusters calculando-se o vetor mdio para cada
dimenso separadamente para todos os objetos de um cluster. Valores ausentes no so
includos no clculo do vetor mdio. Se o meio do cluster tiver um valor ausente, ser
armazenado no array cmask. Se para o cluster i os valores de dados para a dimenso j
esto ausentes para todos os itens, ento cmask [i] [j] (ou cmask [j] [i] se transpose =
=1) definido como zero. De outro modo, definido como 1.

3.5.3.2.2 Encontrando a mdia do cluster


A rotina calcula os centrides dos clusters calculando a mdia para cada dimenso
separadamente por todos os itens num cluster. Valores de dados ausentes no so
includos no clculo da mdia. Se a mdia do cluster tiver um valor ausente, ser
armazenado no array cmask. Se para o cluster i os valores de dados para a dimenso j
esto ausentes para todos os itens, ento cmask [i] [j] (ou cmask [j] [i] se transpose =
=1) definido como zero. De outro modo, definido como 1. Calcular a mdia pode
tomar mais tempo que calcular o meio.

3.5.3.3 Algoritmo EM
O algoritmo EM como implementado na C-Clustering Library primeiro radomicamente
associa itens aos clusters, seguindo por iterao para encontrar uma soluo de
clustering com a menor soma de distncias intra-cluster. Durante a iterao, primeiro
encontra-se os centrides de todos os clusters, onde os centrides so definidos em
termos do vetor mdio ou da mdia. As distncias de cada objeto para os centros dos
clusters so calculadas, e determina-se para cada objeto que cluster est mais perto.
Reassocia-se, ento, os itens para os seus clusters mais prximos e recalcula-se os
centros dos clusters.

97

Todos os itens so primeiro associados antes de recalcular os centrides dos clusters.


Isto tem duas consequncias:
Se no-checados, clusters podem se tornar vazios se todos os itens so reassociados.
Para o clustering K-means e K-medians, a rotina EM mantm o registro do nmero de
itens em cada cluster todas as vezes, e probe um item de ser reassociado a um cluster
diferente se isto puder fazer com que o cluster corrente se torne vazio.
Em princpio, a ordem no qual itens so reassociados a clusters no importam.
Entretanto, uma vez que se force um item a ficar em um cluster se ele o ltimo item
remanescente, para clustering K-means e K-medians precisa-se randomizar a ordem de
qualquer maneira para assegurar que nem sempre os mesmos itens sejam forados a
ficar em um cluster.

O algoritmo EM termina quando no acontecem mais reassociaes. Nota-se,


entretanto, que para alguns conjuntos de associaes iniciais de cluster, o algoritmo EM
falha em convergir devido mesma soluo de clustering reaparecendo periodicamente
depois de um pequeno nmero de passos iterativos. No algoritmo EM como
implementado na C-Clustering Library, a ocorrncia de tais solues peridicas
checada. Depois de um determinado nmero de passos de iterao, o resultado corrente
do clustering guardado como uma referncia. Comparando o resultado do cluster
depois de cada passo de iterao subsequente com o estado de referncia, pode-se
determinar se um resultado de clustering previamente encontrado achado. Em tal caso,
a iterao parada. Se depois de um dado nmero de iteraes o estado de referncia
no tiver ainda sido encontrado, a soluo de clustering corrente guardada para ser
usada como novo estado de referncia. Inicialmente, dez passos de iterao so
executados antes de salvar novamente o estado de referncia. O nmero de passos
iterativos dobrado cada vez, para assegurar que o comportamento peridico com
perodos mais longos possa ser detectado.

98

3.5.3.4 Encontrando a soluo tima


K-means e K-medians

A soluo tima encontrada, executando o algoritmo EM repetidamente e salvando a


melhor soluo de clustering que foi retornada dessa rotina. Isto pode ser feito
automaticamente chamando a rotina kcluster. A rotina para calcular o centride do
cluster e a funo de distncia so selecionados baseados nos argumentos passados no
kcluster.
O algoritmo EM ento executado repetidamente, salvando a melhor soluo de
clustering que foi retornada por essas rotinas. Alm disso, kcluster conta com que
freqncia o algoritmo EM encontrou esta soluo. Se ela foi encontrada vrias vezes,
pode-se assumir que no existem solues possveis com uma soma de distncias intracluster. Se, entretanto, a soluo foi encontrada apenas uma vez, pode ser que exista
uma soluo melhor.

3.5.4

Clustering Hierrquico

3.5.4.1 Mtodos de clustering hierrquicos


Mtodos de Clustering Hierrquicos so essencialmente diferentes do mtodo de
clustering K-means. Nos mtodos de clustering hierrquicos os dados so arranjados
segundo uma estrutura de rvore. Um dos passos bsicos do processo de clustering o
clculo da matriz de distncias, especificando todas as distncias entre os itens a serem
agrpupados. A seguir, cria-se um n pela unio de itens ou ns baseados na distncia
entre eles, at que todos os itens pretenam ao mesmo n. Pode-se criar uma estrutura
de rvore traando novamente que itens e ns foram unidos. Diferentemente do
algoritmo EM, que usado no clustering K-means, o processo completo de clustering
hierrquico determinstico.
Existem muitas variaes de clustering hierrquico, que diferem em como a distncias
entre os sub-ns definida em termos de seus membros. Na C-Clustering Library
single, maximum, average, e centroid linkage esto disponveis.
No clustering de pares single-linkage, a distncia entre dois ns definida como a
distncia mais curta dentre as distncias de pares entre os membros dos dois ns.

99

No clustering de pares maximum-linkage, alternativamente conhecida como clustering


de pares complete-linkage, a distncia entre dois ns definida como a distncia mais
longa dentre as distncias de pares entre os membros dos dois ns.
No clustering de pares average-linkage, a distncia entre dois ns definida como a
mdia de todas as distncias de pares entre os elementos dos dois ns.
No clustering de pares centroid-linkage, a distncia entre dois ns definida como a
distncia entre seus centrides. Os centrides so calculados tomando-se o vetor mdio
de todos os elementos de um cluster. Como a distncia de cada novo n formado para
os ns existentes e itens precisam ser calculados a cada passo, o tempo computacional
de clustering de pares centroid-linkage pode ser significativamente mais longo que para
outros mtodos de clustering hierrquicos. Clustering de pares centroid-linkage
algumas vezes referido como clustering de pares average-linkage.
Para clustering de pares single-, complete-, e average-linkage, a distncia entre dois ns
pode ser encontrada diretamente a partir das distncias entre itens individuais. Por essa
razo, o algoritmo de clustering no precisa dos dados diretamente, uma vez que a
matriz de distncias seja conhecida. Para clustering de pares centroid-linkage,
entretanto, os centrides dos novos sub-ns formados s podem ser calculados a partir
dos dados originais e no a partir da matriz de distncias.

3.5.4.2 Podando a rvore de clustering hierrquico


A estrutura de rvore gerada pela rotina de clustering hierrquico pode ser melhor
analisada pela diviso dos dados em n clusters, onde n um inteiro positivo menor ou
igual ao nmero de elementos que foram agrupados. Isso pode ser alcanado ignorando
os n-1 eventos ligados no topo da estrtura de rvore, resultando em n sub-ns separados.
Os elementos em cada sub-n so ento associados ao mesmo cluster. A rotina cuttree
determina para qual cluster cada elemento associado, baseado no resultado do
clustering hierrquico armazenado na estrutura de rvore.

3.5.5

SOM

Self-Organizing Maps (SOM) [103] foi inventada por Kohonen e foi criada usando
tcnicas de redes neurais artificiais. Um conjunto de vetores entrada para um mapa

100

(map) consistindo de unidades. Associado com cada unidade est um vetor peso,
inicialmente consistindo de valores randmicos. As unidades respondem mais ou menos
ao vetor de entrada de acordo com a correlao entre o vetor de entrada e o vetor peso
da unidade. unidade com a resposta mais alta permite-se aprender, assim como
algumas unidades da vizinhana. A vizinhana decresce em tamanho durante o perodo
de treinamento. O aprendizado feito ajustando-se os pesos das unidades em uma
pequena quantidade para refletir melhor o vetor de entrada.
O resultado do treinamento que um modelo de organizao emerge no mapa.
Unidades diferentes aprendem a responder a vetores diferentes do conjunto de entrada, e
unidades prximas tendero a responder a vetores de entrada que se assemelham.
Quando o treinamento encerrado, o conjunto de vetores de entrada aplicado ao mapa
mais uma vez, marcando para cada vetor de entrada a unidade (cluster) que responde de
maneira mais forte (a mais similar) quele vetor. Assim, SOM organiza vetores de
entrada (itens)

em unidades (clusters) que esto localizados em alguma topologia.

Usualmente uma topologia retangular escolhida. Os clusters gerados so tais que


clusters vizinhos na topologia so mais similares uns aos outros que clusters longe uns
dos outros na topologia.
Se documentos esto sendo agrupados, ento o nmero de elementos em cada vetor de
dados igual ao nmero de termos na matriz de clustering.
SOM ento gerada tomando os documentos um de cada vez, e encontrando que cluster
na topologia tem o vetor de dados mais prximo. O vetor de dados daquele cluster,
assim como aqueles de clusters vizinhos, so ajustados usando o vetor de dados do
documento em considerao.
O ajuste dado por:

x term = ( x doc x term )


O parmetro um parmetro que decresce a cada passo da iterao. usada uma
funo linear simples do passo de iterao:
i
= init 1 ,
n

101

no qual init o valor inicial de como especificado pelo usurio i o nmero do passo
de iterao corrente, e n o nmero total de passos de iterao a ser executado.
Enquanto mudanas so feitas rapidamente no incio da iterao, ao final da iterao
apenas pequenas mudanas so feitas.
Todas os clusters dentro de um raio R so ajustados para o documento em considerao.
Esse raio decresce conforme o clculo progride com:
i

R = Rmax 1 ,
n

no qual o raio mximo definido como:

Rmax = N x2 + N y2 ,
onde (N x, Ny), so as dimenses do retngulo definindo a topologia.

102

3.6 O Processo de Clustering


O clustering de textos em portugus realizada em quatro etapas distintas.
-

pr-processamento

gerao da matriz de clustering

clustering propriamente dito

visualizao

A primeira etapa conhecida como pr-processamento e corresponde s atividades


preparao dos textos originais para o clustering e totalizao dos termos.
Nesta etapa so realizadas diversas atividades, dentre elas a retirada de palavras, termos
e smbolos indesejados, como por exemplo, pontuao e nmeros. A atividade seguinte
a substituio dos sinnimos, seguida de stemming dos termos restantes. A etapa final
a totalizao e sumarizao de todos os termos presentes na lista de arquivos.
Para a atividade de stemming o sistema oferece como alternativas os algortmos RSLP,
Porter e nenhum.

Na segunda etapa, o sistema produz a matriz de clustering com os valores de peso a


serem adotados para cada termo no correspondente arquivo.
Nessa matriz, as linhas correpondem aos arquivos (documentos) a serem agrupados e as
colunas aos termos encontrados na lista de arquivos pr-processados.
As opes disponveis para o clculo do peso na matriz de clustering so TF (Term
Frequency), IDF (Inverse Document Frequency) e TF-IDF (Term Frequency * Inverse
Document Frequency).
Ainda como opo, o usurio pode definir o nmero de termos, dentre os mais
freqentes que sero utilizados na gerao da matriz de clustering, bem como alterar a
lista de termos a considerar.
Estas opes possibilitam ao usurio um maior controle sobre o processo de clustering
subseqente e pode ser repetida inmeras vez sem que seja necessria uma nova
realizao da etapa de pr-processamento.

A terceira etapa corresponde ao clustering dos textos a partir da matriz de clustering


produzida na etapa anterior.

103

Como opes so oferecidos os algoritmos de clustering hierrquico, k-means e SOM


(Self-Organizing Maps).
Para o cluster hierrquico, o sistema ainda oferece as opes de Centroid Linkage,
Single Linkage, Complete Linkage e Average Linkage. Para o algoritmo K-Means as
opes para a distncia so Coeficiente de correlao de Pearson, Correlao de Pearson
descentralizada, Correlao de Pearson descentralizada absoluta, Valor absoluto do
coeficiente de correlao de Pearson, Correlao de Spearman, de Kendall, Distncia
Euclidiana, Distncia Euclidiana harmonicamente somada e Distncia City-block, todas
descritas anteriormente.

A quarta etapa corresponde a visualizao dos resultados.

A tcnica utilizada aqui

baseada na gerao de grficos de rvores hierrquicas do tipo dendrograma. Estes


grficos apresentam na lateral a rvore de relaes dos arquivos e uma matriz central
com cores que correspondem ao peso/ocorrncia de cada termo no arquivo.
Este tipo de grfico possibilita uma anlise imediata e eficiente do processo de
clustering e da relao entre os documentos, entre termos e entre termos e documentos.

3.6.1

Mdulos do Sistema

Nessa seo so mostrados os mdulos que constituem o sistema. So 5 os mdulos


principais como citados a seguir

Pr-processamento

Gerao da Matriz de Clustering

Clustering

Visualizao

Interface

.
O primeiro mdulo o de pr-processamento e envolve os passos:

Pr-Processamento:
-

stoplists

stopwords
104

sinnimos

stemming:
-

RLSP

Porter

O mdulo seguinte o mdulo gerador da matriz de clustering e envolve os seguintes


passos:

Matriz de Clustering:
-

lista de termos

peso:
-

TF

IDF

TFIDF

Uma vez produzida a matriz de clustering, selecionados termos e respectivos pesos,


passa-se a etapa seguinte que a do processo de clustering propriamente dito. Pode-se
optar por uma das trs opes abaixo:

Clustering:
-

Hierrquico

K-Means

SOM

Ao final do processo de clustering, gerado um arquivo do tipo .cdt que alimenta o


mdulo seguinte de visualizao. Os mtodos particionais tambm geram um arquivo
do tipo amostra/cluster que permite avaliar o ndice de acerto do mtodo. O mdulo de
visualizao transforma o arquivo fornecido pelo mdulo de clustering em uma
visualizao do tipo dendrograma.

Visualizao
-

Grfico em rvore do tipo dendrograma

O ltimo mdulo o de interface que envolve os passos mostrados a seguir:


105

Interface
-

preparao dos dados

acionamento dos mdulos

106

3.6.2

Diagrama do Sistema

A figura 3.2 mostra um diagrama em blocos dos mdulos do sistema, representando


todas as etapas envolvidas desde o pr-processamento at a visualizao dos resultados.

Textos
Originais

Pr-Processamento

Stoplists

Stoplist

Stopwords

Stowords

Sinnimos

Sinnimos

Stemming

RSLP

Textos
Processados

Porter

Lista de
Termos

Matriz de Clusterizao

TF

IDF

107

TFIDF

Matriz
Clusterizao

Clusterizao

Hierrquico

K-Means

SOM

Textos
Clusterizados

Visualizao

rvores

Figura 3.2 Diagrama em blocos do sistema

108

3.6.3

Interface com o Usurio

Os diversos mdulos do sistema foram desenvolvidos e implementados para


funcionarem independentemente uns dos outros.
De forma a facilitar o processo de clustering como um todo, foi dsenvolvido um mdulo
de interface que tem por objetivos, facilitar a preparao dos dados e o acionamento do
diversos mdulos de processamento de forma integrada.
O mdulo de Inteface foi desenvolvido utilizando tecnologia Perl/TK e funciona
perfeitamente integrado aos demais mdulos do sistema alm de garantir a portabilidade
do conjunto.

O mdulo de Interface oferece ao usurio um conjunto de dilogo grfico para definio


dos parmetros e opes de execuo, ferramentas para edio e seleo dos arquivos
integradas e recursos de preenchimento automtico de campos comumente usados
(arquivo de configurao).

Mostra-se na figura 3.3, a tela de entrada do mdulo de clustering com as opes


disponveis para o usurio.

109

Figura 3.3 Tela de entrada da interface de usurio do mdulo de clustering

A tela da figura 3.3 mostra a interface do mdulo de clustering que permite escolher o
nmero de termos a considerar na anlise, utilizar o stemmer de Porter, RSLP ou no
utilizar e ainda o peso associado aos termos que podem ser TF, IDF, ou TF-IDF(mais
utilizado).
A interface mostrada na figura 3.4 permite que sejam definidas algumas configuraes
como os arquivos de stopwords e sinnimos. Essa interface permite tambm editar os
arquivos texto, para incluir ou retirar termos da anlise ou modificar sinnimos.

110

Figura 3.4 Tela do mdulo de configurao

O mdulo de configurao atende tanto ao mdulo de clustering quanto ao mdulo de


categorizao assistida.

3.6.3.1 Perl/TK
H muitos mdulos diferentes disponveis que estendem as funcionalidades do Perl. O
mdulo TK possibilita facilmente adicionar uma interface grfica aos scripts Perl e
ainda utilizar todos os recursos do Perl. Ao invs de exigir um comando digitado com
algumas opes ou a entrada de dados em forma de linha de comando, o programa pode
ser acionado a partir de um cone, ou de um comando simples e a partir da a interface
manipula tudo: um conjunto de dilogos possibilita, de um modo fcil, a definio dos
parmetros e opes de execuo.
Usando os mdulos includos na distribuio do TK, pode-se criar janelas com botes,
listas, textos, e outros tipos de widgets para ajudar o usario na navegao dentro de
uma aplicao.
Perl/TK utiliza os recursos de programao orientada a objeto disponveis no Perl5 e
foi convertido do TCL/TK para o uso com o Perl.

111

As grandes vantagens do Perl/TK so portabilidade e facilidade de implementao. O


programa clssico do tipo Hello, World que em C facilmente chega a 100 linhas de
cdigo

tanto

no

MS-Windows

como

em

X-Windows pode ser feito com

aproximadamente 5 linhas utilizando TK.

3.6.4

Fluxo de Trabalho

Definio dos arquivos a serem agrupados

Indicao dos arquivos com stoplists, stopwords e sinnimos

Indicao do stemming a ser utilizado

Indicao do nmero de termos a considerar

Indicao do peso a ser utilizado

Indicao do algoritmo de cluster e opo

De uma forma geral a interveno do especialista no processo de clustering de textos


em portugus pode ser realizada pela anlise da lista dos termos presentes nos arquivos.
Tal especialista poder verificar quais desses termos realmente podem ter importncia
para a classificao do conjunto de arquivos em questo e atravs de alteraes nesta
lista obter um resultado mais adequado.

Tais termos podero ser apenas descartados

para lista de termos a serem utilizados na gerao da matriz de clustering ou


transferidos para a lista de sinnimos ou mesmo stopwords.

3.7 O Processo de Categorizao Assistida


A Categorizao Assistida de textos em portugus realizada em duas etapas distintas:
-

Gerao das Categorias

Categorizao por Similaridade

Na primeira etapa, cada arquivo da lista de arquivos da categoria pr-processado e


depois aglutinado em um nico arquivo representando a categoria.
Nesta etapa, so realizadas diversas atividades, dentre elas a retiradas de palavras,
termos e smbolos indesejados, como por exemplo, pontuao e nmeros. A atividade
seguinte a substituio dos sinnimos, seguida do stemming dos termos restantes. Para

112

a atividade de stemming o sistema oferece como alternativas os algoritmos RSLP, Porter


e nenhum.
Esta etapa tambm conhecida como etapa de treinamento.

A etapa seguinte corresponde a categorizao dos textos propriamente dita. Nessa etapa,
cada arquivo inicialmente pr-processado e depois categorizado segundo o algoritmo
de similaridade selecionado. O sistema oferece como alternativas para os ndices de
similaridade as medidas de similaridade do Cosseno (Cosine Similarity), similaridade de
Jaccard (Jaccard Similarity) e similaridade do Cosseno Ponderado (Weighted Cosine
Similarity).
Para computar a similaridade do Cosseno (Cosine Similarity) entre dois documentos D e
E, considera-se Ds e Es como sendo o conjunto de termos ocorrendo em D e E
respectivamente. Define-se T como a unio de Ds e Es, e considera-se t i como o i-simo
elemento de T.
Assim os vetores-termo de D e E so
Dv=(nD(t1),nD(t2),...,nD(tN))
Ev=(nE(t1),nE(t2),...,nE(tN))
Onde nD(t i) o nmero de ocorrncias do termo t i em D, e nE(t i) o mesmo para E.
Agora, pode-se finalmente definir a similaridade de cosseno CS:
CS = (Dv,Ev) / (Norm(Dv)*Norm(Ev))
Aqui (... , ...) o produto escalar e utiliza-se a norma Euclideana (raiz quadrada da
soma dos quadrados).
Jaccard Similarity ou similaridade de Jaccard definida como a seguir: dados dois
documentos, D e E, faa Ds e Es ser o conjunto de termos que ocorrem em D e E,
respectivamente. Defina S como a interseo de Ds e Es e T como sua unio. Assim, a
similaridade de Jaccard o nmero de elementos de S dividido pelo nmero de
elementos de T.
Para computar a similaridade do Cosseno Ponderado (weighted cosine similarity) entre
dois documentos D e E, pela definio da similaridade de cosseno, os vetores termo de
D e E so:
Dv=(nD(t1)*w1,nD(t2)*w2,...,nD(tN)*wN)
Ev=(nE(t1)*w1,nE(t2)*w2,...,nE(tN)*wN)

113

Os pesos so valores reais no negativos; cada termo tem associado um peso. Para
alcanar a generalidade, pesos podem ser definidos como uma funo. Por exemplo, um
modo comum de definir pesos o IDF (inverse document frequency)

No processo de categorizao, o menor ndice de similaridade define a categoria a qual


o arquivo dever pertencer.
3.7.1

Interface com o usurio

A figura 3.4 mostra a tela de entrada do mdulo de categorizao assistida com as


opes disponveis para o usurio.

Figura 3.5 Tela de entrada da interface de usurio do mdulo de categorizao


114

A tela da figura 3.5 mostra a interface do mdulo de categorizao que permite escolher
utilizar o stemmer de Porter, RSLP ou no utilizar e o tipo de medida de similaridade:
cosine similarity ou similaridade do cosseno, weighted cosine similarity ou similaridade
do cosseno ponderado e Jaccard similarity ou similaridade de Jaccard .

3.7.2

Fluxo de Trabalho

Definio dos arquivos que compem as categorias

Definio dos arquivos que devero ser categorizados

Indicao do arquivos com stoplists, stopwords e sinnimos

Indicao do stemming a ser utilizado

Indicao da similaridade a ser utilizada

De uma forma geral, a interveno do especialista no processo de categorizao de


textos em portugus pode ser realizada pela anlise da lista dos termos presentes nos
arquivos.

Tal especialista poder verificar quais destes termos realmente podem ter

importncia para a categorizao do conjunto de arquivos em questo e atravs de


alteraes nesta lista obter um resultado mais adequado.

115

3.8 Mdulo de Visualizao


Java Treeview um programa complexo consistindo de aproximadamente 42.000 linhas
de cdigo. Ele foi inicialmente desenvolvido para fornecer um conjunto de vistas e
funcionalidades com as quais usurios poderiam construir facilmente aplicaes e testar
idias novas. Ao longo do tempo, o Java TreeView evoluiu para uma aplicao nica
que pode carregar arquivos de vrios tipos diferentes. A principal vantagem de ser
implementado em Java ser independente de plataforma, facilitando a portabilidade.
Nesta tese, o Java TreeView utilizado como o mdulo de visualizao de todas as
sadas geradas pelos mtodos executados no processo de clustering da soluo proposta.
A figura 3.6 mostra o ambiente disponibilizado pelo Java TreeView.

Figura 3.6 Mdulo de Visualizao Java TreeView


Pode-se observar esquerda da figura o dendrograma referente aos documentos e na
parte superior o dendrograma referente aos termos. No centro da figura, encontra-se
uma matriz de cores principal em que o preto corresponde ao zero e as tonalidades da
cor escolhida (no caso o vermelho), representam as expresses dos termos nos

116

documentos, retirados diretamente da matriz de clustering aps o clustering realizado. O


retngulo assinalado no centro da matriz de cores denota o cruzamento de um cluster de
termos com um cluster de documentos. Essa visualizao hierrquica permite o
entendimento de toda a organizao de documentos e termos e das relaes entre eles,
em todos os nveis dos dendrogramas.
A idia de uma visualizao hierrquica mais detalhada foi motivada pela necessidade
de refino em um estudo relacionado a um banco de dados de atendimento clientes em
que

ferramenta

disponibilizava

utilizada,

embora

dendrograma,

realizasse

dificultando

clustering

entendimento

hierrquico,
dos

no

resultados

apresentados. Alm disso, no era possvel ter controle sobre alteraes promovidas nos
termos, que se rearrumavam sem que se pudesse entender o porqu. O tipo de
visualizao disponibilizado pelo Java TreeView resolve as deficincias de visualizao
encontradas anteriormente.

117

Captulo 4
Estudos de Casos

118

4 Estudos de Casos
A seguir sero apresentados os estudos de casos conduzidos para avaliao da qualidade
dos resultados fornecidos pela ferramenta de clustering para Portugus. Sero utilizados
conjuntos de textos (corpus) que possuem classificao prvia, porm, essa classificao
ser apenas utilizada para verificar a exatido conseguida pelo processo de clustering.
Dessa forma, a classificao prvia s ser utilizada no ps-processamento dos
resultados. No caso de tarefas de clustering, isso se torna de grande ajuda para que haja
uma forma de avaliao segura da qualidade dos resultados obtidos.

4.1 Bases de Textos


Para fins dos estudos de caso que sero apresentados neste captulo sero descritos a
seguir os conjuntos de dados textuais utilizados, com suas caractersticas, fontes,
assuntos, etc.

4.1.1

Corpus Conhecimentos Gerais

Este corpus foi montado a partir de um site na internet contendo diferentes sees para
pesquisa escolar. O site Conhecimentos Gerais disponibiliza 17 assuntos diferentes,
cada um contendo um conjunto de textos. Os assuntos e textos foram transportados para
uma base local para serem utilizados na pesquisa.
Os assuntos disponveis no corpus so mostrados a seguir.

119

Nmero Assunto
de classes

Nmero
de textos

Artes Plsticas**

19

Astronomia

12

Biologia

Cinema

14

Cultura Popular

Ecologia

15

Fsica**

13

Geografia**

22

Histria do Brasil

53

10

Literatura

16

11

Matemtica

12

Medicina

13

Msica**

17

14

Qumica

10

15

Religio**

19

16

Teatro**

22

Tecnologia
9
Tabela 4.1. Caractersticas do corpus de conhecimentos gerais
17

As sees assinaladas com duplo asterisco indicam as seis classes que foram utilizadas
primeiramente nos estudos de caso.

4.1.2

Corpus TeMario

Este corpus foi criado no mbito do projeto EXPLOSA do NILC. Consiste em 100
textos jornalsticos, acompanhados dos respectivos sumrios manuais e extratos ideais
(gerados automaticamente).
O TeMrio composto de 100 textos jornalsticos coletados, totalizando 61.412
palavras, cujas origens e distribuies por assunto so apresentadas a seguir:

120

60 textos constam do jornal on-line Folha de So Paulo e esto distribudos


igualmente nas sees:
o Especial,
o Mundo e
o Opinio;

os 40 textos restantes foram publicados no Jornal do Brasil, tambm on-line, e


esto tambm uniformemente distribudos nas sees:
o Internacional e
o Poltica.

A Tabela 4.1 sintetiza esses dados, mostrando tambm o nmero de palavras por seo
e o nmero mdio de palavras por texto de cada seo.

Jornais

Sees

Nmero de
textos

Nmero de
palavras

Mdia de
palavras/texto

Folha de So
Paulo

Especial**

20

12.340

617

Mundo

20

13.739

686

Opinio**

20

10.438

521

Internacional** 20

12.098

604

Poltica

20

12.797

639

Total

100

61.412

639

Mdia
12.282
Tabela 4.2. Caractersticas do corpus de textos-fonte

613

Jornal do
Brasil

As sees assinaladas com duplo asterisco indicam as trs classes que foram utilizadas
primeiramente nos estudos de caso.

4.1.3

Corpus CETENFolha

O CETENFolha (Corpus de Extratos de Textos Eletrnicos NILC/Folha de S. Paulo)


um corpus criado pelo projeto Processamento computacional do Portugus (projeto que
deu origem Linguateca) com base nos textos do jornal Folha de So Paulo que fazem
parte do corpus NILC/So Carlos.

121

O corpus inclui o texto da Folha de S. Paulo do ano de 1994 (as 365 edies), incluindo
cadernos no-dirios.
O CETENFolha est dividido em extratos, classificados por semestre e caderno do
jornal do qual provm. Cada extrato est dividido em pargrafos e frases, e os ttulos e
os autores dos artigos esto assinalados. Embora os textos tenham sido identificados, a
indicao fornecida, que o caderno de origem da notcia, nem sempre corresponde ao
assunto contido no texto.
Esse estudo utilizou 12396 extratos de 3 cadernos diferentes: Agrofolha, Informtica,
Folhateen, conforme mostra a tabela 4.2.

Sees
Agrofolha
Informtica

Nmero de
textos
3721
5231

Folhateen
3444
Total
12396
Tabela 4.2. Caractersticas dos extratos do corpus CETENFolha

122

4.2 Cluto
Cluto [100, 101] um pacote para clustering de conjuntos de dados tanto de dimenses
baixas como altas e para a anlise de caractersticas dos vrios clusters. Ele fornece trs
classes diferentes de algoritmos de clustering que operam ou diretamente no espao de
caractersticas dos objetos ou no espao de similaridades de objetos. Esses algoritmos
so baseados em paradigmas particionais, aglomerativos e de particionamento de grafos.
Uma caracterstica chave em quase todos os algoritmos de clustering do Cluto que
eles tratam o problema de clustering como um processo de otimizao que procura
maximizar ou minimizar um funo de critrio particular, definida localmente ou
globalmente por todo o espao de solues. Os mtodos de clustering do Cluto usados
nessa tese so descritos suscintamente a seguir.
No existe uma tcnica de clustering que seja universalmente aplicada para descobrir a
variedade de estruturas presentes num conjunto de dados multi-dimensionais [4]. Dessa
forma, o Cluto foi utilizado para servir como termo de comparao com os resultados de
clustering obtidos com o sistema desenvolvido.

4.2.1

Repeated Bisections

Nesse mtodo, a soluo de clustering desejada da forma K computada executando


uma seqncia de k-1 repeated bisections. Nessa abordagem, a matriz primeiramente
agrupada em dois grupos, e ento um desses grupos selecionado e mais uma vez
dividido em dois. Esse processo continua at que o nmero de clusters desejado
encontrado. Durante esse passo, o cluster dividido em dois (bisected) de forma que de
forma que a soluo de clustering de dois cursos otimiza uma funo de critrio de
clustering particular, que no caso do Cluto escolhida atravs do parmetro crfun. Essa
abordagem garante que a funo de critrio otimizada localmente, dentro de cada biseo, mas em geral no globalmente otimizada.

123

4.2.2

Direct

Nesse mtodo, a soluo de clustering computada encontrando simultaneamente todos


os k clusters. Em geral, computar um clustering k-way mais lento que um clustering
do tipo repeated bisections. Em termos de qualidade , para valores razoavelmente
pequenos de k (usualmente menos que 10-20), a abordagem direta leva a clusters
melhores que aquelas obtidas por meio do repeated bisections. Entretanto, conforme k
cresce, a abordagemdo repeated bisections tende a ser melhor que o clustering direto.

4.2.3

Graph

Nesse mtodo, a soluo de clustering computada modelando-se primeiramente os


objetos usando o grfico do vizinho mais prximo (cada objeto se torna um vrtice, e
cada objeto conectado aos outros objetos mais similares), e ento divide-se o grafo em
k-clusters ussando um algoritmo de particionamento de grafos min-cut.

4.2.4

Agglo

Nesse mtodo, a soluo de clustering computada usando o paradigma aglomerativo,


cujo objetivo otimizar localmente (minimizar ou maximizar) uma funo de critrio de
clustering particular (que selecionada usando o parmentro crfun). A soluo obtida
parando o processo de aglomerao quando restam k clusters. As opes de mtodo
aglomerativos disponveis na ferramenta Cluto so: single-linkage, complete-linkage,
group average.

124

4.3 Efeito do Stemming no Processo de Clustering


O estudo de caso visa determinar a influncia do uso do stemming em relao tarefa
de clustering propriamente dita, executada na etapa seguinte ao pr-processamento.
Como a utilizao do stemming visa agregar as variaes de uma mesma palavra de
forma a somar contribuies, espera-se que o stemming consiga melhorar a qualidade
dos dados fornecidos etapa de clustering. A taxa de acerto dos diferentes mtodos de
clustering executados para as situaes sem e com o uso de stemming sero avaliadas e
comparadas.
Primeiramente, o stemming no foi realizado, num

segundo momento foi aplicado o

algoritmo de Stemmer de Porter, verso Portugus, e num terceiro momento foi aplicado
o algoritmo Stemmer Portuguese, tambm chamado de RSLP. Dessa forma, as tabelas a
seguir apresentam os resultados obtidos para os diferentes mtodos de clustering para
trs situaes distintas de stemming:

Sem stemmer: Os dados so pr-processados utilizando apenas stopwords,


dicionrio, sem a utilizao de nenhum stemmer.

Stemmer Porter:

Alm dos passos de pr-processamento mencionados acima,

utiliza-se o stemmer de Porter.

Stemmer Portuguese: Somados aos demais passos do pr-processamento, utilizase o stemmer Portuguese no lugar do stemmer de Porter.

Foram utilizados, tambm, diferentes conjuntos de dados textuais. Alm da variao na


utilizao do stemming, foi efetuada tambm uma variao na lista de termos produzida
aps o pr-processamento para as trs situaes descritas acima, gerando assim o
conjunto de resultados chamado de default para a lista utilizada da forma como foi
gerada; e o conjunto chamado 1modif para a lista de termos aps a primeira
modificao, retirando-se alguns termos.

125

O peso utilizado para os termos em todos os experimentos apresentados o TF-IDF.


Selecionou-se como base 100 termos para a gerao da matriz de clustering dessa parte
do estudo.

4.3.1

Corpus Conhecimentos Gerais

A tabela 4.2 a seguir mostra os resultados obtidos para o conjunto de dados


Conhecimentos Gerais para 6 classes primeiramente e depois utilizando mais onze
classes. As seis classes iniciais usadas foram: Artes Plsticas, Fsica, Geografia, Msica,
Religio, Teatro.
Assim, alm de avaliar o efeito do stemming, pode-se perceber a mudana ocasionada
por um nmero maior de classes (inclusive superpostas).

Conhecimentos
Conhecimentos
Gerais
Gerais
6 classes
17 classes
default
1modif
default
1modif
K-Means
0.7589
0.7857
0.4126
0.4535
Direct
0.7679
0.7857
0.4684
0.5056
Repeated Bisection
0.7589
0.7768
0.4684
0.4684
Graph
0.7589
0.7679
0.4387
0.5576
Agglo - Single Linkage
0.2143
0.3125
0.2305
0.2193
Complete Linkage
0.5804
0.6071
0.4164
0.4126
Group Average
0.4464
0.6161
0.4907
0.5502
Mtodos de Clustering
Utilizados

Sem
Stemmer

SOM

0.7321

0.7946

0.4498

0.4535

K-Means
Direct
Repeated Bisection
Graph
Agglo - Single Linkage
Complete Linkage
Group Average
SOM

0.8143
0.8214
0.8214
0.8197
0.2321
0.6994
0.5982
0.8304

0.8385
0.8385
0.8214
0.8214
0.3304
0.7143
0.6939
0.8304

0.4684
0.5204
0.5130
0.5279
0.2230
0.4535
0.5613
0.4721

0.4981
0.5762
0.5279
0.5428
0.2305
0.4684
0.5688
0.4796

Stemmer K-Means
Portuguese Direct
Repeated Bisection
Graph
Agglo - Single Linkage
Complete Linkage
Group Average
SOM

0.9018
0.9107
0.9107
0.9196
0.4732
0.7143
0.7054
0.8929

0.9196
0.9196
0.9196
0.9107
0.4732
0.8482
0.6786
0.9196

0.5316
0.5390
0.5056
0.5353
0.2565
0.4796
0.5911
0.4684

0.5428
0.5762
0.5465
0.5725
0.2305
0.5316
0.6059
0.4833

Stemmer
Porter

Tabela 4.3. Resultados da taxa de acerto para Conhecimentos Gerais

126

4.3.1.1 Sem Stemmer


A primeira parte da tabela mostra os resultados de vrios mtodos de clustering, sem a
utilizao de qualquer stemmer. Pode-se observar que para ambos os conjuntos de
dados, a no utilizao de stemmer gerou os piores resultados da tabela.

Corpus Conhecimentos Gerais 6 classes

Para esse conjunto de dados, alguns mtodos particionais ainda assim apresentaram um
ndice de acerto de 78,57% e o SOM conseguiu 79,46% ambos depois da retirada de
termos da lista, correspondente primeira modificao nos dados.

Corpus Conhecimentos Gerais 17 classes

Para esse conjunto de dados, a preciso dos mtodos de clustering caram


consideravelmente. As melhores marcas foram conseguidas pelos mtodos graph
partioning based com 55,76% de acerto e o mtodo hierrquico group average com
55,02%, ambos depois da retirada de termos da lista, correspondente primeira
modificao nos dados.

4.3.1.2 Stemmer de Porter


A utilizao do stemmer de Porter melhorou os resultados para todos os mtodos
executados, quando comparados aos resultados sem o stemmer. No entanto, no foi um
aumento muito expressivo no ndice de acerto, como se poderia supor.

Corpus Conhecimentos Gerais 6 classes

As melhores taxas conseguidas foram para os mtodos K-means, e para o mtodo Direct
ambos aps a 1 modificao nos dados. Conseguindo um aumento no ndice de acerto
de 6,72% em relao melhor exatido conseguida sem uso de stemming.

127

Corpus Conhecimentos Gerais 17 classes

As melhores taxas de acerto conseguidas foram pelos mtodos direct com 57,62% de
acerto e o mtodo hierrquico group average com 56,88%, ambos depois da primeira
modificao nos dados. Esses resultados, refletem um aumento de 3,33% no ndice de
acerto em relao situao sem stemmer.

4.3.1.3 Stemmer Portuguese


A utilizao do Stemmer Portuguese ou RLSP foi indubitavelmente o que forneceu os
melhores resultados em termos de clustering, superando em exatido o clustering sem a
utilizao do stemmer e com o stemmer de Porter.

Corpus Conhecimentos Gerais 6 classes

Os resultados alcanados com a utilizao do stemmer Portuguese superaram em


qualidade todos os resultados anteriores. Mais ainda, com o emprego desse stemmer
alcanou-se uma taxa de acerto igual a 91,96% em vrios mtodos de clustering, o que
pode ser considerada para todos os fins uma excelente taxa de acerto. Esses resultados,
refletem um aumento de 9,67% no ndice de acerto em relao melhor situao
utilizando stemmer de Porter e 17,04% em relao melhor situao sem utilizao de
stemmer.

Corpus Conhecimentos Gerais 17 classes

A utilizao do stemmer Portuguese tambm promoveu a melhor taxa de acerto para


esse conjunto de dados. Os melhores resultados foram conseguidos com a utilizao do
mtodo hierrquico group average e iguais a 59,11% sem modificao e 60,59% com
modificao. Embora as melhorias alcanadas no sejam to significativas como para o
conjunto de 6 classes, podemos notar um aumento no ndice de acerto de 5,16% em
relao aos resultados atingidos com a utilizao do stemmer de Porter e 8,66% sem a
utilizao de nenhum stemmer.

128

4.3.1.4 Resultados obtidos com a Ferramenta Temis


Como uma forma de avaliar se os resultados obtidos pelo mdulo de clustering da
soluo proposta seriam bons, mesmo se comparados a uma ferramenta comercial,
utlilizou-se o mdulo de clustering da Ferramenta Temis Insight Discoverer
Clusterer. O conjunto de dados utilizado para a comparao de resultados foi o Corpus
Conhecimentos Gerais, com seis classes. Esse conjunto de dados foi o escohido por
corresponder quele com a maior taxa de acerto para os mtodos disponibilizados no
mdulo de clustering do sistema.
A taxa de acerto conseguida para esse conjunto de dados, na ferramenta Temis foi de
83,92%, contra 90,18% conseguido com o mtodo K-means e 89,29% para o mtodo
SOM, ambos para dados default e 91,96% conseguidos com os mtodos K-means e
SOM, ambos para dados 1modif.
A taxa de acerto conseguida pela ferramenta Temis se equipara aos melhores resultados
utilizando o Stemmer de Porter.
preciso ressaltar, no entanto, que a ferramenta j possui um tratamento para dados em
Portugus incluso e o nico trabalho de preparao de dados necessrio a converso
de dados para o formato XML, caso estes ainda no estejam nesse formato.

129

4.3.2

Corpus TeMario

A tabela 4.3 a seguir mostra os resultados obtidos para o conjunto de dados TeMario
para 3 classes primeiramente e depois utilizando mais duas classes. As trs classes
inicias

usadas

foram:

Especial,

Internacional

Opinio.

Como

mencionado

anteriormente, essa variao no conjunto de dados visa entender comportamentos


associados ao aumento e/ou deteriorizao nos dados.

Mtodos de Clustering
Utilizados
Sem
Stemmer

Stemmer
Porter

TeMario
TeMario
3 classes
5 classes
default
1modif
default
1modif
K-Means
0.5667
0.6000
0.4300
0.4600
Direct
0.5333
0.5833
0.3900
0.4600
Repeated Bisection
0.5667
0.6000
0.4200
0.4500
Graph
0.4167
0.4833
0.4200
0.3700
Agglo - Single Linkage
0.3500
0.4000
0.2500
0.2700
Complete Linkage
0.4600
0.4833
0.3500
0.3900
Group Average
0.4500
0.4500
0.3700
0.3800
SOM
0.5833
0.6000
0.4300
0.4500
K-Means
Direct
Repeated Bisection
Graph
Agglo - Single Linkage
Complete Linkage
Group Average
SOM

0.6333
0.6167
0.6333
0.4833
0.3667
0.5333
0.4000
0.6167

0.6667
0.6500
0.6500
0.5500
0.3667
0.4500
0.4500
0.6667

0.4600
0.4800
0.4600
0.4600
0.2800
0.4000
0.4000
0.4600

0.5000
0.5000
0.4800
0.4600
0.3600
0.4400
0.4400
0.5000

Stemmer K-Means
Portuguese Direct
Repeated Bisection
Graph
Agglo - Single Linkage
Complete Linkage
Group Average
SOM

0.8000
0.7500
0.6833
0.6667
0.4333
0.5167
0.4500
0.7500

0.8167
0.7667
0.6500
0.6667
0.4600
0.6167
0.4500
0.7667

0.5000
0.4900
0.5000
0.5000
0.3000
0.4400
0.4500
0.5100

0.5500
0.4800
0.5500
0.5400
0.4800
0.4800
0.5000
0.5500

Tabela 4.4. Resultados da variao da taxa de acerto para TeMario


4.3.2.1 Sem Stemmer
A primeira parte da tabela mostra os resultados obtidos sem a utilizao de qualquer
stemmer. A comparao dos vrios mtodos mostrada. Pode-se observar que tambm
para esse caso, a no utilizao de stemmer gerou os piores resultados da tabela para
ambos os casos.

130

Corpus TeMario 3 classes

Para esse conjunto de dados, houve um empate entre dois mtodos particionais K-means
Repeated Bisection e o SOM apresentando um ndice de acerto de 60,00%, todos aps a
retirada de termos da lista, correspondente primeira modificao nos dados.

Corpus TeMario 5 classes

Para esse conjunto de dados, a preciso dos mtodos de clustering um pouco inferior.
Os maiores valores alcanados em preciso foram o K-means e o Direct ambos
particionais e iguais a 46% ambos depois da retirada de termos da lista, correspondente
primeira modificao nos dados.

4.3.2.2 Stemmer de Porter


A utilizao do stemmer de Porter conseguiu resultados um pouco melhores para todos
os mtodos, em relao aos resultados obtidos sem o uso do stemmer.

Corpus TeMario 3 classes

As melhores taxas conseguidas foram para os mtodos K-means, e para o mtodo SOM,
e iguais a 66,67%, ambas obtidas aps a 1 modificao nos dados. Esses resultados
revelam um aumento no ndice de acerto de 11,11% em relao melhor exatido
conseguida sem uso de stemming.

Corpus TeMario 5 classes

As melhores taxas de acerto foram conseguidas pelos mtodos K-means, Direct com
50,00% de acerto e o mtodo SOM tambm com 50,00%, todos depois da primeira
modificao nos dados. Esses resultados, refletem um aumento de 8,69% no ndice de
acerto em relao situao sem stemmer.

131

4.3.2.3 Stemmer Portuguese


A utilizao do RSLP forneceu novamente os melhores resultados em termos de
clustering. Assim como no conjunto de dados Conhecimentos Gerais, o uso desse
stemmer conseguiu taxas de acerto melhores em todas as situaes mostradas na tabela
quando comparadas s situaes sem stemmer e stemmer de Porter.

Corpus TeMario 3 classes

Os resultados obtidos para essa situao demonstraram que a utilizao do processo de


stemming pode levar a ganhos considerveis como nesse caso, em que a taxa de acerto
para a melhor situao chegou a 81,67% contra 60,00% da taxa de acerto sem uso do
stemming e 66,67% para o stemmer de Porter. Isso significa um expressivo aumento no
ndice de acerto de 36,11% em relao primeira situao e 22,49% em relao
segunda.

Corpus TeMario 5 classes

Embora os aumentos de preciso conseguidos para esse conjunto de dados no tenham


sido to grandes, ainda assim observa-se uma melhoria considervel. Os melhores
resultados foram conseguidos com a utilizao do K-means e do SOM e iguais a
55,00%, ambos aps a modifcao nos dados. Embora as melhorias alcanadas no
sejam to significativas como para o conjunto TeMario com 3 classes, pode-se notar
um aumento no ndice de acerto de 10,00% em relao aos resultados atingidos com a
utilizao do stemmer de Porter e 19,56% sem a utilizao de nenhum stemmer.
A taxa de acerto encontrada dada a comparao entre a classificao prvia e os clusters
criados pela ferramenta foi de 50%. Note que essa baixa taxa de acerto pode ser devido
ao fato de que cada seo do jornal deveria corresponder a um assunto ou tpico, o que
no a realidade.

Observa-se para os conjuntos de dados analisados, que tanto para situaes de taxa de
acerto alta como baixa, ocorre um acerto progressivo. As taxas de acerto para dados sem

132

stemming so as mais baixas, passando para valores intermedirios com relao aos
dados com stemming de Porter, e por fim chegando aos valores mais altos da tabela, que
dizem respeito aos dados que sofreram o processo de stemming RSLP. Esses resultados
condizem com a idia de que a aglutinao das contribuies de termos similares
poderia ajudar a descrever melhor colees de textos. A interpretao mais plausvel
desses resultados seria que dados sem stemming enfraquecem a fora de atributos que
podem auxiliar a tarefa de clustering, comprometendo a exatido conseguida. O
stemmer de Porter uma implementao que consegue ganhos em relao a situao
sem stemmer, porm, no consegue se igualar implementao RSLP. Observando um
conjunto de dados que sofreu os dois tipos de stemmers (Porter e RSLP) comprova-se
esse fato. Encontra-se variaes da mesma palavra que ao longo do processo de
stemming acabaram resultando em radicais diferentes. Isso acontece com mais
freqncia para a implementao de Porter que para a RSLP.
Isso refora a idia de que o pr-processamento dos dados pode resultar na melhoria de
qualidade da etapa de realizao das tarefas de text mining. Outro passos de prprocessamento, como o dicionrio, que no foram enfatizados nessa tese, poderiam, se
trabalhados adequadamente, fornecer ganhos aos processos subseqentes.

133

4.4 Variao do Nmero de Termos - Dados Default


Alguns conjuntos de dados utilizados nessa tese no apresentaram uma taxa de acerto
muito alta. A variedade de mtodos usados ajudou a encontrar agrupamentos um pouco
mais precisos. No entanto, esperava-se de conseguir ainda melhores resultados. Dado o
fato que o clustering realizado baseado nos termos selecionados dentro da ordenao
de termos segundo o peso escolhido, a hiptese de que se mais termos fossem
considerados poderia melhorar o desempenho do clustering foi seguida. Escolheu-se os
dados default, ou seja, como fornecidos pela sada do pr-processamento e variou-se o
nmero de termos de 50 at 1000. Em alguns casos foi necessrio variar at mais para
entender a resposta da taxa de acerto em funo da variao do nmero de termos.
Como o melhor ndice de acerto para todos os conjuntos de dados utilizados nesse
estudo foi usando o stemmer Portuguese, essa parte do estudo utilizou esse stemmer
apenas.

4.4.1

Corpus Conhecimentos Gerais 6 classes

O clustering de dados proporcionou um bom acerto para esse conjunto de dados, porm,
a variao da quantidade de termos levada em considerao poderia indicar se o nmero
de 100 termos utilizado seria o melhor. Para esse conjunto de termos a variao foi feita
de 50 at 2000 termos. O grfico mostra a taxa de acerto em 50

igual a 89,28%,

subindo em 100 e se mantendo em 200 igual a 90,17%, atingindo o mximo em 500


igual a 91,07% e ento passando a cair.

0.92
0.9
0.88
0.86
0.84
0.82
0.8
0.78
0.76
50

100

200

500

taxa_acerto
1000

2000

taxa_acerto

Grfico 4.1. Taxa de acerto para Corpus Conhecimentos Gerais com 6 classes

134

A forma aproximada dada pelos topos das barras se repete ao longo do estudo para os
diferentes conjuntos de dados.
no. termos taxa_acerto
50
0.8928
100
0.9018
200
0.9018
500
0.9107
1000
0.9018
2000
0.8125
3000
0.6875

Tabela 4.4. Taxa de acerto em funo do nmero de termos 6 classes

Embora a exatido do processo de clustering seja a meta principal, no se pode esquecer


que uma quantidade muito grande de termos levada em considerao torna o processo
de clustering mais lento. Assim, o que se procura a quantidade mnima de termos que
fornea uma boa exatido. O caso mostrado no grfico 4.1 ilustra bem essa situao.
Nesse caso, a melhoria da taxa de acerto entre o pior e melhor caso de 1.7857%.
Porm, sobe-se de 50 termos (na pior situao) para 500 termos (na melhor situao), ou
seja 10 vezes a quantidade de termos.

4.4.2

Corpus Conhecimentos Gerais 17 classes

Composto de um nmero maior de classes e de documentos que o conjunto


conhecimentos gerais anterior e, portanto, contendo um nmero maior de termos
(11534 contra 6857), tem-se uma indicao que o corpus precisar de uma quantidade
maior de termos para agrupar bem os dados. O grfico 4.2 mostra os resultados obtidos
pela variao do nmero de termos para esse conjunto de dados, que nesse caso foi feita
de 50 at 5000 termos.

135

0.7
0.6
0.5
0.4
0.3
0.2
0.1

taxa_acerto
5000

4000

taxa_acerto

3000

2000

1000

500

200

100

50

Grfico 4.2. Taxa de acerto para Corpus Conhecimentos Gerais com 17 classes

Para esse caso, a taxa de acerto apresenta uma variao significativa em funo da
quantidade de termos. Na pior situao, tambm para o nmero de termos igual a 50, a
taxa de acerto igual a 40,14% e na melhor situao, para o nmero de termos igual a
2000, tem um acerto de 65,42%, ou seja, superior a 15% de melhoria. No entanto, a
quantidade de termos para a melhor situao 40 vezes maior que na pior situao,
demandando muito mais tempo de processamento.
no. termos taxa_acerto
50
0.4015
100
0.5316
200
0.5465
500
0.5948
1000
0.6171
2000
0.6543
3000
0.4944
4000
0.4609
5000
0.4312

Tabela 4.5. Taxa de acerto em funo do nmero de termos 17 classes

4.4.3

Corpus TeMario 3 classes

Essa coleo contm 60 arquivos em 3 classes diferentes. De forma contrria ao


conjunto de dados anterior, cuja variedade de termos implicou na solicitao de um
nmero maior de termos para a obteno de mellhores resultados, essa coleo de

136

apenas 60 arquivos atingiu sua taxa de acerto mxima para o nmero de termos igual a
100. A partir da, o aumento do nmero de termos no acarreta aumento no acerto.

0.8
0.6
0.4
0.2
0
50

100

200

taxa_acerto
500

taxa_acerto

1000

Grfico 4.3. Taxa de acerto para Corpus TeMario com 3 classes


A variao da taxa de acerto neste caso bastante acentuada, mesmo para uma variao
no muito significativa no nmero de termos, partindo da pior situao com 50 termos e
uma taxa de acerto de 58,33%, e atingindo a melhor situao para 100 termos com
80,00% . Essa variao significa um aumento de 37,15% na taxa de acerto, apenas pela
incluso de mais 50 termos na anlise .
no. termos taxa_acerto
50
0.5833
100
0.8000
200
0.7333
500
0.6667
1000
0.6333

Tabela 4.6. Taxa de acerto em funo do nmero de termos 3 classes

4.4.4

Corpus TeMario 5 classes

Esse conjunto formado por 5 classes, duas a mais que o anterior. A variao de termos
nesse caso ser bem interessante pelo fato das classes no descreverem exatamente um
nico assunto. Classes como mundo e internacional apresentam termos em comum,
o que dificulta o processo de clustering. Nota-se que o aumento no nmero de termos

137

considerados contribui de forma significativa para a melhoria na taxa de acerto, porm,


a melhor situao apresenta um ndice de acerto de 50%, o que no pode ser
considerado um acerto muito alto.

0.5
0.45
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
50

100

200

taxa_acerto
500

taxa_acerto

1000

Grfico 4.4. Taxa de acerto para Corpus TeMario com 5 classes

Nesse caso especfico, os documentos que representam as classes no possuem atributos


(termos) em comum suficientes para serem identificados pelo processo de clustering
como dos mesmos clusters. A melhoria s seria conseguida por uma classificao
manual e posterior utilizao da ferramenta de clustering. A seguir, apresenta-se o
grfico da taxa de acerto em funo do nmero de termos para esse conjunto de dados.

no. termos Taxa_Acerto


50
0.39
100
0.50
200
0.50
500
0.41
1000
0.33

Tabela 4.7. Taxa de acerto em funo do nmero de termos 5 classes

4.4.5

Corpus CETENFolha

Esse conjunto de documentos bem maior que os anteriores possuindo 12396 arquivos
de tpicos diferentes do Jornal Folha de So Paulo. Um dos objetivos de escolher um
conjunto de dados maior testar a soluo para uma quantidade maior de dados. A

138

variao do nmero de termos para esse conjunto de dados foi efetuada de 100 at 2000
termos. No caso dos 2000 termos considerados, o sistema gerou uma matriz de 2000
colunas por 12396 linhas de dados. Mesmo para essa quantidade de dados o sistema se
mostrou estvel.
A melhora na taxa de acerto alcanada para esse conjunto de dados no foi to
expressiva quanto as dos demais conjuntos apresentados anteriormente. Uma das
classes, a Folhateen, teve um ndice de acerto pequeno em relao a classificao
original, demonstrando uma dificuldade em se estabelecer um vocabulrio que defina
esta classe.

0.67
0.66
0.65
0.64
0.63
0.62
0.61
0.6
0.59
100

200

500

taxa_acerto
1000

2000

taxa_acerto

Grfico 4.5. Taxa de acerto para Corpus CETENFolha com 3 classes

Pode-se observar na tabela 4.8, no entanto, que h uma variao para melhor de 8,08%
entre a pior taxa de acerto para um nmero de termos igual a 100 e a melhor taxa de
acerto conseguida para um nmero de termos igual a 1000. Esse aumento na taxa de
acerto, no entanto, provocado por aumento do nmero de termos de dez vezes,
implicando em um aumento considervel de processamento para o sistema.

139

no. termos taxa_acerto


100
0.6187
200
0.6437
500
0.6549
1000
0.6688
2000
0.6681

Tabela 4.8. Taxa de acerto em funo do nmero de termos 3 classes

A contribuio dos termos limitada por um critrio de qualidade. Diferentemente do


que se possa imaginar, adicionando cada vez mais termos anlise no a torna cada vez
mais rica, fornecendo resultados cada vez mais precisos. Esta situao est relacionada
ao problema de selecionar atributos relevantes ao processo de clustering:
-

atributos correlacionados/dependentes

exploso combinatria

Os resultados obtidos com os conjuntos de dados utilizados mostraram que a


contribuio dos termos vai aumentando, atinge um mximo de acerto e depois tende a
cair. O nmero de termos que fornece esse mximo varia de coleo para coleo.

140

4.5 Visualizao dos Resultados

A visualizao uma parte importante do processo de clustering. Considerando que o


clustering de dados um tipo de aprendizado no supervisionado por definio, ou seja,
no existe uma classificao inicial dos dados, a visualizao pode ajudar a entender
resultados. No caso dos textos, em que cada termo considerado convertido para um
atributo ou dimenso, a visualizao da sada pode ser confusa e difcil de entender.
Nesta tese, apresenta-se uma forma de visualizao que permite ao usurio entender a
organizao de documentos e termos, permitindo ao usurio identificar, por exemplo,
grupos de termos relacionados a grupos especficos de documentos, termos que
aparecem indiferentemente em todos os clusters, etc.
Todos os mtodos de clustering do sistema fornecem um tipo de sada que pode ser
transformada em uma visualizao. O tipo de visualizao disponibilizada varia com o
tipo de mtodo executado. Os mtodos hierrquicos geram dendrogramas que podem
ser s de documentos, s de termos e de documentos e termos. Junto com o
dendrograma, gerada para todos os mtodos uma matriz de cores indicando que
termos ocorrem em que documentos. Todas as imagens produzidas nessa seo
consideraram a hierarquia de documentos e termos. A ferramenta de visualizao
fornece para cada n do dendrograma selecionado a correlao do conjunto de
documentos abaixo dele, alm de identificar cada um dos documentos. O mtodo de
visualizao adotado no possui a escala de medida das alturas no dendrograma,
dificultando o corte para contagens de clusters. No entanto, ele fornece toda a estrutura
organizacional de documentos para qualquer coleo permitindo uma visualizao
completa do conjunto de documentos. Alm disso, ele fornece tambm a estrutura de
organizao de termos associados a esses documentos, o que permite identificar a
ocorrncia de palavras que ainda podem ser retiradas da anlise. o caso de palavras
muito genricas, por exemplo, a palavra computador no caso de se tratar do assunto
informtica, palavras que no ajudam na definio de contextos, por exemplo, a palavra
dia ou ms. possvel tambm marcar clusters de palavras e cruzar o conjunto
selecionado com o de documentos.

141

Os mtodos particionais geram a visualizao da matriz de cores dividida no nmero de


clusters definido em K. Dessa forma, identifica-se perfeitamente que documentos
pertencem a que clusters.
O objetivo dessa parte da tese mostrar como a visualizao pode ser til na
interpretao dos resultados.
Para a disponibilizao das visualizaes, usar-se- a conveno de vermelho para as
visualizaes provenientes dos dados recebidos pelo mdulo de clustering sem qualquer
mudana e azul para as visualizaes produzidas aps a primeira modificao nos
dados.

142

4.5.1

Corpus Conhecimentos Gerais 6 classes

Esse corpus foi montado a partir de um site de pesquisa na internet. Foram elaboradas
primeiramente 6 classes sobre temas diferentes para servir como ponto de partida.
Obviamente as classes foram omitidas e o conjunto como um todo foi fornecido
ferramenta para a execuo dos diferentes mtodos de clustering. As classes escolhidas
para compor esse corpus foram: Artes Plsticas, Fsica, Geografia, Msica, Religio e
Teatro. Os arquivos correspondentes a essas classes totalizaram 112 arquivos.

K-means

A visualizao apresentada na figura

corresponde ao mtodo K-means para dados pr-

processados utlizando o stemming RSLP. O K-means, como os demais mtodos


particionais, necessitam da definio a priori do nmero de clusters e foram executados
com o K igual a 6, de forma a tentar reproduzir clusters assemelhados s classes
originais.
As visualizaes obtidas para esse conjunto de dados so mostradas nas figuras 4.1 (a) e
(b), para dados inalterados e com alteraes respectivamente.

Figura 4.1 (a)K-means sem mudanas nos dados (b) com mudanas

A visualizao conforme aparece mostrada nas figuras 4.1 (a) e (b) correspondem s
sadas do mdulo de visualizao quando exportadas para o formato PNG. Nessas

143

figuras, observa-se os documentos na lateral direita da visualizao e os termos na parte


superior. Dessa forma, possvel identificar toda a distribuio de termos nos
documentos da coleo. No ambiente de visualizao, possvel marcar partes da
matriz de cores de forma a estudar apenas um subconjunto de documentos ou de termos.

Graph Cluto

A visualizao fornecida pelo Cluto, gerada diretamente do processo de clustering e


no permite qualquer interao, nem configurao. A sada do Cluto mostrada a seguir
na figura 4.2 foi gerada para o mtodo Graph.

Figura 4.2 (a)Graph sem mudanas nos dados (b) com mudanas

Clustering Hierrquico - C-Clustering-Library

Os resultados produzidos para a seleo cluster hierrquico usando single-linkage so


mostradas a seguir nas figuras 4.3. Embora o visualizador no gere uma sada do tipo
amostra n cluster x que relaciona as amostras a clusters, ela mostra toda a hierarquia
dos documentos e dos termos.

144

Figura 4.3 (a)Hierrquico sem mudanas nos dados (b) com mudanas

A figura 4.4 mostra como possvel identificar grupos de termos que se encontram
muito ligados a determinados grupos de documentos. No exemplo assinalado na figura
4.4(a), mostra-se um cluster ligado Geografia, muito ligado a um grupo de termos
bem especfico e detalhado na figura.
Existe, no entanto um outro grupo ligado Geografia mostrado na figura 4.4 (b) que
no ficou dentro do mesmo cluster anterior e que praticamente no tem ligao com os
termos fortes do cluster Geografia da figura 4.4(a).

145

Figura 4.4 (a)termos ocorrem em documentos Geografia (b) termos no ocorrem

146

4.5.2

Corpus Conhecimentos Gerais 17 classes

Esse corpus foi montado a partir do mesmo site de pesquisa, mas agora utiliza-se 17
classes sobre temas diferentes. Algumas visualizaes produzidas para esse conjunto de
dados sero apresentadas e comentadas.

K-means C-Clustering Library

As visualizaes produzidas para dados sem alteraes e com alteraes so mostradas


na figura 4.5.

Nota-se que acontece uma re-arrumao dos vetores documento. No

entanto, examinando com mais calma, repara-se que os clusters em si no mudaram


muito de composio, apenas de lugar.

147

Figura 4.5 (a)K-means sem mudanas nos dados (b) com mudanas

Clustering Hierrquico C-Clustering Library

A primeira vez que o programa foi executado para esses dados, o resultado foi
produzido para a lista dos 100 termos mais freqentes, exatamente como ela foi gerada
pelo script, sem retirar mais nenhum termo. A figura 4.6(a) reflete o resultado
produzido.

148

Figura 4.6 (a)Hierrquico sem mudanas nos dados (b) com mudanas

Para esse conjunto de dados notamos que os clusters aparecem com uma certa
separao uns dos outros, denotando um possvel bom clustering de dados. No entanto,
ao observar os termos sendo considerados para a anlise, nota-se a presena de termos
como verbos ser e estar, palavras como no, etc. que poderiam ser retiradas das anlise
por se tratarem de palavras genricas, sem poder discriminativo. Operando essa retirada,
gera-se a nova visualizao da distribuio dos dados, pelos novos clusters gerados que
mostrada na figura 4.6(b) .

149

4.5.3

Corpus TeMario

As visualizaes produzidas para esse conjunto de dados tambm foram realizadas para
dados com stemming RSLP. Foram considerados os 100 termos mais freqentes da
coleo.

K-means

As visualizaes produzidas pelas execues do mtodo K-means so apresentadas na


figura 4.7. A primeira visualizao foi produzida com os dados tal qual foram
fornecidos pelo mdulo de pr-processamento (a) e depois alguns termos foram
retirados (b). Nas figuras, j aparece assinalado um conjunto de apenas quatro
documentos que formam um cluster. Essa situao ser comentada a seguir.

Figura 4.7 (a) Mtodo K-means simples (b) Mtodo com retirada de termos

Clustering Hierrquico

A visualizao mostrada a seguir se relaciona com o mtodo de clustering hierrquico


single-linkage. Para esse conjunto de dados algumas consideraes so pertinentes. Os
grupos de notcias, embora identifiquem perfeitamente sees do Jornal Folha de So
Paulo e Jornal do Brasil, no restringem assuntos, assim poltica pode tratar de
150

poltica no mundo e se aproximar de uma notcia da sesso mundo ou internacional


em termos de contedo. Assim, durante o processo de clustering percebemos a
rearrumao de vrios documentos, alguns se aproximando de documentos tidos como
de outras sees. Alguns documentos, no entanto se apresentam sozinhos e bem
separados como o caso do pequeno cluster assinalado nas figuras 4.7 e 4.9. Nesse
caso, quatro documentos aparecem sempre juntos, apresentam distncias prximas e so
bem destacados dentro da hierarquia de clusters. So os documentos in96ab26-b.txt,
in96jul3-a.txt, in96jl02-a.txt, in96jul9-a.txt. Recorrendo aos textos nota-se o
assunto Rssia como tema principal associado a eleies, poltica, etc. como mostra a
figura 4.2. Dessa forma, pde-se verificar que um cluster com medidas prximas e bem
separado trata de um mesmo assunto.

Figura 4.8 Documentos prximos e destacados dos demais na hierarquia de clusters

A visualizao dos resultados produzidos para esse conjunto de dados, tanto a produzida
pelo K-means como pelo mtodo hierrquico, no fornecem imediatamente ao olhar a

151

identificao de clusters expressivos bem separados. Somente com a utilizao de


mtricas possvel identific-los.

Figura 4.9 Visualizao Hierrquica com dados inalterados

Aps a retirada de termos a visualizao produzida pela ferramenta apresentada na


figura 4.10. No houve grandes alteraes na arrumao dos vetores, o que indica que
os termos retirados no exerciam grande influncia na anlise.

152

Figura 4.10 Visualizao Hierrquica aps a retirada de termos

153

4.6 Resultados da Categorizao Assistida


Como uma forma complementar ao clustering de documentos, tambm conhecido como
categorizao baseada em clustering, implementou-se um mdulo de categorizao
assistida. Essa categorizao do tipo explicado anteriormente em que se separa um
conjunto de documentos representativo de cada assunto, treina-se a ferramenta e
posteriormente apresentam-se novos documentos ferramenta para que sejam
categorizados.

Corpus Conhecimentos Gerais 6 classes

Pela exatido alcanada pela categorizao baseada em clustering, pode-se inferir que
os conjuntos de dados referentes s 6 classes sejam suficientes para treinar a ferramenta
de categorizao, categorizando corretamente as novas amostras. Separou-se de cada
conjunto amostras aleatrias e treinou-se a ferramenta com as demais amostras. Em
seguida apresentou-se as amostras (retiradas do conjunto original) a categorizar
ferramenta. Para esse conjunto de dados, os resultados foram:

para CosineSimilarity: 100%

para JaccardSimilarity: 100%

para WeightedCosineSimilarity: 100%

Corpus TeMario 5 classes

Esse corpus contm 100 arquivos no total, divididos em 5 classes iniciais, 20


documentos em cada uma. O categorizador gera um resumo contendo o nmero de
frases e termos para cada categoria processada.

Numa segunda etapa, as amostras no-vistas so apresentadas ao categorizador j


treinado que associa a cada uma delas a categoria que considera mais adequada. Para
esse conjunto de dados os resultados foram:

154

para CosineSimilarity: 80%

para JaccardSimilarity: 80%

para WeightedCosineSimilarity: 80%

A categorizao errou basicamente atribuindo documentos da categoria mundo


categoria internacional.

155

Captulo 5
Consideraes Finais

156

5 Consideraes Finais
No presente trabalho foi apresentada a fundamentao terica para o problema de
clustering de documentos para a Lngua Portuguesa e proposto um conjunto de
ferramentas para a sua soluo. Foi descrito, tambm, o processo de clustering adotado,
os algoritmos implementados, juntamente com sua aplicao e avaliao nos casos
estudados.
Foi apresentado tambm, um mtodo de avaliao e anlise de resultados baseado em
grficos do tipo dendrograma associado matriz de cores.

Como derivao da soluo apresentada para o problema de clustering de textos em


portugus foi tambm apresentada uma soluo para categorizao de textos, a partir de
categorias pr-definidas, por similaridade, no mdulo de categorizao assistida.

A proposta de soluo apresentada uma proposta que utiliza diferentes bibliotecas e


visualizadores do tipo gratuito e de fonte aberta (open-source), com uma visualizao
que permite estudo e melhor entendimento dos dados textuais a custo zero.
Embora essa soluo tenha sido desenvolvida com o objetivo de processar dados no
idioma Portugus, a sua utilizao para outros idiomas conseguida sem grande
esforo, j que toda a parte de pr-processamento funciona ou com arquivos externos,
do tipo .txt, como no caso do dicionrio e stopwords, ou chamando rotinas como o
caso do stemming. Do mesmo modo como foi utilizado dois stemmers distintos para a
Lngua Portuguesa, poderia-se ter utilizado um stemmer para outro idioma, sem
nenhuma complicao.

5.1 Concluses
A preciso conseguida tanto no processo de clustering como no processo de
categorizao est intimamente ligada qualidade dos dados. Se os dados no possuem
atributos em comum, muito difcil mesmo para diferentes mtodos detectar
semelhanas entre os documentos. No entanto, alguns problemas podem ser diminudos
e at contornados pela utilizao tcnicas auxiliares s tarefas principais, como foi
157

mostrado nesta tese. Com o emprego do stemming, melhora-se a qualidade do processo


de clustering em todas as situaes estudadas.
Uma outra situao interessante que cada coleo de documentos precisa de um
nmero diferente de termos para ser descrita. Esse nmero de termos conforme foi
verificado tem uma influncia no ndice de acerto. Isso significa dizer que se um
nmero menor ou maior de termos que o nmero timo for utilizado a taxa de acerto
pode ser bastante comprometida.

A soluo implementada atendeu plenamente aos objetivos propostos. Os testes e


avaliaes apresentados mostraram a eficincia e aplicabilidade da soluo proposta
para o problema de clustering de textos para o Idioma Portugus.

A visualizao dos resultados se mostrou bastante informativa e de grande valia para a


interpretao dos mesmos.

5.2 Trabalhos Futuros


O sistema originado nesta tese foi implementado de forma que a adio de filtros
(parsers) para o processamento de arquivos nos formatos HTML, DOC, XML e PDF
imediata e no exige nenhuma modificao nos atuais mdulos.
De forma semelhante, o sistema pode ser adaptado para processar documentos
diretamente de uma base de dados relacional sem nenhuma modificao apenas pela
adio de extenses.
A vantagem do uso de gerenciadores mais sofisticados a possibilidade do uso de bases
distribudas e o acesso otimizado aos documentos.
Outra extenso prevista a adaptao do sistema a ambientes distribudos paralelos.
Isso pode ser obtido com pequenas modificaes no sistema, j que os mdulos so
independendentes, com operaes que podem ser aplicadas a diversos documentos
simultaneamente.
Atravs do estudo de caso foi possvel perceber a influncia do nmero de termos na
acurcia do clustering de documentos. Um estudo complementar

mais aprofundado

poderia determinar a relao do nmero de termos, nmero de clusters, nmero de

158

arquivos e quem sabe at do tamanho do arquivos, de forma a maximizar a eficincia do


sistema.

5.3 Perspectivas Futuras


A riqueza dos textos, a complexidade dos problemas relativos linguagem, e o
esparsamento dos dados, juntos, impem srios desafios para a modelagem. Mesmo ao
coletar dados a nvel de palavras individuais aparecem problemas como, por exemplo, a
dificuldade de obteno de uma amostra verdadeiramente representativa de todas as
palavras. Essa situao pode ocorrer por causa de amostras super-adequadas,
generalizaes e concatenaes incorretas, etc. Em alguns casos, atividades humanas
podem ser utilizadas para codificar algumas informaes relevantes tais como regras
gramaticais, inflexes de palavras, etc.
Existe, ainda, o bem conhecido problema de inteligncia artificial: como extrair
conhecimento de especialistas da rea e converter em um formato utilizvel pela
mquina.

Mesmo considerando esses problemas ainda existentes nesta rea para a implantao de
sistemas mais complexos para o tratamento de textos, sabe-se que novas solues para
estes problemas no to novos esto surgindo.

Esta rea de pesquisa, no entanto, tende a crescer rapidamente devido principalmente a


enorme quantidade de textos produzidas pela Web, e pelo grande interesse que essa
disponibilidade acarreta de modo geral. Pode-se encontrar textos dos mais diversos
assuntos disponveis em qualquer tempo pela internet.

Alm disto, as empresas redescobriram suas informaes j armazenadas em textos e


esto utilizando estas informaes como uma vantagem competitiva em relao aos seus
concorrentes. O text mining apresentou os principais recursos para que a inteligncia
competitiva pudesse ser efetivada na prtica [3].

159

Referncias Bibliogrficas

160

6 Referncias Bibliogrficas
[1]

Sullivan, D., Document Warehousing and Text mining, 1a edition, John Wiley &
Sons, New York, 2001.

[2]

M. Steinbach, G. Karypis, and V. Kumar. A comparison of document


clustering techniques. In KDD Workshop on Text mining, 2000.
http://citerserr.nj.nec.com/steinback00comparison.html

[3]

Zanasi, A., Web Mining through the Online Analyst, Data Mining II,
N.Ebecken & C.A.Brebbia, 2000.

[4]

Jain, A.K., Murty, M.N., Flynn, P.J., Data Clustering: A Review. In ACM
Computing Surveys, vol 31, pg 264-323, 1999.

[5]

Koller, D. and Sahami, M., Hierarchically classifying documents using very


few words. In D. Fisher, editor, Proceedings of (ICML) 97, 14th International
Conference on Machine Learning, pages 170178, Nashville, US, Morgan
Kaufmann Publishers, San Francisco, US, 1997.

[6]

Feldman, R., Dagan, I., Knowledge discovery in textual databases (KDT). In


proceedings of the First International Conference on Knowledge Discovery snd
Data Mining (KDD-95), Montreal, Canada, August 20-21, AAAI Press, 112117.

[7]

Hearst, M.A., Text Data Mining: Issues, techniques, and the relationship to
information access, Presentation notes for UW/MS workshop on data mining,
July 1997.

[8]

Griffiths, A., Robinson, L. A., and Willett, P., Hierarchical agglomerative


clustering methods for automatic document classification. Journal of
Documentation, 40(3):175205, September 1984.

[9]

Belkin, N.J. and Croft, W. B. Information filtering and information retrieval:


Two sides of the same coin?'', Communications of the ACM, 35(12):29-38, 1992.

[10]

O' Riordan, C. and Sorensen, H., "Information Filtering and Retrieval: An


Overview", citeseer.nj.nec.com/483228.html

[11]

Eagan, A., and Bender, L., Spiders and worms and crawlers, oh my: Searching
on the world wide web. In Proceedings of the Conference sponsored by the
Librarians Associations of the University of California,1996.

[12]

Salton, G., Automatic Text Processing, Addison-Wesley, 1989.

[13]

Baeza-Yates, R., Ribeiro-Neto, B., Modern Information Retrieval, Addison


Wesley Longman, 1999.

161

[14]

Grdenfors, P., Conceptual Spaces, MIT Press, 2000.

[15]

Salton, G., Wong, A., Yang, C., A vector space model for automatic indexing,
Communications of the ACM, vol. 18, pp. 163-620, 1975.

[16]

Salton, G., and McGill, M., Introduction to Modern Information Retrieval,


McGraw Hill International, 1983.

[17]

Faloutsos, C., Oard, D., A Survey of Information Retrieval and Filtering


Methods, Technical Report, Information Filtering Project, University of
Maryland, College Park, MD, http://citeseer.nj.nec.com/faloutsos96survey.html,
1996.

[18]

Miller, G., Wordnet: An online lexical database, International Journal of


Lexicography, 3(4):235-312, 1996.

[19]

Han J., Kamber, M., Data Mining: Concepts and Techniques, Morgan
Kaufmann, 2001.

[20]

Files, J.R., Huskey, H.D., An information retrieval system based on


superimposed coding, In Proceedings AFIPS FJCC, 35:423-432, 1969.

[21]

Harrison, M.C., Implementation of the substring test by hashing, CACM,


14(12):777-779, December 1971.

[22]

Haskin, R.L., Special-purpose processors for text retrieval, Database


Engineering, 4(1):16-29, September 1981.

[23]

Scholtes, J. C., Neural nets and their relevance for information retrieval, ITLI
Prepublication CL-91-02, University of Amsterdam, Institute for Language,
Logic and Information, Department of Computational Linguistics, October
1991.

[24]

Harman, D., How effective is suffixing?, Journal of the American Society for
Information Science, Volume 42, Number 1, pages 7-15, 1991.

[25]

Porter, M., An algorithm for suffixing stripping, Program, Volume 14,


Number 3, pages 130-137, 1980.

[26]

Lovins, J. B., Development of a stemming algorithm, Mechanical Translation


and Computacional Linguistics, Volume 11, Number 1-2, pages 22-31, 1968.

[27]

Han, E. H., Boley, B., Gini, M., Gross, R., Hastings, K., Karypis, G., Kumar, V.,
Mobasher, B., and Moore, J., Webace: a web agent for document categorization
and exploration. In Proceedings of the second international conference on
Autonomous agents, pages 408415. ACM Press, 1998.

[28]

Elmasre, R., Navathe, S.B.,


Benjamim/Cummins, USA, 1989.

Fundamentals

162

of

Database

Systems,

[29]

Fox, E.A., Harman, D.K., Baeza-Yates, and Lee, W.C., Inverted Files, In
Frakes and Baeza-Yates [30], chapter 3, pag. 2843.

[30]

Frakes, W.B., Baeza-Yates, R., editors, Information Retrieval: Data Structures


and Algorithms, Prentice Hall, 1992.

[31]

Bell, T.C., Moffat, A., Nevill-Manning, C.G., Witten, I.H., and Zobel, J., Data
Compression in full-text retrieval systems, Journal of American Society for
Information Science, 44(9):508-531, October, 1993.

[32]

Bookstein, A., Klein, S.T., Raita, T., Model based concordance compression,
In J. A Storer and M. Cohn, editors, Proc. IEEE Data Compression Conference,
pages, 82-91, Snowbird, Utah, IEEE Computer Society Press, Los Alamitos,
California, March 1992.

[33]

Choueka, Y., Fraenkel, A.S., Klein, S.T., Compression of concordance in full


text retrieval systems. In Proc. ACM-SIGIR International Conference on
Research and Development in Information Retrieval, pages 597-612, Grenoble,
France, June 1988, ACM Press , New York, 1988.

[34]

Fraenkel, A.S., Klein, S.T., Novel compression of sparse bit-strings


Preliminary Report. In A. Apostolico and Z. Galil, editors, Combinatorial
Algorithms on Words, Volume 12, NATO ASI Series F, pages 169-183, Berlin,
Springer-Verlag, 1985.

[35]

Appelt, D. E. and Israel, D. J., Introduction to Information Extraction


Technology. In Proceedings of the 16th International Joint Conference on
Artificial Intelligence, 1999.

[36]

Daille, B., Study and Implementation of combined Techniques for Automatic


Extraction of Terminology. In Proceedings of the 32nd Annual Meeting of the
Association for Computational Linguistics, 1994.

[37]

Leek, T. R., Information Extraction Using Hidden Markov Models, Master of


Science of Computer Science Thesis, University of California, San Diego, 1997.

[38]

Mitchell, T., Machine Learning, MacGrall Hill, New York, 1996.

[39]

Church, K.W., and Hanks, P., Word Association Norms, mutual information
and Lexicography. In Proceedings of ACL, 27, pages 76-83, Vancouver,
Canada, 1989.

[40]

Zechner, K., A literature survey on information extraction and text


summarization,
Term
paper,
Carnegie
Mellon
University,
1997.
http://www.contrib.andrew.cmu.edu/ ~zechner/klaus.html

[41]

Hahn, U. and Mani, I., The challenges of Automatic Summarization. IEEE


Computer, Vol.33, No.11, November, 2000.

163

[42]

Yang, Y., Pedersen, J.P., A Comparative Study on Feature Selection in Text


Categorization. Proceedings of the Fourteenth International Conference on
Machine Learning (ICML97), pp. 412-420, 1997.

[43]

Chidanand, A., Damerau, F., and Weiss, S.M., Automated Learning of


Decision Rules for Text Categorization, ACM Transaction on Information
Systems, Vol.12, No.3, July 1994.

[44]

Han, J and Kamber, M., Data Mining: Concepts and Techniques, Morgan
Kaufmann, San Francisco, 2001.

[45]

Dumais, S., Platt, J., Heckerman, D., and Sahami, M., Inductive learning
algorithms and representations for text categorization. In Proceedings of the
1998 ACM 7th international conference on information and knowledge
management, pages 148, 155, 1998.

[46]

Sebastiani, F., Machine learning in automated text categorisation: a survey,


Technical Report IEI-B4-31-1999, Istituto di Elaborazione dell'Informazione,
C.N.R., Pisa, IT, 1999. http://citeseer.nj.nec.com/sebastiani99machine.html

[47]

Tzeras, K., and Hartmann, S., Automatic indexing based on Bayesian inference
networks. In Proceedings of SIGIR-93, 16th ACM International Conference on
Research and Development in Information Retrieval, Pittsburg, PA, 22-34,
1993.

[48]

Larkey, L.S. , A patent search and classification system. In Proceedings of


DL-99, 4th ACM Conference on Digital Libraries, 90-95,Berkley, CA, 1999.

[49]

Androutsopoulos, I., Koutsias, J. Chandrinos, K. V. and Spyropoulos, An


experimental comparison between Bayesian and keyword and based anti-spam
filtering with personal email messages. In Proceedings of SIGIR-00, 23rd ACM
International Conference on Research and Development in Information
Retrieval, 160-167, C.P., Athens, Greece 2000.

[50]

Roth, D., Learning to resolve natural language ambiguities: A unified


approach. In Proceedings of AAAI-98, 15th Conference of the American
Association for Artificial Intelligence, 806-813, Madison, WI, 1998.

[51]

Dumais, S. T. and Chen, H. 2000. Hierarchical classifications of web content.


In Proceedings of SIGIR-00, 23rd ACM International Conference on Research
and Development in Information Retrieval, 256-263, Athens, Greece, 2000.

[52]

Lewis, D.D 1998. Nave (Bayes) at forty: The independence assumption in


information retrieval. In Proceedings of ECML-98, 10th European Conference
on Machine Learning, 4-15, Chemnitz, Germany, 1998.

[53]

Moulinier, I. And Ganascia, J. 1996. Applying an existing machine learning


algorithm to text categorization. In connectionist, statistical and symbolic
approaches to learning for Natural Language Processing, S. Wermter, E. Riloff,
and G. Schaler, eds. Springer Verley, Heidelberg, Germany, 343-354.

164

[54]

Yang, Y. and Liu, X., A re-examination of text categorization methods. In


Proceedings of SIGIR-99, 22nd ACM International Conference on Research and
Development in Information Retrieval, , 42-39, Berkley, CA, 1999.

[55]

Cohen, W.W. and Singer, Y. 1999. Context-sensitive learning methods for text
categorization, ACM Trans, Inform. Syst., 17, 2 , 141-173.

[56]

Lam, S.L. and Lee, D.L. 1999. Feature reduction for neural network based test
categorization. In Proceedings of DASFAA-99, 6th IEEE International
Conference on Database Advanced Systems for Advanced Applications, 195202, Hsinchu, Twaiwan, 1999.

[57]

Yang, Y., Expert network: effective and efficient learning from human
decisions in text categorization and retrieval. In Proceedings of SIGIR-94, 17th
ACM International Conference on Research and Development in Information
Retrieval), 13-22, 1994, Dublin, Ireland, 1994.

[58]

Joachims, T., Text Retrieval with support vector machine: learning with many
relevant features. In Proceedings of ECML-98, 10th European Conference on
Machine Learning , 137-142, Chemnitz, Germany, 1998.

[59]

Vasileios, H., Gravano, L., and Maganti, A., An Investigation of Linguistic


Features and Clusters Algorithms for Topical Document Clustering.
Proceedings of the 23rd Annual International ACM SIGIR Conference on
Research and Development in Information Retrieval, 2000.

[60]

Kosala and Blockeel. Web mining research: A survey, SIGKDD Explorations:


Newsletter of the Special Interest Group SIG on Knowledge Discovery & Data
Mining, 2, 2000.

[61]

Rijsbergen C. J. van, Information Retrieval, Dept. of Computer Science,


University of Glasgow, Butterworth, London, 2 edition, 1979.

[62]

Cutting, D. R., Karger, D. R., Pedersen, J. O., and Tukey, J. W., Scatter/gather:
A cluster-based approach to browsing large document collections. In
Proceedings of the Fifteenth Annual International ACM SIGIR Conference on
Research and Development in Information Retrieval, pages 318329, 1992.

[63]

Zamir, O., Etzioni, O., Madani, O., and Karp, R. M., Fast and intuitive
clustering of web documents, In KDD97, pages 287290, 1997.

[64]

Golub, G. and Van Loan, C., Matrix Computations, Johns-Hopkins, Baltimore,


Maryland, second edition, 1989.

[65]

Dumais, S., Improving the retrieval of information from external sources,


Behavior Research Methods, Instruments, & Computers, 23(2):229--236, 1991.

165

[66]

Koll, M., WEIRD: An approach to concept-based information retrieval,


SIGIR Forum, 13:32--50, 1979.

[67]

Borko, H. and Bernick, M., Automatic document classification. In Journal of


the Association for Computing Machinery, 10:151--162, 1963.

[68]

Deerwester, S., Dumais, S., Furnas, G., Landauer, T., and Harshman, R.,
Indexing by latent semantic analysis. In Journal of the American Society for
Information Science, 41(6):391--407, 1990.
Salton, G. and Buckley, C., Improving retrieval performance by relevance
feedback. Journal of the American Society for Information Science, 41(4):288-297, 1990.

[69]

[70]

Florek, K., Lukaszewicz, J., Perkal, J., and Zubrzycki, S. (1951a), "Sur la
Liaison et la Division des Points d'un Ensemble Fini," Colloquium
Mathematicae, 2, 282 -285.

[71]

Florek, K., Lukaszewicz, J., Perkal, J., and Zubrzycki, S. (1951b), "Taksonomia
Wroclawska," Przeglad Antropol., 17, 193 -211.

[72]

McQuitty, L.L. (1957), "Elementary Linkage Analysis for Isolating Orthogonal


and Oblique Types and Typal Relevancies," Educational and Psychological
Measurement, 17, 207 -229.

[73]

Sneath, P.H.A. (1957), "The Application of Computers to Taxonomy," Journal


of General Microbiology, 17, 201 -226.

[74]

Hair, J.F., Anderson, R.E., and Tatham, R.L., Multivariate Data Analysis with
Readings, 2nd Edition, MacMillan Publishing Co., New York, PP 303.

[75]

Ward, J.H., "Hierarchical Grouping to Optimize an Objective Function". Journal


of the American Statistical Association, 58, 236 244, 1963.

[76]

Ross, K., Srivastava, D., Fast Computation of sparse datacubes. In Proceedings


of 23th International Conference on Very Large Databases (VLDB97), pages
116-125, Athens, Greece, Morgan Kaufmann, August 1997.

[77]

Jain, A.K. and Dubes, R.C., Algorithms for Clustering Data, Prentice Hall,
1988.

[78]

Charniak, E., Statistical Language Learning, MIT Press, 1993.

[79]

Finch, S. and Chater, N., Unsupervised Methods for Finding Linguistic


Categories. In Artificial Neural Networks, 2, pp.II-1365-1368, North Holland,
1992.

[80]

Buckley, C. and Lewit, A. F., Optimizations of inverted vector searches,


SIGIR 85, pp. 97-110, 1985.

166

[81]

Kowalski, G., Information Retrieval Systems Theory and Implementation,


Kluwer Academic Publishers, 1997.

[82]

Cutting, D.R., Karger, D.R., Pedersen, J.O., and Tukey, J. W., Scatter/Gather:
A cluster-based approach to browsing large document collections. SIGIR 92,
318-329, 1992.

[83]

Koller, D. and Sahami, M., Hierarchically Classifying Document using very


few words. In Proceedings of the 14th International Conference on Machine
Learning (ML), Nashville, Tenessee, 170-178, July 1997.

[84]

Vesanto, J., Himberg, J., Alhoniemi, E., and Parhankangas, J., Som Toolbox
para Matlab 5, Report A57, Helsinki University of Technology, Neural Network
Research Centre, Espoo, Finland, April, 2000.

[85]

Wise, J.A., The Ecological Approach to Text Visualization, Journal of the


American Society for Information Science, vol.50, no.13, pp. 1224-1233, 1999.

[86]

Allan, J., Automatic Hypertext Construction, PHD thesis, Cornell University,


January, 1995. Also technical report TR95-1484.

[87]

Allan, J., Building hypertext using information


Processing and Management, 33(2):145-149, 1997.

[88]

Dubin, D., Document analysis for visualization. In Proceedings of ACM


SIGIR, pages 199-204, July 1995.

[89]

Hemmje, M., Kunkel, C., and, Willet, A., Lyberworld a visualization user
interface supporting fulltext retrieval. In Proceedings of ACM SIGIR, pages
254259, July, 1994.

[90]

Allan, J., Leouski, A.V., Swan, R.C., Interactive Cluster Visualization for
Information Retrieval, Technical Report IR-116, University of Massachusetts,
Amherst, 1997.

[91]

Chalmers, M., and Chitson, P., Bead: Explorations in information


visualization. In Proceedings of ACM SIGIR, pages 330-337, June 1992.

[92]

http://snowball.tartarus.org/portuguese/stemmer.html,
2004.

[93]

Moreira Orengo, V. and Huyck, C.R. A Stemming Algorithm for The


Portuguese Language. In Proceedings of the SPIRE Conference, Laguna de San
Raphael, Chile, November 13-15, 2001.

[94]

Chaves, M. S., Um estudo e apreciao sobre algoritmos de stemming. In: IX


JORNADAS IBEROAMERICANAS DE INFORMTICA, agosto de 2003,
Cartagena de Indias, Colmbia.

[95]

http://snowball.tartarus.org/portuguese/voc.txt, acessado em agosto de 2004.

167

retrieval,

acessado

em

Information

agosto

de

[96]

Cunha, C. And Lindley-Cintra, L. Nova Gramtica


Contemporneo. Ed. Nova Fronteira, Rio de Janeiro, 1985, 719p.

do

Portugus

[97]

Macambira, J.R., A Estrutura Morfo-Sinttica do Portugus. Ed. Pioneira, So


Paulo, 1999.

[98]

M.J.L. de Hoon, S. Imoto, J. Nolan, and S. Miyano: "Open Source Clustering


Software", Bioinformatics, 2004, in press

[99]

Perl2exe Users Manual, Indigo Star Softwares, Ontario, Canada, 29 de junho de


2004, http://www.indigostar.com

[100] Zhao, Y., Karypis, G., Criterion Functions for Document Clustering:
Experiments and Analysis, Technical Report TR#1--40, Department of
Computer Science, University of Minnesota, Minneapolis, MN, 2001.
[101] Zhao, Y., Karypis, G., Evaluation of Hierarchical Clustering Algorithms for
Document Datasets, pages 515-524, ACM Press, 2002.
[102] Croft. W.B. and Das, R. Experiments with query acquisition and use in
document retrieval systems. In Proceedings of the ACM SIGIR, Conference on
Research and Development in Information Retrieval (1990), 349-368.
[103] Kohonen, T., Self-Organization and Associative Memory,
Berlin, 3rd edition, 1989.

Springer-Verlag,

[104] Wohl, A.D., Intelligent Text Mining Creates Business Intelligence. In: IBM
Business Intelligence Solutions CD, CD_ROM, EUA, 1998.
[105] Zanasi, A., Text Mining: the new competitive intelligence frontier. In
VST2001 Barcelona Conference Proceedings IRIT, 2001.
[106] http://www.spss.com/textsmart, acessado em agosto de 2004.
[107] Inxight SmartDiscovery, The new Standard for Interprise
Retrieval, Inxight Product White Paper, Inxight Software, April, 2003.

Information

[108] Inxight SmartDiscovery, From documents to Information: A New Model for


Informartion Retrieval, Inxight Product White Paper, Inxight Software,
November, 2004.
[109] Pohs, W., Pinder, G., Dougherty, C., White, M., The Lotus Knowledge
Discovery System: Tools and Experiences, IBM Systems Journal, Volume 40,
Number 4, 2001.
[110] Dodge, M., NewsMaps: Topographic Mapping of Information, 2000.
http://mappa.mundi.net/maps/maps_015/-23k
[111] http://fqspl.com.pl/cambio.htm, acessado em setembro de 2004.

168

[112] Ananyan, S., Foreward to Document Warehousing and Text Mining Book,
Megaputer Intelligence, Boomington, IN, January, 2001.
[113] Neri, F., Mining Information in Large Textual Data Sets, Synthema Solutions,
Pisa, Italy, 1996.
[114] Hartigan, J.A., Clustering Algorithms, Jonh Wiley & Sons, New York, 1975.
[115] Thede, E., Where the *@#! Is That? The Art of Text Query, PC AI Magazine,
vol. 14.1, Jan/Feb 2000.
[116] http://www.wizsoft.com, acessado em setembro de 2004.
[117] http://www.canis.uiuc.edu/projects/interspace/technical/canis-report-0006.html,
acessado em setembro de 2004.
[118] http://www.entrieva.com/entrieva/products/semiomap.asp?Hdr=semiomap,
acessado em agosto de 2004.
[119] http://www.textwise.com/government/index.html, acessado em agosto de 2004.
[120] http://www.perl.org, acessado em setembro de 2004.
[121] http://www.python.org, acessado em maro de 2004.
[122] http://www.ruby.org, acessado em maro de 2004.
[123] Sachs, L., Applied Statistics, 2nd. Edition, Springer-Verlag, New York, 1984.
[124] Salton, G., Wong, A. Yang, C.S., A vector Space Model for Information
Retrieval. Comunications of the ACM, 18(11):613-620, November, 1975.

169

Apndices

170

Apndice A
Clculo da Distncia entre Clusters

Prototype
double clusterdistance (int nrows, int ncolumns, double** data, int** mask,
double weight[], int n1, int n2, int index1[], int index2[], char dist, char
method, int transpose);
returns the distance between two clusters.

Arguments
int nrows;
The number of rows in the data matrix, equal to the number of genes in the gene
expression experiment.
int ncolumns;
The number of columns in the data matrix, equal to the number of microarrays in the
gene expression experiment.
double** data;
The data array containing the gene expression data. Genes are stored row-wise, while
microarrays are stored column-wise. Dimension: [nrows][ncolumns].
int** mask;
This array shows which elements in the data array, if any, are missing. If
mask[i][j]==0, then data[i][j] is missing. Dimension: [nrows][ncolumns].
double weight[];
The weights that are used to calculate the distance. Dimension: [ncolumns] if transpose==
0; [nrows] if transpose==1.
int n1;
The number of elements in the first cluster.
int n2;
The number of elements in the second cluster.
int index1[];
Contains the indeces of the elements belonging to the first cluster. Dimension: [n1].
int index2[];
Contains the indeces of the elements belonging to the second cluster. Dimension: [n2].
char dist;
Specifies which distance measure is used. See Chapter 2 [Distance functions], page 2.
char method;
Specifies how the distance between clusters is defined:
a Distance between the two cluster centroids (arithmetic mean);
m Distance between the two cluster centroids (median);
s Shortest pairwise distance between elements in the two clusters;
x Longest pairwise distance between elements in the two clusters;
v Average over the pairwise distances between elements in the two clusters.
int transpose;
If transpose==0, the distances between rows in the data matrix are calculated. Otherwise,
the distances between columns are calculated.

Matriz de Distncias

Prototype
double** distancematrix (int nrows, int ncolumns, double** data, int** mask,
double weight[], char dist, int transpose);

171

returns the distance matrix stored as a ragged array. If insucient memory is available to
store the distance matrix, a NULL pointer is returned, and all memory allocated thus far
is freed.

Arguments
int nrows;
The number of rows in the data matrix, equal to the number of genes in the gene
expression experiment.
int ncolumns;
The number of columns in the data matrix, equal to the number of microarrays in the
gene expression experiment.
double** data;
The data array containing the gene expression data. Genes are stored row-wise, while
microarrays are stored column-wise. Dimension: [nrows][ncolumns].
int** mask;
This array shows which elements in the data array, if any, are missing. If
mask[i][j]==0, then data[i][j] is missing. Dimension: [nrows][ncolumns].
double weight[];
The weights that are used to calculate the distance. Dimension: [ncolumns] if transpose==
0; [nrows] if transpose==1.
char dist;
Specifies which distance measure is used. See Chapter 2 [Distance functions], page 2.
int transpose;
If transpose==0, the distances between the rows in the data matrix are calculated.
Otherwise, the distances between the columns are calculated.

Inicialiao do Algoritmo K-means

Prototype
void randomassign (int nclusters, int nelements, int clusterid[]);

Arguments
int nclusters;
The number of clusters.
int nelements;
The number of elements (genes or microarrays) to be clustered.
int clusterid[];
The cluster number to which each element was assigned. Space for this array should
be allocated before calling randomassign. Dimension: [nelements].

Encontrando o Meio do Cluster

Prototype
void getclustermean (int nclusters, int nrows, int ncolumns, double** data,
int** mask, int clusterid[], double** cdata, int** cmask, int transpose);

Arguments
int nclusters;
The number of clusters.
int nrows;
The number of rows in the data matrix, equal to the number of genes in the gene
expression experiment.
int ncolumns;
The number of columns in the data matrix, equal to the number of microarrays in the
gene expression experiment.
double** data;
The data array containing the gene expression data. Genes are stored row-wise, while
microarrays are stored column-wise. Dimension: [nrows][ncolumns].
int** mask;

172

This array shows which elements in the data array, if any, are missing. If
mask[i][j]==0, then data[i][j] is missing. Dimension: [nrows][ncolumns].
int clusterid[];
The cluster number to which each item belongs. Each element in this array should
be between 0 and nclusters-1 inclusive. Dimension: [nrows] if transpose==0, or
[ncolumns] if transpose==1.
double** cdata;
This matrix stores the centroid information. Space for this matrix should be allocated
before calling getclustermean. Dimension: [nclusters][ncolumns] if transpose==
0 (row-wise clustering), or [nrows][nclusters] if transpose==1 (columnwise
clustering).
int** cmask;
This matrix stores which values in cdata are missing. If cmask[i][j]==0, then
cdata[i][j] is missing. Space for cmask should be allocated before calling
getclustermean. Dimension: [nclusters][ncolumns] if transpose==0 (row-wise
clustering), or [nrows][nclusters] if transpose==1 (column-wise clustering).
int transpose;
This flag indicates whether row-wise (gene) or column-wise (microarray) clustering
is being performed. If transpose==0, rows (genes) are being clustered. Otherwise,
columns (microarrays) are being clustered.

Encontrando a mdia do Cluster

Prototype
void getclustermedian (int nclusters, int nrows, int ncolumns, double** data,
int** mask, int clusterid[], double** cdata, int** cmask, int transpose);

Arguments
int nclusters;
The number of clusters.
int nrows;
The number of rows in the data matrix, equal to the number of genes in the gene
expression experiment.
int ncolumns;
The number of columns in the data matrix, equal to the number of microarrays in the
gene expression experiment.
double** data;
The data array containing the gene expression data. Genes are stored row-wise, while
microarrays are stored column-wise. Dimension: [nrows][ncolumns].
int** mask;
This array shows which elements in the data array, if any, are missing. If
mask[i][j]==0, then data[i][j] is missing. Dimension: [nrows][ncolumns].
int clusterid[];
The cluster number to which each item belongs. Each element in this array should
be between 0 and nclusters-1 inclusive. Dimension: [nrows] if transpose==0, or
[ncolumns] if transpose==1.
double** cdata;
This matrix stores the centroid information. Space for this matrix should be allocated
before calling getclustermedian. Dimension: [nclusters][ncolumns] if transpose==
0 (row-wise clustering), or [nrows][nclusters] if transpose==1 (columnwise
clustering).
int** cmask;
This matrix stores which values in cdata are missing. If cmask[i][j]==0,
then cdata[i][j] is missing. Space for cmask should be allocated before calling
getclustermedian. Dimension: [nclusters][ncolumns] if transpose==0 (row-wise
clustering), or [nrows][nclusters] if transpose==1 (column-wise clustering).
int transpose;
This flag indicates whether row-wise (gene) or column-wise (microarray) clustering
is being performed. If transpose==0, rows (genes) are being clustered. Otherwise,
columns (microarrays) are being clustered.

173

Encontrando o Medide do Cluster

Prototype
void getclustermedoid(int nclusters, int nelements, double** distance, int
clusterid[], int centroids[], double errors[]);

Arguments
int nclusters;
The number of clusters.
int nelements;
The total number of elements that are being clustered.
double** distmatrix;
The distance matrix. The distance matrix is symmetric and has zeros on the diagonal.
To save space, the distance matrix is stored as a ragged array. Dimension: [nelements][]
as a ragged array. The number of columns in each row is equal to the row
number (starting from zero). Accordingly, the first row always has zero columns.
int clusterid[];
The cluster number to which each element belongs. Dimension: [nelements].
int centroid[];
For each cluster, the element of the item that was determined to be its centroid. Dimension:
[nclusters].
int errors[];
For each cluster, the sum of distances between the items belonging to the cluster and
the cluster centroid. Dimension: [nclusters].

Encontrando a soluo tima K-means e K-Medians

Prototype
void kcluster (int nclusters, int nrows, int ncolumns, double** data, int**
mask, double weight[], int transpose, int npass, char method, char dist, int
clusterid[], double** cdata, double* error, int* ifound);

Arguments
int nclusters;
The number of clusters k .
int nrows;
The number of rows in the data matrix, equal to the number of genes in the gene
expression experiment.
int ncolumns;
The number of columns in the data matrix, equal to the number of microarrays in the
gene expression experiment.
double** data;
The data array containing the gene expression data. Genes are stored row-wise, while
microarrays are stored column-wise. Dimension: [nrows][ncolumns].
int** mask;
This array shows which elements in the data array, if any, are missing. If
mask[i][j]==0, then data[i][j] is missing. Dimension: [nrows][ncolumns].
double weight[];
The weights that are used to calculate the distance. Dimension: [ncolumns] if transpose==
0; [nrows] if transpose==1.
int transpose;
This flag indicates whether row-wise (gene) or column-wise (microarray) clustering
is being performed. If transpose==0, rows (genes) are being clustered. Otherwise,
columns (microarrays) are being clustered.
int npass;
The number of times the EM algorithm should be run. If npass > 0, each run of the
EM algorithm uses a diferent (random) initial clustering. If npass == 0, then the
EM algorithm is run with an initial clustering specified by clusterid. For npass > 0,

174

items are reassigned to clusters in a randomized order. Since the cluster centroids
are recalculated only once after all items have been considered for reassignment, the
order of item reassignment is relevant only when the last item in a cluster is about to
be reassigned to a dierent cluster. To prevent clusters from becoming empty, such
reassignments are not allowed; which items are reassigned may therefore depend on
the order in which items are considered. For npass==0, the EM algorithm is run only
once, without randomizing the order in which items are reassigned to clusters, using
the initial clustering as specified by clusterid. The order in which items are reassigned
is identical to the order in which items are given in the data matrix.
char method;
Specifies whether the arithmetic mean (method==a) or the median (method==m)
should be used to calculate the cluster center.
char dist;
Specifies which distance function should be used. The character should correspond
to one of the distance functions that are available in the C Clustering Library. See
Chapter 2 [Distance functions], page 2.
int clusterid[];
This array will be used to store the cluster number to which each item was assigned
by the clustering algorithm. Space for clusterid should be allocated before calling
kcluster. If npass==0, then the contents of clusterid on input is used as the
initial assignment of items to clusters; on output, clusterid contains the optimal clustering
solution found by the EM algorithm. Dimension: [nrows] if transpose==0, or
[ncolumns] if transpose==1.
double** cdata;
This matrix stores the centroid information. Space for cdata should be allocated before
Chapter 5: Partitioning algorithms 18
calling kcluster. Dimension: [nclusters][ncolumns] if transpose==0 (row-wise
clustering), or [nrows][nclusters] if transpose==1 (column-wise clustering).
double* error;
The sum of distances of the items to their cluster center after k -means clustering, which
can be used as a criterion to compare clustering solutions produced in dierent calls to
kcluster.
int* ifound;
Returns how often the optimal clustering solution was found.

K-Medoids

Prototype
Arguments
int nclusters;
The number of clusters to be found.
int nelements;
The number of elements to be clustered.
double** distmatrix;
The distance matrix. The distance matrix is symmetric and has zeros on the diagonal.
To save space, the distance matrix is stored as a ragged array. Dimension: [nelements][]
as a ragged array. The number of columns in each row is equal to the row
number (starting from zero). Accordingly, the first row always has zero columns.
int npass;
The number of times the EM algorithm should be run. If npass > 0, each run of the
EM algorithm uses a dierent (random) initial clustering. If npass == 0, then the EM
algorithm is run with an initial clustering specified by clusterid. The order in which
items are reassigned is identical to the order in which items are given in the distance
matrix.
int clusterid[];
This array will be used to store the cluster number to which each item was assigned
by the clustering algorithm. Space for clusterid should be allocated before calling
kcluster. On input, if npass==0, then clusterid contains the initial clustering assignment
from which the clustering algorithm starts; all numbers in clusterid should be

175

between 0 and nelements-1 inclusive. If npass!=0, clusterid is ignored on input. On


output, clusterid contains the number of the cluster to which each item was assigned
in the optimal clustering solution. On output, the number of a cluster is defined as the
item number of the centroid of the cluster. Dimension: [nelements].
Chapter 5: Partitioning algorithms 19
double* error;
The sum of distances of the items to their cluster center after k -means clustering, which
can be used as a criterion to compare clustering solutions produced in dierent calls to
kmedoids.
int* ifound;
Returns how often the optimal clustering solution was found.

Podando a rvore de Clustering Hierrquico

Prototype
void cuttree (int nelements, int tree[][2], int nclusters, int clusterid[]);

Arguments
int nelements;
The number of elements whose clustering results are stored in the tree hierarchical
clustering result.
int tree[][2];
The hierarchical clustering solution. Each row in the matrix describes one linking
event. The two columns contain the numbers of the nodes that were joined. The
original elements are numbered {0, . . . , nelements-1}, nodes are numbered {-1, . . . ,
-(nelements-1)}. Note that the number of nodes is one less than the number of
elements. The cuttree routine performs some error checking of the structure of the
tree argument in order to avoid segmentation faults. However, errors in the structure
of tree that would not result in segmentation faults will in general not be detected.
Dimension: [nelements-1][2].
int nclusters;
The desired number of clusters. The number of clusters should be positive, and less
than or equal to nelements.
int clusterid[];
The cluster number to which each element is assigned. Memory space for clusterid
should be allocated before cuttree is called. Dimension: [nelements].

176

Apndice B
Regras de Remoo de Sufixos
Para um melhor entendimento das tabelas de regras apresentado um exemplo de regra
comentado :

inho,

3, , {caminho, carinho, cominho, golfinho, padrinho,

sobrinho, vizinho}

Quando inho um sufixo que denota um diminutivo, 3 o tamanho mnimo para o


stem, o que evita que palavras como linhosofram o stem e palavras entre colchetes so
as excees para esta regra, isto , elas terminam com o sufixo, mas no s diminutivos.
Todas as outras palavras que terminam em inho e que so mais longas que 6 caracteres
sofrero stemming. No existe sufixo de reposio para essa regra.

A seguir so mostradas as tabelas contendo as regras para o stemming em Portugus. A


lista de excees no apresentada aqui.

Regras de Reduo de Plural


Sufixo a Remover
"ns"
"es"
"es"
"ais"
"is"
"eis"
"is"
"is"
"les"
"res"
"s"

Tamanho Mnimo Stem


1
3
1
1
2
2
2
2
3
3
2

Substituio
"m"
"o"
"o"
"al"
"el"
"el"
"ol"
"il"
"l"
"r"

Exemplo
bons bom
bales balo
capites capito
normais normal
papis papel
amveis amvel
lenis lenol
barris barril
males mal
mares mar
casas casa

Substituio
"o
"o
"or"
"no
"inho"

Exemplo
chefona chefo
vil vilo
professora professor
americana americano
chilena chileno

Regras de Reduo de Feminino


Sufixo a Remover
"ona"

"ora"
"na"
"inha"

Tamanho Mnimo Stem


3
2
3
4
3

177

"esa"
"osa"
"aca"
"ica"
"ada"
"ida"
"da"
"ima"
"iva"
"eira"

3
3
3
3
2
3
3
3
3
3

"s"
"oso"
"aco"
"ico"
"ado"
"ido"
"ido"
"imo"
"ivo"
"eiro"

sozinho sozinha
inglesa ingls
famosa famoso
manaca manaco
prtica prtico
mantida mantido
cansada cansado
prima primo
passiva passivo
primeira primeiro

Substituio

Exemplo
felizmente feliz

Substituio

Exemplo
cansadssimo cansad
amabilssimo ama
fortssimo fort

Adverb Reduction Rule


Sufixo a Remover
"mente"

Tamanho Mnimo Stem


4

Augmentative/Dimunutive Reduction Rules


Sufixo a Remover
"dssimo"
"abilssimo"
"ssimo"
"simo"
"rrimo"
"zinho"
"quinho"
"uinho"
"adinho"
"inho"
"alho"
"ua"
"ao"
"ado"
"zio"
"arraz"
"arra"
"zo"
"o"

Tamanho Mnimo Stem


5
5
3
3
4
2
4
4
3
3
4
4
4
4
3
4
3
2
3

chiqurrimo chiqu
pezinho pe
maluquinho maluc
amiguinho amig
cansadinho cansad
carrinho carr
grandalho grand
dentua dent
ricao ric
casado cans
corpzio corp
pratarraz prat
bocarra boc
calorzo calor
menino menin

"c"

Noun Reduction Rules


Sufixo a
Remover
"encialista"
"alista"
"agem"
"iamento"
"amento"
"imento"
"alizado"
"atizado"

Tam
Min
4
5
3
4
3
3
4
4

Subs Exemplo
existencialista exist
minimalista minim
contagem cont
genrenciamento gerenc
monitoramento monit
nascimento nasc
comercializadocomerci
traumatizado traum

178

Sufixo a
Remover
"iza"
"a"
"i"
"rio"
"rio"
"s"
"eza"
"ez"

Tam
Min
5
3
3
3
6
4
3
4

Subs Exemplo
concretizaconcret
alegaaleg
aboliabol
anedotrioanedot
ministriominist
chins chin
beleza bel
rigidezrigid

"izado"
"ativo"
"tivo"
"ivo"
"ado"
"ido"
"ador"
"edor"
"idor"
"atria"
"or"
"abilidade
"icionista"
"cionista"
"ional"
"ncia"
"ncia"
"edouro"
"queiro"
"eiro"
"oso"
"aliza"
"ismo"

5
4
4
4
2
3
3
3
4
5
2
5
4
5
4
3
4
3
3
3
3
5
3

"c"

alfabetizadoalfabet
associativo associ
contraceptivocontracep
esportivoesport
abalado abal
impedido imped
ralador ral
entendedorentend
cumpridorcumpr
obrigatriaobrig
produtorprodut
comparabilidadecompar
abolicionistaabol
intervencionistainterven
profissionalprofiss
refernciarefer
repugnnciarepugn
abatedouroabat
fofoqueirofofoc
brasileirobrasil
gostosogost
comercializacomerci
consumismo consum

"esco"
"ante"
"stico"
"tico"
"ico"
"ividade"
"idade"
"oria"
"encial"
"ista"
"quice"
"ice"
"aco"
"ente"
"inal"
"ano"
"vel"
"vel"
"ura"
"ual"
"ial"
"al"

4
2
4
3
4
5
5
4
5
4
4
4
3
4
3
4
2
5
4
3
3
4

"c"

parentescoparent
ocupanteocup
bombsticobomb
problemticoproblem
polmicopolm
produtividadeprodut
profundidadeprofund
aposentadoriaaposentad
existencialexist
artistaart
maluquicemaluc
chatice chat
demonacodemon
decorrentedecorr
criminalcrim
americano americ
amvel am
combustvelcombust
coberturacobert
consensualconsens
mundialmund
experimentalexperiment

Verb Reduction Rules


Sufixo a
Remover
"aramo"
"ssemo"
"eramo"
"ssemo"
"iramo"
"ssemo"
"ramo"
"rei"
"aremo"
"ariam"
"arei"
"ssei"
"assem"
"vamo"
"ramo"
"eremo"
"eriam"
"erei"
"ssei"
"essem"
"ramo"
"iremo"
"iriam"
"irei"
"ssei"
"issem"
"ando"
"endo"
"indo"

Min
Size
2
2
2
2
3
3
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
3
3
2
3
3

Subs Exemplo
cantaramo cant
cantssemo cant
beberamo beb
bebssemo beb
partiramo part
partssemo part
cantramo cant
cantrei cant
cantaremo cant
cantariam cant
cantarei cant
cantssei cant
cantassem cant
cantvamo cant
bebramo beb
beberemo beb
beberiam beb
beberei beb
bebssei beb
bebessem beb
partiramo part
partiremo part
partiriam part
partirei part
partssei part
partissem part
cantando cant
bebendo beb
partindo part

179

Sufixo a
Remover
"eria"
"ermo"
"esse"
"este"
"amo"
"iram"
"ram"
"irde"
"irei"
"irem"
"iria"
"irmo"
"isse"
"iste"
"amo"
"ara"
"ar"
"are"
"ava"
"emo"
"era"
"er"
"ere"
"iam"
"ei"
"imo"
"ira"
"ir"
"ire"

Min
Size
3
3
3
3
3
3
3
2
3
3
3
3
3
4
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3

Subs Exemplo
beberia beb
bebermo beb
bebesse beb
bebeste beb
bebamo beb
partiram part
concluram conclu
partirde part
partrei part
partirem part
partiria part
partirmo part
partisse part
partiste part
cantamo cant
cantara cant
cantar cant
cantare cant
cantava cant
cantemo cant
bebera beb
beber beb
bebere beb
bebiam beb
bebei beb
partimo part
partira part
partir part
partire part

"ondo"
"aram"
"arde"
"arei"
"arem"
"aria"
"armo"
"asse"
"aste"
"avam"
"vei"
"eram"
"erde"
"erei"
"rei"
"erem"

3
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3

propondo prop
cantaram cant
cantarde cant
cantarei cant
cantarem cant
cantaria cant
cantarmo cant
cantasse cant
cantaste cant
cantavam cant
cantvei cant
beberam beb
beberde beb
beberei beb
bebrei beb
beberem beb

"omo"
"ai"
"am"
"ear"
"ar"
"uei"
"ei"
"em"
"er"
"eu"
"ia"
"ir"
"iu"
"ou",
"i"

3
2
2
4
2
3
3
2
2
3
3
3
3
3
3

compomo comp
cantai cant
cantam cant
barbearbarb
cantar cant
cheguei cheg
cantei cant
cantem cant
beber beb
bebeu beb
bebia beb
partir part
partiu part
chegou cheg
Bebi beb

Vowel Removal Rules


Sufixo a Remover
"a"
e
"o"

Tamanho Mnimo Stem


3
3
3

180

Substituio

Exemplo
menina menin
grande grand
menino menin

Вам также может понравиться