instituto de matemática e estatística da...

37
Instituto de Matemática e Estatística da Universidade de São Paulo MAC0499 - Trabalho de Formatura Supervisionado Em Busca de Más Notícias Willian Gigliotti Orientador: Prof. Dr. Alair Pereira do Lago São Paulo, 03 dezembro de 2012

Upload: others

Post on 25-Dec-2019

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

Instituto de Matemática e Estatísticada

Universidade de São Paulo

MAC0499 - Trabalho de Formatura Supervisionado

Em Busca de Más Notícias

Willian GigliottiOrientador: Prof. Dr. Alair Pereira do Lago

São Paulo, 03 dezembro de 2012

Page 2: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

ii

Page 3: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

Sumário

Lista de Tabelas v

1 Introdução 1

1.1 Lavagem de Dinheiro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Clipping de notícias e combate à lavagem de dinheiro . . . . . . . . . . . . . 1

1.3 O Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.4 Estrutura da Monografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Conceitos 3

2.1 Frequência de termos em um documento . . . . . . . . . . . . . . . . . . . . 3

2.1.1 Bag of Words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.1.2 Stop-words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.1.3 Lematização e Stemming . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2 Modelo Vetorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.3 Distância e similaridade entre documentos . . . . . . . . . . . . . . . . . . . 6

2.4 Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.5 Classificação de documentos baseada no modelo vetorial . . . . . . . . . . . 9

2.5.1 Rocchio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.5.2 kNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

iii

Page 4: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

iv SUMÁRIO

3 Desenvolvimento e Resultados 13

3.1 Funcionalidades e Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2 Processamento de texto e contagem dos termos . . . . . . . . . . . . . . . . 14

3.3 Agrupamento de notícias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.3.1 Testes realizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.4 Classificação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.4.1 Conjunto de Treino . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.4.2 kNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.4.3 Testes de classificação . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.4.4 Classificação apenas com notícias relevantes no conjunto de treino . . 23

3.5 Visão geral das implementações . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.6 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Referências Bibliográficas 27

Parte Subjetiva 29

.1 Desafios e Frustrações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

.2 Disciplinas mais relevantes para o trabalho . . . . . . . . . . . . . . . . . . . 29

.3 Novos estudos e futuros passos . . . . . . . . . . . . . . . . . . . . . . . . . . 30

.4 Agradecimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Page 5: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

Lista de Tabelas

2.1 Exemplo de cálculo de idf . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2 Exemplo de vetores de documentos e centroides de classes . . . . . . . . . . 10

3.1 Distribuição de similaridade entre elementos do mesmo cluster. . . . . . . . . 18

3.2 Distribuição de similaridade entre o centroide do Cluster 1 e os documentosda coleção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.3 Distribuição de similaridade entre o centroide do Cluster 2 e os documentosda coleção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.4 Distribuição de similaridade entre o centroide do Cluster 3 e os documentosda coleção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.5 Resultado da classificação utilizando kNN . . . . . . . . . . . . . . . . . . . 21

3.6 Resultado da classificação utilizando ROCCHIO . . . . . . . . . . . . . . . . 22

3.7 Matriz de confusão acumulada para kNN . . . . . . . . . . . . . . . . . . . . 22

3.8 Matriz de confusão acumulada para ROCCHIO . . . . . . . . . . . . . . . . 22

3.9 Cobertura, precisão e F1 para kNN e Rocchio . . . . . . . . . . . . . . . . . 23

3.10 Matriz de confusão acumulada para classificação baseada em confiança comm = 0.14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.11 Cobertura, precisão e F1 para kNN e Rocchio . . . . . . . . . . . . . . . . . 24

3.12 Matriz de confusão acumulada para classificação baseada em confiança comm = 0.14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.13 Cobertura, precisão e F1 para kNN e Rocchio . . . . . . . . . . . . . . . . . 24

v

Page 6: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

vi LISTA DE TABELAS

Page 7: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

Capítulo 1

Introdução

1.1 Lavagem de Dinheiro

O crime de lavagem de dinheiro, segundo o Conselho de Controle de Atividades Finan-ceiras, COAF , “caracteriza-se por um conjunto de operações comerciais ou financeiras quebuscam a incorporação na economia, de modo transitório ou permanente, de recursos, bense valores de origem ilícita”.1

O COAF é um órgão administrativo brasileiro criado durante as reformas econômicasdo governo Fernando Henrique Cardoso, em 1998. Seu objetivo é disciplinar, aplicar penasadministrativas, receber, examinar e identificar ocorrências suspeitas de atividades ilícitasrelacionadas à lavagem de dinheiro.

Em resumo, a lavagem de dinheiro não visa ao lucro, mas sim, ocultar a origem ilegal dodinheiro. Esse processo pode ser dividido em três etapas:

• Colocação: É a etapa onde o dinheiro é injetado no sistema financeiro, através dedepósitos ou compra de bens negociáveis.

• Ocultação: Com o objetivo de dificultar o rastreamento do dinheiro, nesta fase sãofeitas muitas movimentações com o dinheiro entre contas anônimas, de preferência empaíses onde existam leis de sigilo bancário.

• Integração: Nesta etapa, o dinheiro volta formalmente para seus donos, através deativos ou bens materiais.

1.2 Clipping de notícias e combate à lavagem de di-nheiro

Clipping, resumidamente, é a seleção de notícias ou outras informações de interesse, dis-poníveis em meios de comunicação. Esse trabalho pode ser feito, por exemplo, pela assessoriade imprensa de uma empresa com o objetivo de acompanhar sua reputação na mídia.

1https://www.coaf.fazenda.gov.br/conteudo/sobre-lavagem-de-dinheiro-1

1

Page 8: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

2 INTRODUÇÃO 1.4

De acordo com as recomendações do Comitê de Basiléia - uma organização de autoridadesbancárias, visando fortaceler a solidez do sistema financeiro - as instituições financeirasdevem adotar políticas para conhecer as atividades de seus clientes, de modo a protegersua reputação e reduzir o risco de seus produtos e serviços serem utilizados como meio delegitimação de recursos provenientes de atividades ilícitas, ocultação de bens, bem como ofinanciamento do terrorismo.

No final de 2009, foi desenvolvido o Monitoração de Mídias, uma ferramenta elaboradapara ajudar no combate à lavagem de dinheiro em instituições financeiras.

O Monitoração de Mídias possui um banco de dados com notícias sobre pessoas envolvidasem atividades criminosas. Além do clipping, é feito também um cadastro dessas pessoascom informações como apelidos, números de documentos, crimes em que estão envolvidase outras pessoas relacionadas. Essas informações são utilizadas por instituições financeiraspara conhecer melhor seus clientes.

O cadastro e o clipping das notícias são realizados por uma equipe que gerencia o conteúdodo Monitoração de Mídias. As notícias utilizadas pela equipe são fornecidas por um empresaterceirizada, e diariamente chegam cerca de sete mil notícias. Destas, aproximadamente cemnotícias são escolhidas e incorporadas à base de dados do Monitoração de Mídias. As demaissão descartadas por serem repetidas ou tratarem de assuntos não-relevantes, como novelas,futebol, festas etc.

1.3 O Projeto

A proposta deste projeto é desenvolver um sistema que seja capaz de processar as notícias,agrupando as repetidas em tópicos (clusters) e separando as relevantes (classificação).

As funcionalidades do sistema foram divididas em dois módulos:

O primeiro módulo é automatizado (back-end). Deve periodicamente consultar novasnotícias em uma base de dados externa, então processar seus vetores, uma representaçãodos documentos no espaço vetorial. Em seguida, deve aplicar um algoritmo de clusteringpara identificar as notícias repetidas, agrupando-as em tópicos. Cada novo tópico deve entãoreceber uma classificação.

O segundo módulo é a interface com o usuário (front-end), onde é possível consultaras notícias selecionadas pelo back-end, escolher as notícias que entram no Monitoração deMídias e descartar as notícias não-relevantes.

1.4 Estrutura da Monografia

Neste capítulo é mostrada a necessidade de separar documentos relevantes em um grandeconjunto de documentos. No segundo capítulo são apresentados conceitos de recuperação deinformação, classificação e agrupamento de documentos. No terceiro capítulo é apresentadaa solução para o problema de seleção de notícias e também detalhes da implementação. E,por fim, no quarto capítulo serão apresentados os resultados obtidos.

Page 9: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

Capítulo 2

Conceitos

Segundo o livro Introduction to Information Retrieval, Manning et al. (2008), a recu-peração de informação é definida como “a busca por materiais (geralmente documentos) denatureza não-estruturada (geralmente texto) que satisfaçam alguma necessidade de informa-ção em grandes coleções (geralmente armazenadas em computadores)”.

É um processo que começa com o armazenamento do material, geralmente textos e outrosdocumentos, e estende-se até o seu acesso. Hoje, a recuperação de informação pode serutilizada por milhares de pessoas, através de sites de busca online, por exemplo.

Um dos objetivos deste trabalho é buscar a partir de uma nova notícia, que saiu namídia, por outras notícias suficientemente similares dentro da nossa coleção de documentos.O objetivo dessa busca é identificar notícias repetidas para organizá-las em grupos.

2.1 Frequência de termos em um documento

O primeiro passo para o processamento de um novo documento é a contagem de cadaum dos seus termos. Para isso, é necessário decompor o texto do documento em palavras, outokens, que o compõem, descartando determinados caracteres, como os de pontuação. Esseprocesso é chamado de tokenização. Temos abaixo um exemplo desse processo:

Frase de entrada: “É pau, é pedra, é o fim do caminho”

Resultado da tokenização: [’É’, ’pau’, ’é’, ’pedra’, ’é’, ’o’, ’fim’, ’do’, ’caminho’]

Frequência dos termos: { ’é’: 3, ’pau’: 1, ’pedra’: 1, ’o’: 1, ’fim’: 1, ’do’: 1, ’caminho’:1}

2.1.1 Bag of Words

Quando olhamos para a representação do documento com sua contagem de termos, afrase “O São Paulo ganhou do Corinthians” é idêntica à frase “O Corinthians ganhou doSão Paulo”. Esse tipo de representação é conhecido como bag of words, pois levamos em

3

Page 10: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

4 CONCEITOS 2.1

consideração apenas a frequência dos termos nos documentos, desconsiderando a ordem emque os termos ocorrem.

Apesar das duas frases acima não serem idênticas em seu conteúdo, espera-se que doisdocumentos com bag of words similares tenham conteúdos semelhantes também.

2.1.2 Stop-words

Algumas palavras são tão frequentes em documentos da língua portuguesa que não con-tribuem em nada, ou muito pouco, para a comparação entre documentos. Essas palavrassão chamadas stop-words e geralmente são removidas da lista de termos dos documentos. Adeterminação dessa lista de palavras depende de cada aplicação, mas em geral a estratégiapara determiná-las consiste em calcular a frequência de termos em uma grande coleção eselecionar os mais frequentes.

As stop-words geralmente são os artigos, preposições, pronomes, etc. Por exemplo, nafrase “É pau, é pedra, é o fim do caminho”, é possivel identificar algumas stop-words, como’é’, ’o’ e ’do’, e removendo esses termos da lista teremos um conjunto mais enxuto.

2.1.3 Lematização e Stemming

Além de desconsiderar as palavras muito frequentes em textos, é desejado também quepalavras com significados parecidos ou palavras que, por motivos gramaticais, são escritasem diferentes formas sejam consideradas semelhantes durante o processo de comparação dedocumentos.

Para isso, os termos parecidos são reduzidos a uma forma básica comum, por exemplo:

• Pedra: Pedra, pedregoso, pedregulho

• Correr: Correu, corremos, corrida

As duas principais maneiras de fazer isso são através de lematização ou stemming.

A lematização geralmente faz uso de vocabulário e análise morfológica das palavras,removendo apenas seus sufixos flexionais e retornando sua base, ou a forma em que a palavrapode ser encontrada no dicionário.

Stemming é um processo heurístico que apenas remove o final das palavras para chegara uma forma comum. Orengo et al. (2007) introduziu o algoritmo “Removedor de Sufixosda Língua Portuguesa” (RSLP).

O RSLP é composto por 8 passos, cada passo consistindo de uma redução da palavrasegundo algum critério, levando em consideração algumas exceções da língua portuguesa:

• Plural: Passa as palavras terminadas em ’s’ para o singular; é observada uma lista deexceções para as palavras terminadas em ’s’ e que não estão no plural, por exemplo:lápis, tênis.

Page 11: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

2.2 MODELO VETORIAL 5

• Gênero: Passa as palavras terminadas em ’a’ para o gênero masculino.

• Advérbio: É o menor dos passos, pois existe apenas um sufixo para os advérbios(’mente’). Também é observada uma lista de exceções.

• Aumentativo/Diminutivo: Procura pelos sufixos mais comuns de aumentativo /diminutivo para fazer a redução.

• Substantivo: Procura por sufixos que formam substantivos.

• Verbo: Responsável por reduzir os verbos a partir das suas diferentes conjugações.

• Vogal: É removida a última vogal da palavra.

• Acentos: Os acentos são removidos das palavras.

Os passos ’verbo’ e ’vogal’ serão apenas executados se nenhum sufixo for removido nopasso ’substantivo’.

2.2 Modelo Vetorial

O modelo vetorial consiste numa representação algébrica dos documentos em um espaçoM-dimensional. A cada um dos índices dos termos no espaço vetorial é atribuído um pesoque será usado para o cálculo da similaridade ou da distância desses documentos no espaçovetorial.

Vimos nos parágrafos anteriores que é possível determinar o peso de um termo numdocumento calculando sua frequência.

tft,d: frequência do termo t no documento d.

Vimos também que a frequência de um termo no conjunto dos documentos pode influ-enciar na comparação entre eles. Não a ponto de querermos removê-los, como foi o casodas stop-words, mas na comparação entre dois documentos espera-se que os termos menoscomuns sejam os mais relevantes para a comparação. O cálculo da frequência de documentosde um termo é:

dft: o número de documentos da coleção que contém t.

E o cálculo da frequência invertida nos documentos de um termo:

idft = log

(N

dft

)Onde N = |D|, o tamanho da coleção.

Page 12: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

6 CONCEITOS 2.3

Portanto, quanto mais raro um termo for, maior será o seu idf , enquanto termos muitocomuns terão idfs baixos.

A tabela 2.1 possui exemplos de cálculo de idf de alguns termos em uma coleção de 50documentos, utilizando log na base 10.

Termo df idfcarro 16 2.0208cachorro 4 0.9116arma 11 1.5207morumbi 6 1.0859

Tabela 2.1: Exemplo de cálculo de idf

Juntando o tft,d com o idft, obtemos o valor de tf -idf do termo t no documento d:

tfi-dft,d = tft,d.idft

= tft,d.log

(N

dft

)

Observe que o peso tf -idf será maior para os termos que ocorrem muitas vezes no docu-mento, porém em quantidade pequena de outros documentos, e será menor se ocorrer poucasvezes no documento ou em quantidade grande de outros documentos.

Não é muito intuitivo que, se um termo ocorre 10 vezes num documento, aumente em10 vezes o peso desse termo no documento. Existem algumas variações do cálculo do tf -idf ,onde o peso do tft escala sub-linearmente.

wft,d =

{1 + log(tft,d), se tft,d > 0

0, caso contrário

Trocando o tft,d na fórmula acima, cálculo do tf -idf , por wft,d, obtemos:

wf -idft,d = wft,d.idft

wf -idft,d =

{(1 + log(tft,d)) .log

(Ndft

), se tft,d > 0

0, caso contrário

2.3 Distância e similaridade entre documentos

Denotaremos por Vd o vetor que representa o documento d no espaço vetorial M-dimensional,onde temos um eixo para cada termo no dicionário, com valores baseados nos pesos wf -idft,d.

Page 13: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

2.4 DISTÂNCIA E SIMILARIDADE ENTRE DOCUMENTOS 7

Então podemos olhar o conjunto de documentos na coleção como um conjunto de vetoresno espaço vetorial e podemos fazer uso dessa representação para calcular a distância e assimilaridades entre os documentos.

Com a representação, o cálculo da similaridade de dois documentos, d1 e d2, pode serfeito calculando o valor do cosseno do ângulo formado entre os seus dois vetores:

sim(d1, d2) =Vd1 .Vd2|Vd1| . |Vd2|

Onde Vd1 .Vd2 é o produto escalar dos vetores Vd1 e Vd2 , que podem ser calculados daseguinte maneira:

Vd1 .Vd2 =M∑i=1

Vd1 [i].Vd2 [i]

|Vd| é a norma euclidiana do vetor Vd:

|Vd| =

√√√√ M∑i=1

V 2d

e M é a dimensão do espaço vetorial.

Se utilizarmos apenas vetores com normas iguais a 1, sendo v1 e v2 os vetores normalizadosde d1 e d2, podemos simplificar a fórmula para o cálculo da similaridade dos cossenos.

Sejam

v1 =Vd1|Vd1|

e

v2 =Vd2|Vd2|

temos

|v1| = |v2| = 1

temos então a similaridade dos documentos calculada a partir de v1 e v2:

sim(d1, d2) = v1.v2

Page 14: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

8 CONCEITOS 2.4

2.4 Clustering

É conhecida como clustering a tarefa de agrupar elementos de um conjunto em sub-conjuntos, chamados clusters. Dessa maneira, elementos pertencentes a um mesmo clusterpossuem algumas características em comum. Geralmente, o processo de clustering é baseadona aproximação ou similaridade dos elementos.

Existe uma grande quantidade de algoritmos de clustering, mas neste trabalho focaremosem um conjunto de algoritmos conhecidos como HAC (Hierarchical Agglomerative Cluste-ring), apresentados por Chakrabarti (2003).

O HAC consiste em criar um cluster para cada elemento do conjunto e, a cada passo doalgoritmo, ele une dois desses clusters segundo algum critério de similaridade.

Algoritmo 1 - HAC(D) - ClusteringCrie um grupo {d} para cada documento d em DSeja G o conjunto dos clusterswhile |G| > 1 do

Escolha c1εG e c2εG, segundo algum critério de similaridade sim(c1, c2)Remova c1 e c2 de Gc⇐ c1 ∪ c2Insira c em G

end while

Os algoritmos HAC diferenciam-se pela maneira com que dois clusters são unidos e pelamaneira como a similaridade entre eles é calculada. Algumas formas comuns de fazer essecálculo entre os clusters c1 e c2 são:

• Auto-similaridade dos clusters: É a similaridade média entre elementos do mesmocluster. Seja c = c1 ∪ c2, então:

sim(c) =1(|c|2

) · ∑di,djεc

sim(di, dj)

=2

|c| (|c| − 1)·∑di,djεc

sim(di, dj)

• Similaridade mínima entre os clusters: É o valor da menor similaridade entredocumentos dos clusters c1 e c2.

sim(c1, c2) = mind1εc1,d2εc2sim(d1, d2)

• Similaridade máxima entre os clusters: É o valor da maior similaridade entredocumentos dos clusters c1 e c2.

sim(c1, c2) = mind1εc1,d2εc2sim(d1, d2)

Page 15: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

2.5 CLASSIFICAÇÃO DE DOCUMENTOS BASEADA NO MODELO VETORIAL 9

• Similaridade pelo centroide: É calculada através dos centroides de cada cluster. Ocentroide de cada cluster pode ser obtido por:

centc =∑dεc

d

|c|

então é possível calcular a similaridade de c1 e c2 por:

sim(c1, c2) = sim(centc1 , centc2)

2.5 Classificação de documentos baseada no modelo ve-torial

O objetivo da classificação de documentos é decidir a que classe determinado documentopertence, dentro de um conjunto de classes pré-definidas. Dados um documento dεD, onde Dé um conjunto de documentos, um conjunto fixo de classes C = { c1, c2, ... , cn } e um conjuntode treino T de documentos classificados 〈d, c〉, onde 〈d, c〉 pertence a D x C. Utilizandoalgum algoritmo de aprendizado, gostaríamos de treinar uma função de classificação F (d)que mapeie os documentos nas classes em C.

F : D → C

Esse tipo de aprendizado é conhecido como aprendizagem supervisionada, pois é necessá-ria a supervisão de um humano, geralmente um especialista no assunto, para o treinamentodo algoritmo, durante a construção do conjunto de treino.

Os algoritmos de classificação geralmente são divididos em duas etapas. A primeira etapaé o treinamento do algoritmo. Nela, o conjunto T de documentos classificados 〈d, c〉 é uti-lizado para treinar o algoritmo. A segunda etapa é onde os novos documentos, aqueles quenão fizeram parte do conjunto de testes, serão testados para determinar sua classe.

2.5.1 Rocchio

Rocchio é um algoritmo de classificação de documentos baseado no modelo vetorial,visto anteriormente. Esse algoritmo consiste em dividir o espaço vetorial em regiões a partirde pontos centrais, chamados centroides, determinados pelo ponto médio dos vetores doselementos do conjunto de treino de cada classe.

mi = centroide(Ti) =1

|Ti|.∑dεTi

vd

Onde Ti é o conjunto de documentos da classe ci. E vd é o vetor normalizado do docu-mento d, visto anteriormente. Para determinar a qual classe pertence um novo documento,é necessário procurar pelo centroide mais próximo a ele, ou de maior similaridade.

Page 16: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

10 CONCEITOS 2.5

Algoritmo 2 TreinamentoRocchio(C, T)for cjεC do

Tj ⇐ {d : 〈d, cj〉 εT}mj ⇐ centroide(Tj)

end forreturn {m1,m2, ...,mn}

Para testar:

Algoritmo 3 TestarRocchio( vd, {m1,m2, ...,mn}, T )return mj, onde |mj − vd| ≤ |mi − vd| ∀miε {m1,m2, ...,mn}

ou

Algoritmo 4 TestarRocchio( vd, {m1,m2, ...,mn}, T )return mj, onde sim(mj, vd) ≥ sim(mi, vd) ∀miε {m1,m2, ...,mn}

Segue um exemplo com vetores de documentos:

vetores futebol copa polícia Neymarv1 1 0 0 0v2 0.71 0.71 0 0v3 0 0.71 0.71 0v4 0 0.71 0 0.71m1 0.855 0.355 0 0m2 0 0.71 0.71 0

Tabela 2.2: Exemplo de vetores de documentos e centroides de classes

Na tabela acima, temos os vetores para os documentos d1, d2, d3, d4 calculados usandoa fórmula tf-idf, vista anteriormente. E os dois centroides das classes c1, formado pelosdocumentos {d1, d2}, e c2, formado pelo documento d3, e d4 é o documento que queremostestar. As distâncias entre seu vetor e os centroides das classes são:

|v4 −m1| =√0.8552 + 0.3552 + 0.712 = 1.166

|v4 −m2| =√0.712 + 0.712 = 1.004

Desse modo, o algoritmo Rocchio classificaria o documento d4 como c2.

2.5.2 kNN

Dado um documento d, para determinar sua classificação, o kNN (k nearest neighbor)procura dentro do conjunto de treino T pelos k documentos mais próximos, ou de maior simi-

Page 17: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

2.5 CLASSIFICAÇÃO DE DOCUMENTOS BASEADA NO MODELO VETORIAL 11

laridade, ao elemento d. Então, a partir desses documentos, decide a classificação apropriadapara d.

Para k = 1, a classificação do documento d é dada pela classificação do documento maispróximo a ele dentro do conjunto de treino.

Diferentemente do Rocchio, durante a etapa de treino do kNN não é feito nada. Porém,para atribuir a classificação a um novo documento é necessário calcular a similaridade dessedocumento com todos os documentos do conjunto de treino.

O kNN com k = 1 não é muito robusto, pois permite que a classificação de um novodocumento dependa apenas da classificação de um único documento do conjunto de treino,que pode ter sido classificado de maneira errada ou ser um elemento atípico. Por isso, o maiscomum é a utilização do kNN com valores para k > 1.

Quando são utilizados valores maiores que 1 para k, o algoritmo procura os k elementosmais próximos ao documento a ser testado, ou os mais similares, e atribui a classificaçãodesse documento como a classificação mais comum entre os documentos encontrados. Nãopermitindo, dessa maneira, que a classificação dos novos documentos dependam apenas deum único elemento do conjunto de treino.

Uma outra estratégia utilizada no kNN com valores maiores do que 1 para k é dar pesospara os k vizinhos mais próximos, onde esse peso é calculado pela similaridade dos cossenos,então é atribuída ao documento testado a classificação que possui maior soma dos pesosentre os vizinhos mais próximos.

Page 18: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

12 CONCEITOS 2.5

Page 19: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

Capítulo 3

Desenvolvimento e Resultados

Técnicas de processamento de texto e classificação de documentos permitiram a criaçãode um sistema com aprendizado supervisionado capaz de agrupar e pré-selecionar documen-tos relevantes para o trabalho de clipping, resultando em ganhos de tempo e de qualidadeda seleção. Além do ganho de tempo gerado pela pré-seleção das notícias relevantes, o agru-pamento de notícias muito similares permite a escolha do melhor documento de acordo comos objetivos do clipping.

No Monitoração de Mídias, dentro de um grupo de notícias que abordam o mesmo crime,são consideradas mais adequadas as notícias com maior quantidade de informações que faci-litem a identificação dos criminosos, por exemplo: nome completo, números de documentos,localização e apelidos.

3.1 Funcionalidades e Arquitetura

As principais funcionalidades do sistema de classificação e agrupamento para o clippingdo Monitoração de Mídias são:

1. Periodicamente buscar por novas notícias numa base de dados externa, fornecida porum fornecedor terceirizado.

2. Processar os textos de cada nova notícia para determinar sua representação no espaçovetorial.

3. Agrupar as notícias em tópicos usando um algoritmo de clustering, para identificaçãodas notícias repetidas.

4. Identificar as notícias relevantes utilizando um algoritmo de classificação.

5. Permitir que o usuário selecione as notícias de interesse e apague as não-relevantes.

6. Reservar as notícias marcadas como relevantes e não-relevantes, de acordo com as açõesdo usuário, integrando-as ao conjunto de treino do classificador.

13

Page 20: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

14 DESENVOLVIMENTO E RESULTADOS 3.2

As funcionalidades descritas acima podem ser divididas em dois módulos, que conseguemtrabalhar quase independentemente. A primeira parte, o back-end, contém toda a partede processamento de novas notícias, identificação de notícias repetidas e classificação. Asegunda parte, o front-end, é a interface com o usuário, onde é possível consultar as notíciasprocessadas pelo back-end e efetivamente separar as notícias relevantes das não-relevantes.

Essa arquitetura separa totalmente o processamento das notícias e a interface com ousuário - a comunicação é feita através de uma base de dados onde o back-end guarda osresultados do processamento para serem usados pelo front-end, que por sua vez guarda asnotícias selecionadas pelo usuário como relevantes ou não-relevantes para serem usadas peloback-end como conjunto de treino. Outras funcionalidades de cada módulo podem ser vistasna Figura 3.1.

Figura 3.1: Arquitetura: back-end e front-end

Em seguida descreveremos em detalhe cada uma das funcionalidades do back-end, que éo foco deste trabalho.

3.2 Processamento de texto e contagem dos termos

Antes de serem agrupadas e classificadas, as notícias precisam ser processadas. O pro-cessamento das notícias consiste das seguintes etapas:

Tokenização: O texto é decomposto em cada termo que o compõe, através de delimi-tadores que geralmente são espaços em branco, tabulação, quebra de linha e pontuação.Para que a dimensão do nosso espaço vetorial seja menor e seus vetores menos esparsos,serão considerados tokens neste projeto as sequências de caracteres contendo apenas letrasdo alfabeto.

Page 21: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

3.3 AGRUPAMENTO DE NOTÍCIAS 15

Remoção de stop-words: Alguns termos são tão frequentes em textos da língua por-tuguesa que pouco contribuem para a diferenciação entre documentos em sua representaçãovetorial. Esses termos são chamados stop-words e são removidos dos termos dos documen-tos. As stop-words geralmente são artigos, preposições, pronomes etc. Foi utilizada por estetrabalho a lista de stop-words fornecida pelo projeto Snowball.1

Lematização: Com o objetivo de contabilizar os termos com o mesmo radical comose fossem os mesmos, é aplicado um stemmer nos termos do documento, removendo seussufixos, prefixos etc. Mantendo apenas o radical de cada termo. O stemmer utilizado poreste trabalho é o do projeto Snowball.2

Após o tratamento do documento, é contada a ocorrência de cada termo e gerado o vetorde contagem de termos, trocando o termo pelo respectivo index no espaço vetorial.

O index de cada termo no espaço vetorial é guardado em um dicionário de termos juntocom outras informações importantes, como a quantidade total de documentos e a quantidadede documentos diferentes que contêm cada termo, informações necessárias para gerar arepresentação por tf-idf. Porém, como a coleção está sempre mudando devido à constanteentrada de novos documentos, os vetores tf-idf de cada documento só serão calculados quandonecessário, isto é, durante o agrupamento e classificação dos documentos.

3.3 Agrupamento de notícias

Com o objetivo de identificar as notícias repetidas, utilizamos um algoritmo de clusteringpara agrupar as notícias de maior semelhança.

O algoritmo utilizado foi o HAC, descrito anteriormente. Segundo o HAC, consideramoscada documento inicialmente como um cluster distinto e a cada iteração do algoritmo unimosos dois clusters de maior similaridade em um único cluster.

Algoritmo 5 - HAC(D) - ClusteringCrie um grupo {d} para cada documento d em DSeja G o conjunto dos clusterswhile |G| > 1 do

Escolha c1 ∈ G e c2 ∈ G, segundo algum critério de similaridade sim(c1, c2)Remova c1 e c2 de Gc⇐ c1 ∪ c2Insira c em G

end while

A partir desse algoritmo foram feitas algumas modificações, de acordo com as necessi-dades do problema, e também a escolha de como efetuar alguns passos do algoritmo quedependem da implementação.

Como gostaríamos de ter agrupadas apenas as notícias mais próximas, ou seja, aquelasque têm grandes chances de serem sobre o mesmo assunto, foi escolhido um valor limitante

1Disponível no endereço: http://snowball.tartarus.org/algorithms/portuguese/stop.txt2Disponível no endereço: http://snowball.tartarus.org/algorithms/portuguese/stemmer.html

Page 22: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

16 DESENVOLVIMENTO E RESULTADOS 3.3

simmin, que é o valor mínimo de similaridade entre dois clusters para que eles possam serunidos.

O passo em que é escolhido o par c1 e c2, os dois clusters de maior similaridade no conjuntodos clusters, é possível ser feito utilizando alguma estratégia inocente, como percorrer todasas combinações possíveis de ci e cj, para ci 6= cj. Porém, neste trabalho, utilizamos umafila de prioridade para guardar os pares [ci, cj] de acordo com a similaridade entre eles,melhorando assim a performance do algoritmo.

O algoritmo final, utilizado por este trabalho, foi:

Algoritmo 6 - HAC-QUEUE(D) - ClusteringF ⇐ fila de prioridade vaziaG⇐ conjunto de gruposfor d ∈ D do

g ⇐ grupo(d)calculaSimilaridade(g,G, F )insere(G, g)

end forwhile F não estiver vazia do〈g1, g2〉 ⇐ Pool(F )if g1 ∈ G e g2 ∈ G then

Remova g1 e g2 de Gg ⇐ g1 ∪ g2calculaSimilaridade(g,G, F )insere(G, g)

end ifend whilereturn G

No algoritmo descrito acima, a função Insere(G, g) simplesmente insere o grupo g noconjunto de grupos G, e a função CalculaSimilaridade(g,G, F ) calcula a similaridade entreg e os elementos de G, depois insere os pares na fila de prioridade, como mostrado abaixo:

Algoritmo 7 - CalculaSimilaridade(g, G, F)for c ∈ G do

if sim(g, c) ≥ Limiar thenInsereNaFila(〈g, c〉 , sim(g, c), F )

end ifend for

A função InsereNaFila(elemento, peso, F ila) adiciona o elemento passado como parâ-metro na fila de prioridade com o peso dado.

Para calcular a similaride entre dois clusters, utilizamos a similaridade entre os centroidesde cada cluster, que podem ser obtidos da seguinte maneira:

centc =∑d∈c

d

|c|

Page 23: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

3.3 AGRUPAMENTO DE NOTÍCIAS 17

calculando então a similaridade entre os clusters c1 e c2:

sim(c1, c2) = sim(centc1 , centc2)

3.3.1 Testes realizados

Com o objetivo de avaliar a qualidade dos grupos de notícias formados pelo algoritmoacima descrito, foram realizados alguns testes, medindo a similaridade entre os elementosdos clusters formados.

Para a realização dos testes, foram escolhidas 7000 notícias, que é o equivalente à quan-tidade diária de notícias que o serviço terceirizado disponibiliza. Dessas notícias, 6689 sãonotícias do dia 14/09/2012 e as outras 331 notícias são do dia 15/09/2012.

Foi utilizado o algoritmo de clustering descrito acima, o HAC, e o valor mínimo desimilaridade entre os clusters para que eles possam ser juntados é 0.5. A similaridade entreos clusters foi calculada pela similaridade dos cossenos entre os centroides de cada cluster.Após a formação dos clusters, pelo algoritmo, alguns deles foram escolhidos arbitrariamentepara análise, junto com uma notícia de cada cluster, chamada de pivô. E foram coletadas asseguintes informações sobre os clusters :

• Teste 1: A distribuição da similaridade entre os documentos do cluster.

• Teste 2: A distribuição da similaridade entre o centroide do cluster e todas as notícias.(Separando os documentos do cluster, para melhor observação).

Os resultados encontrados foram:

Documentos processados: 7000Clusters formados: 2991Média de documentos por cluster : 2.34Tamanho do maior cluster : 233 documentos

Foram escolhidos 3 clusters para análise.

• Cluster 1: O primeiro cluster escolhido para análise foi aquele de maior tamanho. Otítulo da notícia pivô do cluster é “Banco Central decreta liquidação do Cruzeiro doSul ”, publicada na Folha Online no dia 14 de setembro de 2012.

• Cluster 2: O título da notícia pivô do segundo cluster é “Espanha promete um novoplano de reformas a sócios da Zona Euro”, publicada na Isto é Dinheiro no dia 14 desetembro de 2012.

• Cluster 3: O título da notícia pivô do terceiro cluster é “Café com fraude”, publicadana revista Exame, também no dia 14 de setembro de 2012.

Page 24: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

18 DESENVOLVIMENTO E RESULTADOS 3.3

Os resultados do primeiro teste são:

Intervalo 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0cluster 1 0 422 7486 8372 2465 1750 1925 1596 1149 1863cluster 2 0 70 46 0 0 8 35 4 9 59cluster 3 0 0 0 0 1 4 0 4 0 1

Tabela 3.1: Distribuição de similaridade entre elementos do mesmo cluster.

No primeiro teste foi calculada a similaridade de cada par de elementos do mesmo cluster,e a tabela acima possui a distribuição desses valores, para cada cluster, em intervalos de 0.1entre 0 e 1.

Abaixo estão os resultados para o segundo teste. Na primeira linha de cada tabela está adistribuição de similaridade do centroide de cada cluster com os elementos de fora do cluster.Na segunda linha está a distriubição de similaridade com os elementos de dentro do cluster.

Intervalo 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0Documentos externos 5561 1106 86 14 0 0 0 0 0 0Documentos internos 0 0 21 83 95 25 9 0 0 0

Tabela 3.2: Distribuição de similaridade entre o centroide do Cluster 1 e os documentos da coleção

Intervalo 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0Documentos externos 6694 261 19 4 0 0 0 0 0 0Documentos internos 0 0 0 0 7 0 6 9 0 0

Tabela 3.3: Distribuição de similaridade entre o centroide do Cluster 2 e os documentos da coleção

Intervalo 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0Documentos externos 6813 177 0 1 0 0 0 0 0 0Documentos externos 0 0 0 0 0 1 0 1 0 3

Tabela 3.4: Distribuição de similaridade entre o centroide do Cluster 3 e os documentos da coleção

É possível observar a partir do primeiro teste que é mais difícil manter a similaridadealta em clusters maiores utilizando a similaridade entre os centroides como critério para unirdois clusters no algoritmo de clustering.

Uma possibilidade para evitar que clusters tenham elementos internos com similaridadebaixa seria formar clusters com complete-link, ou seja, utilizar como similaridade de doisclusters a menor similaridade possível entre dois elementos dos clusters. Isso garantiria queo valor mínimo da similaridade intra-cluster fosse tão bom quanto necessário, porém teriacomo resultado colateral a quebra de clusters grandes em diversos outros clusters menores.

Page 25: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

3.4 CLASSIFICAÇÃO 19

Porém, esse também pode não ser o resultado desejado; é necessário analisar melhor osdocumentos agrupados antes de tomar uma decisão.

Nos resultados do segundo teste para clusters menores, ficou muito bem definido, paracada um, um valor limite de similaridade com o centroide que separa elementos internose externos ao cluster. Para ambos os casos, não existe elemento interno com similaridademenor que 0.4 e também não existe elemento externo com similaridade maior do que essevalor.

Já para o maior cluster, é possível observar que existe uma intersecção de intervalo, ondeexistem elementos internos e externos ao cluster [0.2 , 0.4].

Ao ler, manualmente, as notícias externas ao cluster e com similaridade entre 0.2 e 0.4,foi possível verificar que todas citavam ao menos uma vez o caso da liquidação do bancoCruzeiro do Sul, mas que possuíam focos diferentes. Algumas analizavam o impacto docaso no sistema bancário ou nas ações na bolsa de valores, enquanto outras alertavam oscorrentistas sobre seus direitos e sobre o fundo garantidor de crédito.

A conclusão foi que a maior dificuldade de agrupar automaticamente notícias muitopopulares é que é dificil definir como agrupá-las, mesmo manualmente, devido ao grandenúmero de focos diferentes que as notícias podem ter. Como se, dada uma notícia qualquersobre a liquidação do banco Cruzeiro do Sul, fosse sempre possível encontrar na coleçãooutro documento dentro de qualquer nível de similaridade desejado.

Para as notícias muito populares, o ideal seria ter dois limites de similaridade para agru-par as notícias. O maior deles, e consequentemente mais apertado, agruparia apenas notíciasmuito próximas; seria equivalente ao utilizado hoje para agrupar as notícias repetidas. O se-gundo deles, mais largo, agruparia os tópicos que de alguma forma são relacionados entre si,porém sem conteúdos similares suficientes para serem considerados uma mesma manchete.

3.4 Classificação

Com o objetivo de identificar as notícias relevantes para o Monitoração de Mídias (aquelasque abordam alguma atividade criminosa), foram testados 2 algoritmos de classificação dedocumentos para testes, o kNN e o Rocchio.

3.4.1 Conjunto de Treino

Para treinar esses dois algoritmos, foram necessárias notícias previamente classificadaspor algum técnico especialista, o conjunto de treino. Apesar de termos uma grande quanti-dade de notícias sobre atividades criminosas (o Monitoração de Mídias possui cerca de 45mil notícias), não tínhamos inicialmente na base de dados nenhuma notícia que não fosserelevante.

Na antiga interface utilizada pelo técnico do Monitoração de Mídias para escolher asnotícias, o usuário podia:

• Navegar por uma lista de notícias

Page 26: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

20 DESENVOLVIMENTO E RESULTADOS 3.4

• Ler notícias dessa lista

• Marcar as notícias relevantes

Uma vez que o usuário aprovasse essa lista de notícias, as notícias marcadas como rele-vantes eram enviadas para a equipe de gerenciamento de conteúdo do Monitoração de Mídiase as demais, descartadas. Mesmo guardando as notícias descartadas pelo usuário, elas nãosão adequadas para o conjunto de treino, pois nem sempre a notícia é descartada por nãoser relevante. Outros motivos para que as notícias sejam descartadas:

• É uma notícia relevante, porém o técnico sabe que é uma notícia repetida.

• Erro do técnico. É muito mais fácil para o técnico deixar passar uma notícia relevantedo que marcar uma notícia não-relevante para o sistema. Nem todas as notícias dalista são lidas.

Então, para conseguir um conjunto de treino com notícias relevantes e não-relevantes, foinecessário fazer algumas alterações na rotina de escolha das notícas do técnico. A interface foialterada, permitindo que o usuário marque notícias como não-relevantes, que serão utilizadasno conjunto de treino.

Mesmo com a alteração na interface, a quantidade de notícias não-relevantes obtidas parao conjunto de treino não foi muito grande, cerca de mil notícias não-relevantes para 20 milnotícias relevantes marcadas no mesmo período. Os principais motivos para isso foram:

• É mais cômodo para o técnico continuar marcando apenas as notícias relevantes.

• Marcar as notícias não-relevantes não afeta o trabalho atual do Monitoraçõa de Mídias.

3.4.2 kNN

Pela dificuldade em conseguir uma quantidade maior de notícias não-relevantes para oconjunto de treino, foi escolhida uma abordagem em que a qualidade da classificação denotícias melhora à medida que o usuário utiliza o sistema em vez de depender muito doconjunto de treino inicial. E o algoritmo kNN encaixa-se muito bem nessa abordagem, poisnão precisa da etapa de treino, apenas dos vetores das notícias do conjunto de treino.

Durante a etapa de teste do kNN, ele procura pelos k=31 vetores do conjunto de treinocom maior similaridade com o vetor do documento testado. Depois, utilizando a similaridadecom esses vetores como peso, escolhe a classe com maior soma de peso.

3.4.3 Testes de classificação

Para testar o kNN foi utilizado o 10-fold cross validation. A estratégia de validação foidividir o conjunto de teste em 10 partes, aleatoriamente, e testar uma parte de cada vez,utilizando as outras 9 partes como conjunto de treino do algoritmo.

Page 27: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

3.4 CLASSIFICAÇÃO 21

Para ter uma base de comparação com o kNN, também foi implementado o Rocchio, eos mesmos testes foram feitos nele também.

Após a realização dos testes para cada algoritmo, algumas métricas foram coletadas paraavaliar a performance dos algoritmos.

• Cobertura: Calcula a proporção das notícias relevantes que são encontradas peloalgoritmo nos testes.

cobertura =relevantes ∩ recuperadas

relevantes

• Precisão: Calcula a proporção das notícias recuperadas que são relevantes.

precisão =relevantes ∩ recuperadas

recuperadas

• F1: Como é sempre possível escolher um algoritmo que é muito bom em uma dasmétricas porém muito ruim em outra (por exemplo, um algoritmo que recupera todosos documentos tem 100% de cobertura, porém péssima precisão), existe uma outramétrica, F1, que é a média harmônica da precisão e cobertura.

F1 = 2.precisão.coberturaprecisão+ cobertura

Os testes de classificação foram feitos com 1991 documentos, dos quais:

• 1000 relevantes: Documentos que falam sobre atividades criminosas

• 991 não-relevantes: Documentos sobre outros assuntos, como futebol, novela, etc.

Os resultados obtidos por cada um dos 10 grupos pelo kNN foram:

Grupo RR NR RN NN Total1 96 4 0 99 1992 110 5 4 86 2053 105 2 1 89 1974 105 6 0 93 2045 95 5 0 118 2186 93 4 0 103 2007 121 5 0 95 2218 85 6 0 88 1799 96 4 0 92 19210 89 4 0 83 176Total 995 45 5 946 1991

Tabela 3.5: Resultado da classificação utilizando kNN

Page 28: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

22 DESENVOLVIMENTO E RESULTADOS 3.4

Os resultados obtidos com o Rocchio foram:

Grupo RR NR RN NN Total1 95 7 1 96 1992 113 7 1 84 2053 106 4 0 87 1974 105 9 0 90 2045 95 7 0 116 2186 93 4 0 103 2007 121 6 0 94 2218 85 11 0 83 1799 96 6 0 90 19210 89 6 0 81 176TOTAL 998 67 2 924 1991

Tabela 3.6: Resultado da classificação utilizando ROCCHIO

Onde:

• RR: relevantes ∩ recuperadas

• NR: não-relevantes ∩ recuperadas

• RN: relevantes ∩ não-recuperadas

• NN: não-relevantes ∩ não-recuperadas

As matrizes de confusão acumulada dos resultados são:

relevantes não-relevantesrecuperadas 995 45 1040

não-recuperadas 5 946 951totais 1000 991 1991

Tabela 3.7: Matriz de confusão acumulada para kNN

relevantes não-relevantesrecuperadas 998 67 1065

não-recuperadas 2 924 926totais 1000 991 1991

Tabela 3.8: Matriz de confusão acumulada para ROCCHIO

E os valores calculados da cobertura, precisão e F1 dos resultados são:

Page 29: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

3.4 CLASSIFICAÇÃO 23

Algoritmo Cobertura Precisão F1kNN 0.995 0.956 0.975

Rocchio 0.998 0.937 0.966

Tabela 3.9: Cobertura, precisão e F1 para kNN e Rocchio

3.4.4 Classificação apenas com notícias relevantes no conjunto detreino

Para equilibrar os testes de classificação, foram utilizadas apenas 2000 notícias relevantesaproximadamente, porque a quantidade de notícias não-relevantes obtidas para o conjuntode treino foi de apenas 991 notícias.

É um pouco frustrante ter mais de 30 mil notícias que podem ser utilizadas no con-junto de treino como relevantes e não utilizá-las, pois a proporção de notícias relevantes pornão-relevantes seria tão grande que poderia influenciar bastante nos resultados dos testes,podendo gerar uma grande quantidade de falsos-positivos. 3

O objetivo dos testes com classificação utilizando apenas notícias relevantes no conjuntode treino é tentar fazer melhor uso dessa grande quantidade de informação.

A origem da estratégia vem da exploração do kNN e das respostas para as perguntas:

• O quanto é confiável a resposta de um teste do kNN?

• Qual a similaridade da notícia testada pelo kNN com as k notícias mais próximas?

É intuitivo que a resposta do kNN para os testes é mais confiável quanto maior for asimilaridade da notícia testada com as mais próximas, e o objetivo da classificação utilizandoapenas notícias relevantes é encontrar um valor limiar m de similaridade - quando uma novanotícia for testada, basta ela ter a similaridade maior que m com algum elemento do conjuntode treino para ser considerada relevante.

Para tentar calcular o valor de m, foi utilizada uma base de dados com aproximadamente37 mil notícias consideradas relevantes, e para cada notícia ni foi calculado o seu mi comoa maior similaridade encontrada entre ni e alguma outra notícia. A partir desses valores,foi calculado o valor m, m ≤ mi em 90% dos casos. Esses 10% deixados de fora devem-se apossíveis erros no treinamento e pontos fora da curva.

O valor encontrado para m foi 0.14.

E os resultados da classificação para m = 14, testando com o mesmo conjunto de testesutilizados pelo kNN e Rocchio, foram:

3Falsos-positivos são as notícias não-relevantes recuperadas durante os testes.

Page 30: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

24 DESENVOLVIMENTO E RESULTADOS 3.5

relevantes não-relevantesrecuperadas 1000 622 1622

não-recuperadas 0 369 369totais 1000 991 1991

Tabela 3.10: Matriz de confusão acumulada para classificação baseada em confiança com m = 0.14

Cobertura Precisão F11 0.61 0.76

Tabela 3.11: Cobertura, precisão e F1 para kNN e Rocchio

Um resultado onde a precisão é muito ruim, porém com cobertura muito boa. Ao aumen-tar o valor de m para 0.21 conseguimos melhorar um pouco a precisão, porém diminuindomuito a cobertura:

relevantes não-relevantesrecuperadas 846 333 1179

não-recuperadas 154 658 812totais 1000 991 1991

Tabela 3.12: Matriz de confusão acumulada para classificação baseada em confiança com m = 0.14

Cobertura Precisão F10.84 0.71 0.77

Tabela 3.13: Cobertura, precisão e F1 para kNN e Rocchio

Mesmo melhorando a precisão, houve uma queda muito grande na cobertura, mais de150 falsos-negativos.

Nesse teste, foi levado em conta apenas o documento mais próximo do conjunto de treino.O objetivo para testes futuros é levar em consideração também outros elementos do conjuntode treino, assim como é feito pelo kNN com k > 1.

3.5 Visão geral das implementações

Todo o back-end foi implementado em Java. Para fazer o processamento das notícias,foram utilizadas as implementações do Snowball4, tanto o stemmer quanto a lista de stop-words para a língua portuguesa.

4http://snowball.tartarus.org/

Page 31: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

CONCLUSÃO 25

A persistência dos objetos não-relacionais, como os vetores dos documentos e clusters,vetores do conjunto de treino, informações sobre a coleção (como tamanho) e sobre os termosfoi feita por uma biblioteca de código aberto, jdbm2.5 Essa é uma biblioteca bastante simples,que guarda os objetos serializados no disco rígido e a recuperação desses objetos é feitaatravés de uma chave. O jdbm2 faz a implementação da interface Map6 do Java.

Para fazer a persistência dos objetos relacionais e a comunicação do front-end foi utilizadoo banco de dados MySQL7, por ser código aberto e muito fácil de instalar e usar.

3.6 Conclusão

Após terminar este trabalho, a conclusão foi de que é possível, a partir de técnicasde processamento de texto, agrupamento e classificação de documentos, criar um sistemacom aprendizado supervisionado que permita a pré-seleção e agrupamento de documentosrelevantes para o trabalho de clipping da equipe do Monitoração de Mídias.

Não tanto pela boa cobertura e precisão adquiridas nos testes de classificação, mas prin-cipalmente pela eficiência do algoritmo de clustering em agrupar as notícias repetidas. Poisuma vez que um analista toma uma decisão para alguma notícia, como aceitá-la ou rejeitá-la,essa decisão é repetida para todo o cluster.

Durante a implementação, foi possível constatar também que bancos de dados NoSQLpodem ser muito úteis para guardar objetos de natureza não-relacional, como os vetores eoutras informações sobre a coleção de documentos.

5http://code.google.com/p/jdbm2/6http://docs.oracle.com/javase/6/docs/api/java/util/Map.html7http://www.mysql.com/

Page 32: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

26 DESENVOLVIMENTO E RESULTADOS

Page 33: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

Referências Bibliográficas

Buckland e Gey (1994) Michael Buckland e Fredric Gey. The relationship betweenrecall and precision. J. Am. Soc. Inf. Sci., 45(1):12–19. ISSN 0002-8231. doi:10.1002/(SICI)1097-4571(199401)45:1<12::AID-ASI2>3.0.CO;2-L. URL http://dx.doi.org/10.1002/(SICI)1097-4571(199401)45:1<12::AID-ASI2>3.0.CO;2-L. Citado na pág.

Chakrabarti (2003) Soumen Chakrabarti. Mining the Web: Discovering Knowledge fromHypertext Data. Morgan Kaufmann, Amsterdam. Citado na pág. 8

COAF () COAF. O que é. https://www.coaf.fazenda.gov.br/conteudo/sobre-lavagem-de-dinheiro-1. Último acesso em 30/9/2012. Citado na pág. 1

Manning et al. (2008) Christopher D. Manning, Prabhakar Raghavan e Hinrich Schtze.Introduction to Information Retrieval. Cambridge University Press, New York, NY, USA.ISBN 0521865719, 9780521865715. Citado na pág. 3

Orengo et al. (2007) Viviane Moreira Orengo, Luciana S. Buriol e Alexandra RamosCoelho. A study on the use of stemming of monolingual ad-hoc portuguese informationretrieval. Lecture Note in Computer Science, 4730:91–98. Citado na pág. 4

Rebedea e Trausan-Matu (2008) Traian Rebedea e Stefan Trausan-Matu. Autonomousnews clustering and classification for an intelligent web portal. Em Aijun An, Stan Matwin,Zbigniew W. Ras e Dominik Slezak, editors, Foundations of Intelligent Systems, 17thInternational Symposium, ISMIS 2008, Toronto, Canada, May 20-23, 2008, Proceedings,volume 4994 of Lecture Notes in Computer Science, páginas 477–486. Springer. ISBN978-3-540-68122-9. doi: http://dx.doi.org/10.1007/978-3-540-68123-6_52. Citado na pág.

27

Page 34: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

28 REFERÊNCIAS BIBLIOGRÁFICAS

Page 35: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

Parte Subjetiva

.1 Desafios e Frustrações

O maior desafio durante o desenvolvimento deste trabalho foi obter um bom conjunto detreino, com uma grande quantidade de notícias que não abordassem atividades criminosas.As notícias sobre atividades criminosas foram fáceis de conseguir, pois o Monitoração deMídias está cheio delas. Porém, para conseguir as outras notícias, foi necessário alterar osistema utilizado atualmente pela equipe de conteúdo para escolher as notícias, para podermarcar as notícias não-relevantes e não apenas dar instruções para os usuários atuais dosistema, mas também convencê-los de que essa informação é importante.

Por outro lado, desde as primeiras implementações para testes e estudos que foram feitas,os resultados já tinham uma aparência muito boa. O primeiro teste foi computar os vetoresde uma base de dados de notícias, escolher uma delas ao acaso e listar as outras notícias,ordenando-as pela similaridade com a notícia escolhida e observar as mais similares. E, defato, as notícias com maior similaridade eram notícias sobre o mesmo assunto que a escolhida.

Uma grande satisfação, no desenvolvimento deste trabalho, é que recentemente come-cei a fazer um refactoring deste projeto, passando as implementações para dentro de umframework que foi desenvolvido dentro da empresa onde trabalho hoje, que é uma empresadiferente da empresa que desenvolveu o Monitoração de Mídias. Isso me deixa muito feliz,pois não apenas levo o conhecimento adquirido durante o curso das disciplinas para os meusdesenvolvimentos, como também tenho feito bom uso das minhas experiências de trabalho.

.2 Disciplinas mais relevantes para o trabalho

• Álgebra Linear para Computação (MAT 0139) e outras matérias relacionadas,comoProgramação Linear (MAC 0315),Aplicações de Álgebra Linear (MAP2210 - optativa) eMétodos numéricos de Álgebra Linear (MAC 0300), foramfundamentais para o desenvolvimento do trabalho, pois foram a base para a compre-ensão do modelo vetorial e a familiaridade com espaços vetoriais em geral.

• Introdução à Probabilidade e à Estatística II (MAE 0212), apesar de nãoterem sido utilizados métodos estatísticos para a classificação das notícias, como oNaive Bayes, esses algoritmos foram estudados, e mesmo utilizando o modelo vetorialpara a classificação de notícias, a intuição de probabilidade e estatística foi importantepara a confiança no funcionamento desse algoritmo.

29

Page 36: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

30 APÊNDICE

• As matérias sobre estrutura de dados, Princípios de Desenvolvimento de Algorit-mos (MAC 0122), Estrutura de Dados (MAC 0323), foram importantes para aimplementação do sistema de classificação de notícias, pois foram utilizadas estruturasde dados para representar os vetores esparsos dos documentos, e também algumas filasde prioridade para a implementação dos algoritmos.

• Laboratório de Programação I (MAC 0211) e Laboratório de ProgramaçãoII (MAC 0242) também foram muito importantes na implementação do sistema e naescrita da monografia, pois nessas disciplinas foi introduzida uma grande quantidadede ferramentas que ajudam muito no dia a dia da programação, além de prover umaboa experiência com programação.

• Linguagens Formais e Autômatos (MAC 0414) foi muito importante no processode tratamento dos textos e na compreensão dos algoritmos de stemmer. A tokenizaçãodos textos exigiu que diversos grupos de caracteres ou palavras fossem removidos dostextos, como pontuação, números e algumas tags HTML que poderiam aparecer nostextos, possivelmente por erro do crawler do serviço de fornecimento de notícias.

• Conceitos Fundamentais de Linguagens de Programação (MAC 0316). Umdos problemas encontrados durante o desenvolvimento foi o uso excessivo de memória,e o aprendizado obtido nessa disciplina sobre Garbage Collection foi muito importantepara a compreensão do problema e para a escolha de uma solução.

• Sistemas de Banco de Dados (MAC 0426). Foi muito útil para a organizaçãode uma grande quantidade de documentos não-estruturados em uma base de dadosestruturada. A comunicação do front-end e back-end foi feita pelo banco de dados.

• Laboratório de Banco de Dados (MAC 0439). Não foi importante apenas para asconsultas dos documentos em uma base de dados relacionais, como também direcionoua forma que outros objetos importantes foram persistidos, como os vetores já calculadosdos documentos e tópicos.

.3 Novos estudos e futuros passos

Os próximos passos para este trabalho é terminar de passá-lo para esse novo framework,permitindo algumas melhorias na escalabilidade e manutenção, como também o estudo dealguns assuntos relacionados como a análise de sentimentos.

Também é importante estudar novos métodos de classificação que possam ser aplicados,como no último teste deste trabalho, que tenta fazer a classificação das notícias utilizandoapenas notícias relevantes no conjunto de treino. Acredito que é possível melhorar os resul-tados com esses testes com algumas modificações no algoritmo.

Após uma notícia ser escolhida para o Monitoração de Mídias, a equipe de conteúdo éresponsável por fazer sua síntese e também fazer o cadastro das pessoas envolvidas nessanotícia. No cadastro dessas pessoas, há uma lista de crimes cometidos por essa pessoa. Oobjetivo de um estudo futuro é utilizar essa informação dos crimes cometidos por uma pessoapara classificar novamente as notícias selecionadas utilizando como classificações os crimesem que as pessoas estão envolvidas. Essa é uma classificação um pouco mais difícil do que

Page 37: Instituto de Matemática e Estatística da …linux.ime.usp.br/~willian/mac499/arquivos/pdf/monografia.pdfInstituto de Matemática e Estatística da Universidade de São Paulo MAC0499

AGRADECIMENTOS 31

a realizada por este trabalho, pois uma notícia pode ter diversas classificações que não sãomutuamente exclusivas, diferentemente deste trabalho em que uma notícia fala sobre umaatividade criminosa ou não, nunca as duas possibilidades.

.4 Agradecimentos

Gostaria de agradecer ao professor Alair Pereira do Lago por todo o apoio e paciênciadurante o desenvolvimento do trabalho.

Agradeço também à AML Consulting por ter cedido a base de dados com os documentosutilizados neste trabalho e também à equipe de conteúdo do Monitoração de Mídias quese prontificou a separar as notícias não-relevantes para que eu pudesse ter um conjunto detreino melhor.

Muito obrigado a Adriana Viana Campos, pelo carinho e apoio durante o desenvolvimentodeste trabalho e também por ter feito a revisão dos meus textos.

E finalmente quero agradecer à minha família que, mesmo morando na outra ponta doestado de São Paulo, nunca deixou de me apoiar e acreditar que um dia eu terminaria meucurso de graduação.