Term weighting: outras ideias

Documentos relacionados
GSI024 - Organização e Recuperação da

GSI024 - Organização e Recuperação da

Aula 16 Árvores Patricia e Árvores B

Lista de exercícios 2 Recuperação de Informação Textual

Arquivos invertidos 39

Universidade do Sul de Santa Catarina Ciência da Computação Aula 09 Introdução a Análise de Textos Prof. Max Pereira

DATA MINING & MACHINE LEARNING (I) Thiago Marzagão

Recuperação de Dado X Informação. Gerenciamento de Dados e Informação. Histórico. Recuperação de Informação. Histórico. Histórico

Tipos de códigos de fonte

MINERAÇÃO DE DADOS. Thiago Marzagão MINERAÇÃO DE TEXTOS. Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/ / 25

Melhorando a Recuperação de Informação

Visualização de Texto e Documento

Meu Google é melhor que o seu

Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo

Busca em Regiões Ortogonais

Recuperação de Informações

Canais discretos sem memória e capacidade do canal

Compressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso:

Algoritmos e Estruturas de Dados I Aula 15 Árvores de busca balanceadas (e mais...)

Aula 18 Árvores B e parâmetros de compilação

Pré-Processamento de Documentos

Segundo trabalho de Organização e Recuperação da Informação

Ponderação de termos

Aula 15 Árvores Digitais / Trie

Modelo Espaço Vetorial. Mariella Berger

A Invenção da B-Tree. Árvores B Parte I. Problema. Problema. Árvores Binárias de Busca. Árvores Binárias de Busca. Introdução

Capítulo 4. Comitê BAS 35

2 Teoria da Informação

Filtros de Média Movente

Hashing externo (II) Graça Nunes. Fonte: Folk & Zoelick, File Structures

Árvores Binárias de Busca

Tabela Hash: Índice remissivo

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

I-Preproc: uma ferramenta para pré-processamento e indexação incremental de documentos

Algoritmos e Estruturas de Dados II. Trabalho Prático 4

Índices. SCE-203 Algoritmos e Estruturas de Dados II

Dados? A matéria-prima da informação. 13/07/16 Departamento de Ciência da Computação

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura

Árvores-B (Parte Ia) SCC-203 Algoritmos e Estruturas de Dados II. Graça Nunes

Realimentação de Relevância

Hashing: conceitos. Hashing

Sumário. Definição do Plano de Execução

3 Plano de Execução de Consultas

Árvores Binárias de Busca

SCC Algoritmos e Estruturas de Dados II. 6ª lista de exercícios

CIC 111 Análise e Projeto de Algoritmos II

Extraindo atributos de textos. Prof. Fabrício Olivetti de França

A Invenção da B-Tree. Árvores B Parte I. Problema. Problema. Introdução. Leandro C. Cintra Maria Cristina F. de Oliveira. Solução?

Nivio Ziviani. Conjunto de transparências elaborado por Nivio Ziviani, Patrícia Correia e Fabiano C. Botelho.

Codificação de Huffman

CIC 111 Análise e Projeto de Algoritmos II

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

4 Recuperação de Informação

Mensagem descodificada. Mensagem recebida. c + e

Introdução a AVL: teoria e prática. 22/11, 25/11 e 30/11

ORI: Pontuação e o modelo de espaço vetorial

03/07/2017. Modelo de Recuperação de Informação

Módulo 5 Codificação Sistemas Multimédia Ana Tomé José Vieira

Estudo sobre decodificação iterativa usando códigos de treliça

Pré-processamento de dados

ESTRUTURA DE DADOS CIÊNCIA E TECNOLOGIA DO RIO. Curso de Tecnologia em Sistemas para Internet

MATRIZES - PARTE Mais exemplos Multiplicação de duas matrizes AULA 26

Compactação de Dados Letícia Rodrigues Bueno

Estrutura de indexação de arquivos

ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS

COMUNICAÇÃO DIGITAL INTRODUÇÃO À TEORIA DE INFORMAÇÃO

Uso de Índices na Otimização e Processamento de Consultas. Otimização e Processamento de Consultas. Otimização e Processamento de Consultas

Estruturas de Dados Algoritmos de Ordenação

Árvores binárias de busca

Árvores Binárias de Busca

Aprendizado de Supervisionado

Organizaçãoe Recuperaçãode Informação GSI521. Prof. Dr. Rodrigo Sanches Miani FACOM/UFU

Classificação Linear. André Tavares da Silva.

Introdução à Informática

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

COMPUTAÇÃO PARALELA E DISTRIBUÍDA

Árvores binárias de busca

Índices. 1. Introdução. Universidade Federal de Pelotas Departamento de Informática Bacharelado em Ciência da Computação Banco de Dados I

Universidade de Pernambuco Escola Politécnica de Pernambuco

Introdução. Estrutura de Dados II Prof Jairo Francisco de Souza

Processamento de Imagens CPS755

Bases de Dados. Índices. Discos. transferência rápida e aos bytes. transferência lenta e em blocos (512B ~ 4KB) memória. disco BD / aplicação

Teoria da Computação. Aula 9 Pesquisa em Memória Secundária 5COP096. Aula 9 Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Há vários algoritmos para processar junções nested-loop join block nested-loop join indexed nested-loop join merge-join hash-join

O modelo espaço de vetores. vetorial. Marcelo Keese Albertini. Faculdade de Computação - UFU. O modelo de espaço vetorial 1 / 25

Modelo Probabilístico

Bit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256

ANÁLISE E PROJETO DE BANCO DE DADOS

ARQUITETURA DE COMPUTADORES 21010

Aula 6 Mineração Streams Representação dos Dados. Profa. Elaine Faria UFU

Abordagens para Resolução de Problemas

Fundamentos da Compressão de Vídeo

CIC 110 Análise e Projeto de Algoritmos I

25/04/2017. Modelo de Recuperação de Informação

Algoritmos de Compressão sem Perdas

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO

Hashing convencional...

Análise de Algoritmos Estrutura de Dados II

Transcrição:

Term weighting: outras ideias

Term Weighting i Diversas são as abordagens. Vamos discutir algumas ideias mais simples, porém conhecidas. i Abordagens 4 Pesos binários (já vimos) 4 Frequência (já vimos) i Normalizado ou não 4 TF-IDF (já vimos) 4 Probabilístico (já vimos) 4 Term discrimination model 4 Relação sinal-ruído (vem da Teoria da Informação) 2

tf x idf Doc 1 Doc 2 Doc 3 Doc 4 Doc 5 Doc 6 df idf = log2(n/df) T1 0 2 4 0 1 0 3 1.00 T2 1 3 0 0 0 2 3 1.00 T3 0 1 0 2 0 0 2 1.58 T4 3 0 1 5 4 0 4 0.58 T5 0 4 0 0 0 1 2 1.58 T6 2 7 2 1 3 0 5 0.26 T7 1 0 0 5 5 1 4 0.58 T8 0 1 1 0 0 3 3 1.00 Após cálculo do tf-idf (freq x idf, ou seja, sem normalização) Doc 1 Doc 2 Doc 3 Doc 4 Doc 5 Doc 6 T1 0.00 2.00 4.00 0.00 1.00 0.00 T2 1.00 3.00 0.00 0.00 0.00 2.00 T3 0.00 1.58 0.00 3.17 0.00 0.00 T4 1.75 0.00 0.58 2.92 2.34 0.00 T5 0.00 6.34 0.00 0.00 0.00 1.58 T6 0.53 1.84 0.53 0.26 0.79 0.00 T7 0.58 0.00 0.00 2.92 2.92 0.58 T8 0.00 1.00 1.00 0.00 0.00 3.00 3

Outras formas de calcular o TF.IDF i Muitos sistemas de IR usam pesos distintos para o documento e para a consulta. i Uma forma bem comum é fazer: 4 Documento: log(tf), sem idf, e normalização (norma) 4 Consulta: log(tf), idf, sem normalização 4

Term Discrimination Model i Usa-se o mesmo vetor de representação do documento como fonte para o modelo 4 O que acontece se removermos um dos termos usados como dimensão no espaço vetorial? 4 Se mudar significativamente a média da similaridade entre os documentos, então a palavra é um bom discriminante. 4 Caso contrário, a palavra não é tão útil para diferenciar os documentos, então poderia ter seu peso reduzido. 5

Term Discrimination i Calculando a similaridade média (N documentos) sim(d 1,D 2 ) = similaridade entre D 1 and D 2 1 sim = sim D i D j N 2 (, ) i, j sim k = sim quando t k é removido Computacionalmente caro i Melhor calcular AVG-SIM como: 4 Calcule o centróide D * (Sum(vectores) / N) 4 Então: 1 * sim = sim( D i, D ) N i 6

Term Discrimination i Valor do discriminante e dos pesos dos termos disc = sim sim k k disc k > 0 ==> t k é um bom discriminante disc k < 0 ==> t k é um discriminante ruim disc k = 0 ==> t k é indiferente para as consultas i Calculando os pesos 4 O novo peso é calculado como peso anterior (neste caso, estamos usando como peso anterior apenas o TF) multiplicado pelo discriminante. w = tf disc ik ik k 7

Exemplo docs t1 t2 t3 D1 10 1 0 D2 9 2 10 D3 8 1 1 D4 8 1 50 D5 19 2 15 D6 9 2 0 D* 10.50 1.50 12.67 Sim() com o Centróide sim(d1,d*) 0,641 sim(d2,d*) 0,998 sim(d3,d*) 0,731 sim(d4,d*) 0,859 sim(d5,d*) 0,978 sim(d6,d*) 0,640 AVG-SIM 0,808 1 * sim = sim( D i, D ) N i Normalização com a norma sim k = sim após remover t k sim1(d1,d*) 0.118 sim2(d1,d*) 0.638 sim3(d1,d*) 0.999 sim1(d2,d*) 0.997 sim2(d2,d*) 0.999 sim3(d2,d*) 0.997 sim1(d3,d*) 0.785 sim2(d3,d*) 0.729 sim3(d3,d*) 1.000 sim1(d4,d*) 0.995 sim2(d4,d*) 0.861 sim3(d4,d*) 1.000 sim1(d5,d*) 1.000 sim2(d5,d*) 0.978 sim3(d5,d*) 0.999 sim1(d6,d*) 0.118 sim2(d6,d*) 0.638 sim3(d6,d*) 0.997 SIM1 0.669 SIM2 0.807 SIM3 0.999 Atenção: D* para cada SIM k é computado com apenas dois termos 8

Exemplo disc = sim sim k Termo disc k t1-0,139 t2-0,001 t3 0,191 k A tabela mostra que t1 tende a ser um discriminante ruim, enquanto t3 é um bom discriminante. Os novos pesos irão refletir o valor do discriminante desses termos. Para que os pesos finais não sejam negativos, pode-se fazer outras normalizações, caso tenha interesse. t1 t2 t3 D1-1,392-0,001 0,000 D2-1,253-0,002 1,908 D3-1,114-0,001 0,191 D4-1,114-0,001 9,538 D5-2,645-0,002 2,861 D6-1,253-0,002 0,000 Novos pesos para t1, t2 e t3 w = tf disc ik ik k 9

Relação sinal-ruído i Baseado no trabalho de Shannon na década de 40 (Teoria da Informação) 4 Desenvolveu um modelo de comunicação de mensagens através de um canal ruidoso. 4 Objetivo é identificar uma codificação de mensagens que é mais robusta em relação ao canal com ruído i Entropia (H) 4 Quantifica a quantidade de incerteza envolvida no valor de uma variável (ou processo) aleatória. 4 É usado como uma medição da quantidade informação 4 H(Cara x Coroa) < H(dado 6 faces) i Quantas perguntas precisa fazer para prever a saída desse processo? i Lembra do Huffman??? 4 Shannon usou a entropia para medir o ganho de informação média e ruído definido como seu inverso 10

Relação sinal-ruído p k = Prob(termo k ocorre no documento i) = tf ik / tf k Info k = - p k log p k Noise k = - p k log (1/p k ) Usa-se log em base 2 ou e (vamos usar 2) SIGNAL = log( tf ) + NOISE k k k wik = tfik SIGNAL k NOISE é a negação de AVG-INFO, então apenas apenas um dos dois precisa ser computador. Novo peso do termo k no documento i 11

Exemplo p k = tf ik / tf k docs t1 t2 t3 D1 10 1 1 D2 9 2 10 D3 8 1 1 D4 8 1 50 D5 19 2 15 D6 9 2 1 tf k 63 9 78 Por definição, se o termo k não está presente no documento, então assumimos Info(k) = 0 para esse documento. Prob t1 Prob t2 Prob t3 Info (t1 ) Info (t2 ) Info (t3 ) 0.159 0.111 0.013 0.421 0.352 0.081 0.143 0.222 0.128 0.401 0.482 0.380 0.127 0.111 0.013 0.378 0.352 0.081 0.127 0.111 0.641 0.378 0.352 0.411 0.302 0.222 0.192 0.522 0.482 0.457 0.143 0.222 0.013 0.401 0.482 0.081 AVG-INFO 2.501 2.503 1.490 Esta é a entropia do termo k na sua coleção 12

Exemplo Term AVG-INFO NOISE SIGNAL t1 2.501-2.501 3.476 t2 2.503-2.503 0.667 t3 1.490-1.490 4.795 NOISE k = AVG-INFO SIGNAL = log( tf ) + NOISE k k k docs Weight t1 Weight t2 Weight t3 D1 34.760 0.667 4.795 D2 31.284 1.333 47.951 D3 27.808 0.667 4.795 D4 27.808 0.667 239.753 D5 66.044 1.333 71.926 D6 31.284 1.333 4.795 wik = tfik SIGNAL k O novo peso do termo k no document i De novo, pode-se normalizar para ter valores em [0,1] 13

Indexação: outras ideias

Índice invertido i Um índice invertido é uma estrutura de dados que guarda posting lists 4 Cada posting list está associado a um (ou mais) termos do vocabulário e guarda os identificadores dos documentos que contém o termo, além de conjuntos de informações sobre o documento (lista de posições do termo no doc, TF, etc). i Diversas são as estruturas para indexar as posting lists 4 Hash 4 ABB 4 B/B*/B+ 4 Tries 4 Skip lists 4 15

Hash i h(ti) = posição do termo na tabela i Pró: rápido! i Contra: 4 Não permite variações (currículo x curriculum) 4 Somente busca exata i Não permite busca por prefixo (curric*) 4 E se o vocabulário mudar? i Refaz tudo novamente! 16

Árvores i Busca mais lenta que em tabelas hash i O(log M) se a árvore for balanceada i É caro balancear ABB 4 Árvores B resolvem esse problema 17

Tries i R-way tries (radix tries ou prefix tries): Uma chave associada a um nó é inferida a partir da posição do nó na árvore i Permite busca por prefixos 4 Todos os descendentes de um nó possuem prefixo em comum 18

Tries i R-way tries (radix tries ou prefix tries): Uma chave associada a um nó é inferida a partir da posição do nó na árvore i Permite busca por prefixos 4 Todos os descendentes de um nó possuem prefixo em comum 19

Problemas ao processar posting lists i As listas podem ser enormes, com milhares de entradas i Ao realizar consultas com conjunções, por exemplo, é necessário pesquisar os documentos em duas ou mais listas. i Pode-se usar (não excludente) 4 Double binary search algorithm 4 Skiplists i Com CPUs muito rápidas, talvez skiplists não sejam mais tão úteis 20

Exemplo de skiplist 21

Buscas com coringas (wildcards) i Como buscar curric*? 4 Para trie, é banal 4 E para árvores? i Como buscar *culum? 4 Na trie, pode-se criar um novo índice i Como buscar cur*culum? 4 Podemos separar em cur* AND *culum i Mas é caro 4 Usar permterm indexes i Rotacionar o termo e encaixar cada variação no índice 22

i Para o termo hello, temos: Permterm index i Para buscar hel*o, faremos: search( o$hel ) i O índice vai crescer, é claro... 23

N-gram index i Mais eficiente que permterm indexes. i Enumere todos os n-grams de um documento: i Faça um índice invertido com os k-gram 4 Por exemplo, com 3-gram: 24

i Teremos 2 índices em uso 4 O índice invertido de termos 4 O índice invertido com n-grams N-gram index i Ao buscar hel* o que faremos? 4 Buscar: $h AND he AND el i Porém, podemos ter falsos positivos: heel i Comparando 4 N-gram index é mais eficiente em termos de espaço 4 Permterm index não gera falsos negativos (não precisa de postfiltering) 25

Otimização de processamento de índice i Ao criar o índice, a abordagem ler_termo+inserir é ineficiente i Para melhoria, sugere-se 4 quebrar todos os documentos em palavras 4 ordenar em memória secundária essa listagem 4 criar as posting lists para cada termo 4 indexar i Esse processo pode ser paralelizado e método mais comum é o MapReduce 26

MapReduce 27

28

Índice invertido no MapReduce i Rodar usando: 4 Hadoop 4 Amazon Elastic MapReduce (AMR) 4 Google Cloud Dataproc 4 Python mrjob (pode rodar localmente tb) 29