Академический Документы
Профессиональный Документы
Культура Документы
TESE
SUBMETIDA
AO
CORPO
DOCENTE
DA
COORDENAO
DOS
DO
RIO
DE
JANEIRO
COMO
PARTE
DOS
REQUISITOS
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.
de
Dados
Textuais
Utilizando
ii
A Gerson e Matheus
A meus pais
iii
AGRADECIMENTOS
Ao Laboratrio do Ncleo de Transferncia de Tecnologia NTT, pela infraestrutura, suporte administrativo e logstico.
iv
Outubro/2004
October/2004
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
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
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
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.
1.2.1
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
1.2.2
tambm,
uma
forma
elucidativa
de
visualizao
dos
resultados
Captulo 2
Fundamentao Terica
2.1.1
Recuperao de Informao
interesse em RI se restringe
Fontes de Texto
Usurio
Colees de Texto
Necessidade de
Informao
Representao e
organizao
Representao
Substitutos de Textos
Organizados
Query
Comparao/Matching
Documentos Recuperados
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
Nesse
10
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.
desconsiderando
comprimento
do
documento.
comprimento
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].
12
TF * IDF (t k , d j )
s =1
, d j ))
Equao 2.1
13
Cos( I , D) = I .D ( I D )
Equao 2.2
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.
16
2.1.2
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
18
2.1.3
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:
19
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.
20
2.2.1
Case Folding
2.2.2
Stop words
2.2.3
Stemming
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.
22
CONSIDERAR
CONSIDERADO
CONSIDERAO
CONSIDERAES
2.2.4
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.
Relacionamento de Equivalncia
Relacionamento de Hierarquia
Relacionamento de Associao
Relacionamento
Indicador
Equivalncia
Sinnimos
Hierarquia
Termo Amplo
Termo Restrito
Associao
Termo Relacionado
24
2.2.5
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
Embora,
esse
processo
de
converso
seja
praticamente
imediato,
2.3.1
Indexao
Thesaurus
Termo indexador
Termo preferido
Termo no-preferido
28
29
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:
31
32
o Abordagem
do
treinamento
automtico:
Uma
pessoa
que
tenha
bom
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
34
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
a seleo de termos pode ocorrer nas bases de alguma mtrica estatstica, como a
freqncia, informao mtua, coeficiente 2 , etc.
35
A extrao de termos pela utilizao de padres lingusticos pode ser realizada a partir
de padres morfo-sintticos pr-definidos, como por exemplo:
-
Ela
facilmente escalvel para conjuntos bem maiores de textos com uma complexidade
computacional aproximadamente linear em relao ao nmero de documentos.
e o
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 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
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.
2 (t , c) =
N ( AD CB) 2
( A + C ) ( B + D) ( A + B) (C + D)
Equao 2.8
38
avg (t ) = Pr ( ci ) ( t , ci )
2
Equao 2.9
i =1
2.3.4
Sumarizao
Outras palavras so
39
presena
de
palavras-chave
expresses
tais
como
importante,
2.3.5
Categorizao
40
Exemplos
de
tais
algoritmos
incluem
feedback
de
relevncia,
pode
retornar
nenhuma
categoria
ou
algumas
categorias
com
CPC
usado
quando
novas
categorias
podem
ser
adicionadas
Essa lista
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.
43
44
2.3.6
45
(CRD) para
46
P(c y d x ) = P (c y )P d x c y P(d x )
Equao 2.10
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.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
de
distncias
convencionais
conhecidas,
existem
as
medidas
de
49
entre
objetos
(matriz
de
distncias
ou
matriz
de
50
algoritmo
pode
ser
adequado
quando
se
quer
inspecionar
descontinuidades claras.
52
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
Equao 2.12
Entropias =
n j * Entropia j
j =1
Equao 2.13
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.
outra
partio.
Clusters
so
usualmente
mutuamente
exclusivos
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
e conhecimento de
2.4.1
2.4.1.1 Preciso
Avalia o quanto o modelo acerta:
2.4.1.2 Recall
Avalia o quanto o modelo contabiliza:
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.
57
2.4.3
Conhecimento de Especialistas
indicando
caminhos,
complementando
informaes.
partir
de
um
58
2.5.1
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
categorizador
trabalha
nos
modos
supervisionado
no-
Ele cria uma rvore de conceitos pertinente para uma dada coleo de
60
com essa palavra. Essa pesagem valoriza palavras que no so muito freqentes
e remove palavras muito pouco freqentes para evitar rudo.
-
2.5.3
Online Miner
A nica aplicao requerida para o usurio final interagir com o Online Miner
um navegador de web.
2.5.4
TextSmart
61
2.5.5
Smart Discovery
62
2.5.6
VizServer
2.5.7
63
2.5.8
ThemeScape
2.5.9
Data Junction
64
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
65
torna
freqncia
das
palavras
descrevendo
cada
documento
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.
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.
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
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
Baseada em Conceito
Megaputer
Recuperao de
Baseada em Conceito
Info, sumarizao
rede semntica
Indexao
Extractor
TextAnalyst
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.
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
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.
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
72
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
B a i l a r i n a
<---------------->
<-------->
R1
R2
B a i l e
<->
R1
>< R2
A m i g v e l
<------------>
<--->
R1
R2
I n d e p e n d e n t e
<------------------------->
<---------------->
R1
R2
74
ser
tratadas
como
uma
vogal
seguida
de
uma
consoante.
ureo
|....|
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.
indo
ara~o
era~o
ira~o
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
76
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 ,
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
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
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:
-
78
listadas
como
79
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.
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.
3.3.2.2
devido
sua
morfologia
mais
complexa.
Abaixo
discute-se algumas
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.
82
83
84
Entretanto,
eles
so
difceis
de
estimar
em
alguns
casos,
3.4.1
85
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].
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.
(d 1 d 2 )
d1 d 2
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
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.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
r =
n i=1 x y
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.
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.
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
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.
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
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.
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.
1 n 1
d =
n i =1 xi yi
comparada
distncia
Euclidiana.
Note
que
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
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.
94
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)
95
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.
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.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
98
3.5.4
Clustering Hierrquico
99
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)
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
Rmax = N x2 + N y2 ,
onde (N x, Ny), so as dimenses do retngulo definindo a topologia.
102
pr-processamento
visualizao
103
3.6.1
Mdulos do Sistema
Pr-processamento
Clustering
Visualizao
Interface
.
O primeiro mdulo o de pr-processamento e envolve os passos:
Pr-Processamento:
-
stoplists
stopwords
104
sinnimos
stemming:
-
RLSP
Porter
Matriz de Clustering:
-
lista de termos
peso:
-
TF
IDF
TFIDF
Clustering:
-
Hierrquico
K-Means
SOM
Visualizao
-
Interface
-
106
3.6.2
Diagrama do Sistema
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
108
3.6.3
109
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
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
tanto
no
MS-Windows
como
em
3.6.4
Fluxo de Trabalho
112
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)
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
Tal especialista poder verificar quais destes termos realmente podem ter
115
116
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.1
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
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
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
123
4.2.2
Direct
4.2.3
Graph
4.2.4
Agglo
124
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:
Stemmer Porter:
Stemmer Portuguese: Somados aos demais passos do pr-processamento, utilizase o stemmer Portuguese no lugar do stemmer de Porter.
125
4.3.1
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
126
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.
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
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.
128
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
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
130
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.
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.
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.
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
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.1
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%,
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
4.4.2
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
4.4.3
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
4.4.4
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
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
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
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
atributos correlacionados/dependentes
exploso combinatria
140
141
142
4.5.1
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
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
Graph Cluto
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
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
146
4.5.2
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.
147
Figura 4.5 (a)K-means sem mudanas nos dados (b) com mudanas
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
Figura 4.7 (a) Mtodo K-means simples (b) Mtodo com retirada de termos
Clustering Hierrquico
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
152
153
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:
154
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.
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
mais aprofundado
158
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.
159
Referncias Bibliogrficas
160
6 Referncias Bibliogrficas
[1]
Sullivan, D., Document Warehousing and Text mining, 1a edition, John Wiley &
Sons, New York, 2001.
[2]
[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]
[6]
[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]
[9]
[10]
[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]
[13]
161
[14]
[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]
[17]
[18]
[19]
Han J., Kamber, M., Data Mining: Concepts and Techniques, Morgan
Kaufmann, 2001.
[20]
[21]
[22]
[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]
[26]
[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]
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]
[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]
[34]
[35]
[36]
[37]
[38]
[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]
[41]
163
[42]
[43]
[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]
[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]
[49]
[50]
[51]
[52]
[53]
164
[54]
[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]
[60]
[61]
[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]
[65]
165
[66]
[67]
[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]
[73]
[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]
[76]
[77]
Jain, A.K. and Dubes, R.C., Algorithms for Clustering Data, Prentice Hall,
1988.
[78]
[79]
[80]
166
[81]
[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]
[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]
[86]
[87]
[88]
[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]
[92]
http://snowball.tartarus.org/portuguese/stemmer.html,
2004.
[93]
[94]
[95]
167
retrieval,
acessado
em
Information
agosto
de
[96]
do
Portugus
[97]
[98]
[99]
[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
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.
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].
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.
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
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].
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
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,
sobrinho, vizinho}
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
"ora"
"na"
"inha"
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
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"
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
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
180
Substituio
Exemplo
menina menin
grande grand
menino menin