Mineração de Textos
Profa. Flavia Cristina Bernardini
Informação a ser minerada

Formato da informação
◦ ASCII, MLs, DBs, KBs

Assunto da informação
◦ Visitas na Web, dados de vendas,
estatísticas de esportes

Localização da informação
◦ Internet, Intranet, computador pessoal,
servidor...
Fontes de dados para Mineração

a partir de dados completamente
estruturados (BD)
◦ Mineração de dados, Mineração de visita
na Web (SOBRE a Web)

a partir de dados semi-estruturados
(HTML, XML, SGML)
◦ Mineração de páginas da Web (NA web)

a partir de dados não estruturados
(ASCII)
◦ Mineração de Textos
Mineração de Textos

Objetivo:
◦ O objetivo da Mineração de Textos é o
processamento de informação textual,
extraindo índices numéricos significativos a
partir do texto, para tornar essa informação
acessível para a mineração de dados

Análogo à Mineração de Dados
◦ Descobre relacionamentos em dados

Diferente da Mineração de Dados
◦ Trabalha com informações armazenadas
numa coleção de dados não estruturados
(textos)
Mineração de Textos

Aplicações típicas:
◦ Classificação de e-mails por tópicos
 esporte, economia, “spam e-mail”, etc
 Cada tópico é visto como um rótulo
◦ Busca de referências em uma coleção de
artigos, motores de busca
◦ Análise de questões abertas em questionários

Processos de aprendizado
◦ Cada documento é representado por uma linha
(registro, instância ou tupla) de uma tabela –
extração de características dos textos
◦ Tipos de processo
 Classificação Supervisionada
 Classificação Não-Supervisionada
Mineração de Textos

Classificação:
◦f:wL
 w é um vetor de atributos (palavras)
 L é um rótulo (label)
◦ O problema é transformado em um
processo de classificação clássico
Transformação de Documentos
em Vetores Numéricos
word1
word2
word3
word4
word5
...
wordN
label
0
1
0
1
0
...
1
1
1
0
1
0
0
...
0
0
1
0
0
1
1
...
0
1
0
1
0
0
1
...
1
0
1
0
0
1
0
...
1
1
0
1
0
0
1
...
0
1
0
0
1
1
0
...
0
0
0
0
1
0
1
...
0
1
Transformação de Documentos
em Vetores Numéricos

Dicionário ou Bag of Words
◦ Palavras relevantes que podem estar
presentes em um documento
 word1, word3, word6, ..., wordN

Dado um dicionário e um documento,
o documento é transformado num
vetor de números
◦ Forma mais simples: vetor de 1s e 0s –
representa a presença ou ausência de
palavras individuais
Geração de Vetores

3 passos:
1. Tokenização
2. Limpeza
3. Stemização

Contagem dos termos e cálculo da
frequência
1. Tokenização
Decomposição do documento em
cada termo que o compõe
 Delimitadores utilizados para
tokenização: espaço em branco entre
termos, quebras de linhas,
tabulações, e alguns caracteres
especiais

2. Limpeza

Remoção das stopwords
◦ Uma lista de stopwords é uma lista de
termos não representativos para um
documento
◦ Geralmente composta por: preposições,
artigos, advérbios, números, pronomes e
pontuação

Verificação da existência de sinônimos
(e antônimos) de cada termo em relação
a um dicionário do domínio (ou da
língua) em questão
3. Stemização
Método para redução de um termo ao
seu radical, removendo desinências,
afixos e vogais temáticas
 Termos derivados de um mesmo
radical devem ser contabilizados
como um único termo
 Se ao final do processo a quantidade
de stems for grande, os vetores
tendem a ser esparsos

Representação dos Documentos
Iniciando com um conjunto de n documentos e t
termos, é possível modelar cada documento
como um vetor v no espaço t-dimensional
 Cálculo do número de ocorrências de cada
termo num documento para cálculo das
frequências

◦ Conjunto dos termos considerados definidos após a
stemização – Bag-of-words
◦ Problema da Bag-of-words:
◦ John is quicker than Mary e Mary is quicker than
John tem os mesmos conjuntos de palavras, porém
com significados distintos – perda da informação

Diferentes representações podem ser geradas
Representação Binária
Cada documento por um vetor
 Cada posição do vetor recebe 1 caso o termo esteja
presente no documento

Antony
Brutus
Caesar
Calpumia
Cleopatra
mercy
worser
Antony and
Cleopatra
1
1
1
0
1
1
1
Julius Cesar
1
1
1
1
0
0
0
The Tempest
0
0
0
0
0
1
1
Hamlet
0
1
1
0
0
1
1
Otello
0
0
1
0
0
1
1
Macbeth
1
0
1
0
0
1
0
Representação por Frequência
Absoluta – TF
Cada documento por um vetor
 Cada posição do vetor recebe o número de vezes que
o termo ocorre no documento
 Problema: Um documento com 10 ocorrências de um
termo é mais relevante quem somente uma ocorrência
do termo.

Antony
Brutus
Caesar
Calpumia
Cleopatra
mercy
worser
Antony and
Cleopatra
157
4
232
0
57
2
2
Julius Cesar
73
157
227
10
0
0
0
The Tempest
0
0
0
0
0
3
1
Hamlet
0
1
2
0
0
5
1
Otello
0
0
1
0
0
5
1
Macbeth
1
0
1
0
0
1
0
Cálculo da frequência com logterm
1 + log(10 𝑡𝑓𝑡𝑑 )
se 𝑡𝑓𝑡𝑑 > 0
 𝑤𝑡𝑑 =
0
caso contrário
 TF → log-TF:
◦
◦
◦
◦
◦
◦
0→0
1→1
2 → 1.3
10 → 2
1000 → 4
...
Frequência de Termos na
coleção

Termos raros são mais informativos que termos
muito frequentes
◦ Lista de stopwords – remoção de termos frequentes

Considere um termo que é muito raro na coleção
– aracnofobia
◦ Um documento contendo esse termo tem grandes
chances de ser relevante para aracnofobia

Considere um termo que é frequente na coleção
◦ Um documento contendo esse termo tem chance de
ser relevante, mas não forte indicador de relevância

Para termos muito frequentes, é desejável ter
pesos positivos para esses termos, mas
menores do que para termos raros
◦ Usa-se a frequência na coleção (DF)
Cálculo da TF-IDF


𝑑𝑓𝑡 é a frequência do termo 𝑡 na
coleção – o número de documentos
que contém 𝑡
𝑖𝑑𝑓𝑡 =
𝑁
log
𝑑𝑓𝑡
𝒅𝒇𝒕
𝒊𝒅𝒇𝒕
1
6
animal
100
4
sunday
1.000
3
fly
10.000
2
under
100.000
1
1.000.000
0
calpumia
the
Cálculo da TF-IDF

𝑑𝑓𝑡 é a frequência do termo 𝑡 na
coleção – o número de documentos
que contém 𝑡
𝑁
log
𝑑𝑓𝑡

𝑖𝑑𝑓𝑡 =

Qual palavra tem mais peso?
Frequência na
coleção (df)
Frequência no
documento (tf)
insurance
10440
3997
try
10422
8760
Cálculo da TF-IDF

𝑑𝑓𝑡 é a frequência do termo 𝑡 na
coleção – o número de documentos
que contém 𝑡

𝑖𝑑𝑓𝑡 =

Daí:
𝑤𝑡𝑑
𝑁
log
𝑑𝑓𝑡
𝑁
(1 + log(10 𝑡𝑓𝑡𝑑 )) ∗ log
=
𝑑𝑓𝑡
0
se 𝑡𝑓𝑡𝑑 > 0
caso contrário
Cálculo da TF-IDF

𝑤𝑡𝑑
Qual palavra tem mais peso?
𝑁
(1 + log(10 𝑡𝑓𝑡𝑑 )) ∗ log
=
𝑑𝑓𝑡
0
se 𝑡𝑓𝑡𝑑 > 0
caso contrário
Frequência na
coleção (df)
Frequência no
documento (tf)
𝒘𝒕𝒅 para
N=100.000
insurance
10440
3997
(1+3,6)*(0.98) =
4,508
try
10422
8760
(1+4,9)*(0.98) =
5,782
Cálculo da TF-IDF

𝑤𝑡𝑑
E nesse caso?
𝑁
(1 + log(10 𝑡𝑓𝑡𝑑 )) ∗ log
=
𝑑𝑓𝑡
0
se 𝑡𝑓𝑡𝑑 > 0
caso contrário
Frequência na
coleção (df)
Frequência no
documento (tf)
𝒘𝒕𝒅 para
N=100.000
insurance
1044
997
(1+3,9)*(1.98) =
9,702
try
10422
8760
(1+4,9)*(0.98) =
5,782
Cálculo da TF-IDF
TF-IDF:
 Também chamado de: tf.idf, tf x idf
 Aumenta com o número de
ocorrências dento de um documento
 Aumenta com a raridade do termo na
coleção

Representação por TF-IDF
1
2
3
4
5
6
7
Antôn
io
Bruto
César
Calpú
rnio
Cleóp
atra
perdã
o
traiçã
o
t1
Antônio e Cleópatra
5.3
1.2
8.6
0
2.9
1.5
2
t2
Júlio César
3.2
6.1
2.5
1.5
0
0
0
t3
A Tempestade
0
0
0
0
0
1.9
1
t4
Hamlet
0
1
1.5
0
0
0.1
4.2
t5
Otello
0
0
0.3
0
0
5.3
0.3
t6
Macbeth
0.4
0
0
0
0
0.9
1.9
Documentos como vetores
Vetor |v|-dimensional
 Termos são eixo no espaço
 Documentos são pontos dos vetores
neste espaço
 Alta dimensão: centenas/milhares de
dimensões quando se aplica a uma
grande coleção de texto
 Esparso – maioria das entradas é
zero

Identificando Documentos
Similares

Uso de medidas de similaridade
◦ Cosseno entre os vetores é uma métrica
representativa
 Sejam 𝑡1 e 𝑡2 dois vetores de documentos
cos 𝑡1 , 𝑡2 =
𝑡1 𝑡2
|𝑡1 ||𝑡2 |
 onde
◦ 𝑡1 𝑡2 =
𝑀
𝑖=1 𝑡1𝑖 𝑡2𝑖
e 𝑡 = 𝑡𝑡
M=7
Identificando Documentos Similares
1
2
3
4
5
Antô
nio
Bruto
Césa
r
Calp
úrnio
Cleó
patra
6
7
perdã traiçã
o
o
t1
Antônio e Cleópatra
5.3
1.2
8.6
0
2.9
1.5
2
t2
Júlio César
3.2
6.1
2.5
1.5
0
0
0
...
cos 𝑡1 , 𝑡2 =
𝑀
𝑖=1 𝑡1𝑖 𝑡2𝑖 =
𝑡1 𝑡2
=
|𝑡1 ||𝑡2 |
𝑀
𝑖=1 𝑡1𝑖 𝑡2𝑖
𝑡1 𝑡1 ∗ 𝑡2 𝑡2
=
45.8
10.9∗7.5
= 0.56
5.3 ∗ 3.2 + 1.2 ∗ 6.1 + 8.6 ∗ 2.5 + 0 ∗ 1.5 + 2.9 ∗ 0 + 1.5 ∗ 0 + 2 ∗
0 = 45.8
𝑡1 𝑡1 = 5.3 ∗ 5.3 + 1.2 ∗ 1.2 + 8.6 ∗ 8.6 + 0 ∗ 0 + 2.9 ∗ 2.9 + 1.5 ∗ 1.5 + 2 ∗ 2 =
10.9
𝑡2 𝑡2 = 3.2 ∗ 3.2 + 6.1 ∗ 6.1 + 2.5 ∗ 2.5 + 1.5 ∗ 1.5 + 0 ∗ 0 + 0 ∗ 0 + 0 ∗ 0 = 7.5
Identificando Documentos Similares
Antôn
io
Bruto
César
Calpú
rnio
Cleóp
atra
perdã
o
traiçã
o
t1
Antônio e Cleópatra
5.3
1.2
8.6
0
2.9
1.5
2
t2
Júlio César
3.2
6.1
2.5
1.5
0
0
0
t3
A Tempestade
0
0
0
0
0
1.9
1
t4
Hamlet
0
1
1.5
0
0
0.1
4.2
t5
Otello
0
0
0.3
0
0
5.3
0.3
t6
Macbeth
0.4
0
0
0
0
0.9
1.9
cos
cos
cos
cos
cos
𝑡1 , 𝑡2
𝑡1 , 𝑡3
𝑡1 , 𝑡4
𝑡1 , 𝑡5
𝑡1 , 𝑡6
= 0.56
= 0.21
= 0.46
= 0.19
= 0.31
cos
cos
cos
cos
𝑡2 , 𝑡3
𝑡2 , 𝑡4
𝑡2 , 𝑡5
𝑡2 , 𝑡6
= 0.00
= 0.29
= 0.02
= 0.08
cos 𝑡3 , 𝑡4 = 0.45
cos 𝑡3 , 𝑡5 = 0.91
cos 𝑡3 , 𝑡6 = 0.79
cos 𝑡4 , 𝑡5 = 0.09
cos 𝑡4 , 𝑡6 = 0.82
cos 𝑡5 , 𝑡6 = 0.47
Download

Mineração de Textos