DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf ·...
Transcript of DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf ·...
![Page 1: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/1.jpg)
DATA MINING & MACHINE LEARNING (I)
Thiago Marzagao
![Page 2: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/2.jpg)
transformando textos em dados
I Documento 1: “Nao trabalho para ter clientes; tenho clientespara poder trabalhar.”
I Documento 2: “Nao se pode forcar a inteligencia a trabalhar.”
![Page 3: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/3.jpg)
transformando textos em dados
I Como transformar textos em dados?
I R: Contar as ocorrencias de cada palavra, em cadadocumento.
![Page 4: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/4.jpg)
transformando textos em dados
I Como transformar textos em dados?
I R: Contar as ocorrencias de cada palavra, em cadadocumento.
![Page 5: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/5.jpg)
bag of words
I Documento 1: “Nao trabalho para ter clientes; tenho clientespara poder trabalhar.”
I Documento 2: “Nao se pode forcar a inteligencia a trabalhar.”
Nao trabalho para ter clientes tenho poder trabalhar se pode forcar a inteligencia
1 1 2 1 2 1 1 1 0 0 0 0 0
1 0 0 0 0 0 0 1 1 1 1 2 1
![Page 6: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/6.jpg)
transformando textos em dados
I Documento 1: “Nao trabalho para ter clientes; tenho clientespara poder trabalhar.”
I Documento 2: “Nao se pode forcar a inteligencia a trabalhar.”
Nao trabalho para ter clientes tenho poder trabalhar se pode forcar a inteligencia
1 1 2 1 2 1 1 1 0 0 0 0 0
1 0 0 0 0 0 0 1 1 1 1 2 1
I O resultado e uma matriz de termos-frequencias. Dimensoes:qtde. de documentos, qtde. de palavras (no exemplo acima:2, 13).
![Page 7: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/7.jpg)
transformando textos em dados
I Documento 1: “Nao trabalho para ter clientes; tenho clientespara poder trabalhar.”
I Documento 2: “Nao se pode forcar a inteligencia a trabalhar.”
Nao trabalho para ter clientes tenho poder trabalhar se pode forcar a inteligencia
1 1 2 1 2 1 1 1 0 0 0 0 0
1 0 0 0 0 0 0 1 1 1 1 2 1
I O resultado e uma matriz de termos-frequencias. Dimensoes:qtde. de documentos, qtde. de palavras (no exemplo acima:2, 13).
I Ordem das palavras nao importa (bag of words).
![Page 8: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/8.jpg)
transformando textos em dados
I Documento 1: “Nao trabalho para ter clientes; tenho clientespara poder trabalhar.”
I Documento 2: “Nao se pode forcar a inteligencia a trabalhar.”
Nao trabalho para ter clientes tenho poder trabalhar se pode forcar a inteligencia
1 1 2 1 2 1 1 1 0 0 0 0 0
1 0 0 0 0 0 0 1 1 1 1 2 1
I O resultado e uma matriz de termos-frequencias. Dimensoes:qtde. de documentos, qtde. de palavras (no exemplo acima:2, 13).
I Ordem das palavras nao importa (bag of words).
I Cada documento e uma amostra. Cada palavra e um atributo.
![Page 9: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/9.jpg)
transformando textos em dados
I Documento 1: “Nao trabalho para ter clientes; tenho clientespara poder trabalhar.”
I Documento 2: “Nao se pode forcar a inteligencia a trabalhar.”
Nao trabalho para ter clientes tenho poder trabalhar se pode forcar a inteligencia
1 1 2 1 2 1 1 1 0 0 0 0 0
1 0 0 0 0 0 0 1 1 1 1 2 1
I O resultado e uma matriz de termos-frequencias. Dimensoes:qtde. de documentos, qtde. de palavras (no exemplo acima:2, 13).
I Ordem das palavras nao importa (bag of words).
I Cada documento e uma amostra. Cada palavra e um atributo.
I Cada documento pode estar associado a um y, que pode sercategorico ou contınuo (“livro XYZ”, “2,57”, “portugues”,“autor XYZ”, etc).
![Page 10: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/10.jpg)
transformando textos em dados
I Documento 1: “Nao trabalho para ter clientes; tenho clientespara poder trabalhar.”
I Documento 2: “Nao se pode forcar a inteligencia a trabalhar.”
Nao trabalho para ter clientes tenho poder trabalhar se pode forcar a inteligencia
1 1 2 1 2 1 1 1 0 0 0 0 0
1 0 0 0 0 0 0 1 1 1 1 2 1
I O resultado e uma matriz de termos-frequencias. Dimensoes:qtde. de documentos, qtde. de palavras (no exemplo acima:2, 13).
I Ordem das palavras nao importa (bag of words).
I Cada documento e uma amostra. Cada palavra e um atributo.
I Cada documento pode estar associado a um y, que pode sercategorico ou contınuo (“livro XYZ”, “2,57”, “portugues”,“autor XYZ”, etc).
I ...exatamente igual a todos os datasets (imaginarios e reais)que discutimos ate agora na disciplina
![Page 11: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/11.jpg)
transformando textos em dados
I Documento 1: “Nao trabalho para ter clientes; tenho clientespara poder trabalhar.”
I Documento 2: “Nao se pode forcar a inteligencia a trabalhar.”
Nao trabalho para ter clientes tenho poder trabalhar se pode forcar a inteligencia
1 1 2 1 2 1 1 1 0 0 0 0 0
1 0 0 0 0 0 0 1 1 1 1 2 1
I O resultado e uma matriz de termos-frequencias. Dimensoes:qtde. de documentos, qtde. de palavras (no exemplo acima:2, 13).
I Ordem das palavras nao importa (bag of words).I Cada documento e uma amostra. Cada palavra e um atributo.I Cada documento pode estar associado a um y, que pode ser
categorico ou contınuo (“livro XYZ”, “2,57”, “portugues”,“autor XYZ”, etc).
I ...exatamente igual a todos os datasets (imaginarios e reais)que discutimos ate agora na disciplina
I ...o que nos permite usar regressao, classificacao, clusterizacao
![Page 12: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/12.jpg)
aplicacoes comuns
I Identificar automaticamente o autor de um documento(classificacao).
I Agrupar um conjunto de documentos por autores ou topicos(clusterizacao).
I Prever a “positividade” ou “negatividade” de um documento(regressao).
![Page 13: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/13.jpg)
aplicacoes comuns
I Identificar automaticamente o autor de um documento(classificacao).
I Agrupar um conjunto de documentos por autores ou topicos(clusterizacao).
I Prever a “positividade” ou “negatividade” de um documento(regressao).
![Page 14: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/14.jpg)
aplicacoes comuns
I Identificar automaticamente o autor de um documento(classificacao).
I Agrupar um conjunto de documentos por autores ou topicos(clusterizacao).
I Prever a “positividade” ou “negatividade” de um documento(regressao).
![Page 15: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/15.jpg)
transformando textos em dados: textos curtos e longos
I E difıcil comparar documentos de tamanhos muito diferentes.
I Imagine 2 textos com as mesmas palavras, mas texto 1 temdois paragrafos e texto 2 tem 400 paginas.
I Solucao: normalizar cada vetor.
I L1: usar frequencias relativas em vez de absolutas.
I L2: dividir cada elemento do vetor pelo comprimento do vetor.
I Exemplo: v = [3; 10; 4]
I Comprimento de v =√32 + 102 + 42 = 11, 38
I v normalizado =
[3
11, 38;
10
11, 38;
4
11, 38
]= [0, 26; 0, 89; 0, 35]
![Page 16: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/16.jpg)
transformando textos em dados: textos curtos e longos
I E difıcil comparar documentos de tamanhos muito diferentes.
I Imagine 2 textos com as mesmas palavras, mas texto 1 temdois paragrafos e texto 2 tem 400 paginas.
I Solucao: normalizar cada vetor.
I L1: usar frequencias relativas em vez de absolutas.
I L2: dividir cada elemento do vetor pelo comprimento do vetor.
I Exemplo: v = [3; 10; 4]
I Comprimento de v =√32 + 102 + 42 = 11, 38
I v normalizado =
[3
11, 38;
10
11, 38;
4
11, 38
]= [0, 26; 0, 89; 0, 35]
![Page 17: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/17.jpg)
transformando textos em dados: textos curtos e longos
I E difıcil comparar documentos de tamanhos muito diferentes.
I Imagine 2 textos com as mesmas palavras, mas texto 1 temdois paragrafos e texto 2 tem 400 paginas.
I Solucao: normalizar cada vetor.
I L1: usar frequencias relativas em vez de absolutas.
I L2: dividir cada elemento do vetor pelo comprimento do vetor.
I Exemplo: v = [3; 10; 4]
I Comprimento de v =√32 + 102 + 42 = 11, 38
I v normalizado =
[3
11, 38;
10
11, 38;
4
11, 38
]= [0, 26; 0, 89; 0, 35]
![Page 18: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/18.jpg)
transformando textos em dados: textos curtos e longos
I E difıcil comparar documentos de tamanhos muito diferentes.
I Imagine 2 textos com as mesmas palavras, mas texto 1 temdois paragrafos e texto 2 tem 400 paginas.
I Solucao: normalizar cada vetor.
I L1: usar frequencias relativas em vez de absolutas.
I L2: dividir cada elemento do vetor pelo comprimento do vetor.
I Exemplo: v = [3; 10; 4]
I Comprimento de v =√32 + 102 + 42 = 11, 38
I v normalizado =
[3
11, 38;
10
11, 38;
4
11, 38
]= [0, 26; 0, 89; 0, 35]
![Page 19: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/19.jpg)
transformando textos em dados: textos curtos e longos
I E difıcil comparar documentos de tamanhos muito diferentes.
I Imagine 2 textos com as mesmas palavras, mas texto 1 temdois paragrafos e texto 2 tem 400 paginas.
I Solucao: normalizar cada vetor.
I L1: usar frequencias relativas em vez de absolutas.
I L2: dividir cada elemento do vetor pelo comprimento do vetor.
I Exemplo: v = [3; 10; 4]
I Comprimento de v =√32 + 102 + 42 = 11, 38
I v normalizado =
[3
11, 38;
10
11, 38;
4
11, 38
]= [0, 26; 0, 89; 0, 35]
![Page 20: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/20.jpg)
transformando textos em dados: textos curtos e longos
I E difıcil comparar documentos de tamanhos muito diferentes.
I Imagine 2 textos com as mesmas palavras, mas texto 1 temdois paragrafos e texto 2 tem 400 paginas.
I Solucao: normalizar cada vetor.
I L1: usar frequencias relativas em vez de absolutas.
I L2: dividir cada elemento do vetor pelo comprimento do vetor.
I Exemplo: v = [3; 10; 4]
I Comprimento de v =√32 + 102 + 42 = 11, 38
I v normalizado =
[3
11, 38;
10
11, 38;
4
11, 38
]= [0, 26; 0, 89; 0, 35]
![Page 21: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/21.jpg)
transformando textos em dados: textos curtos e longos
I E difıcil comparar documentos de tamanhos muito diferentes.
I Imagine 2 textos com as mesmas palavras, mas texto 1 temdois paragrafos e texto 2 tem 400 paginas.
I Solucao: normalizar cada vetor.
I L1: usar frequencias relativas em vez de absolutas.
I L2: dividir cada elemento do vetor pelo comprimento do vetor.
I Exemplo: v = [3; 10; 4]
I Comprimento de v =√32 + 102 + 42 = 11, 38
I v normalizado =
[3
11, 38;
10
11, 38;
4
11, 38
]= [0, 26; 0, 89; 0, 35]
![Page 22: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/22.jpg)
transformando textos em dados: textos curtos e longos
I E difıcil comparar documentos de tamanhos muito diferentes.
I Imagine 2 textos com as mesmas palavras, mas texto 1 temdois paragrafos e texto 2 tem 400 paginas.
I Solucao: normalizar cada vetor.
I L1: usar frequencias relativas em vez de absolutas.
I L2: dividir cada elemento do vetor pelo comprimento do vetor.
I Exemplo: v = [3; 10; 4]
I Comprimento de v =√32 + 102 + 42 = 11, 38
I v normalizado =
[3
11, 38;
10
11, 38;
4
11, 38
]= [0, 26; 0, 89; 0, 35]
![Page 23: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/23.jpg)
transformando textos em dados: textos curtos e longos
TF:
Nao trabalho para ter clientes tenho poder trabalhar se pode forcar a inteligencia
1 1 2 1 2 1 1 1 0 0 0 0 0
1 0 0 0 0 0 0 1 1 1 1 2 1
TF normalizada:
Nao trabalho para ter clientes tenho poder trabalhar se pode forcar a inteligencia
0,27 0,27 0,53 0,27 0,53 0,27 0,27 0,27 0 0 0 0 0
0,32 0 0 0 0 0 0 0,32 0,32 0,32 0,32 0,63 0,32
![Page 24: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/24.jpg)
transformando textos em dados: o peso de cada palavra
I A matriz de termos-frequencias (TF) da igual peso a todas aspalavras.
I I.e., na hora de regredir/classificar/clusterizar, “a”, “de”,“para”, “nao”, etc, tem peso igual a ”trabalho”, “clientes”,“inteligencia”, etc.
I Isso e ruim: palavras mais comuns (artigos, preposicoes, etc)deveriam ter peso menor, pois sao menos discriminantes.
I Solucao #1: ignorar palavras comuns como artigos epreposicoes (stopwords).
I E uma solucao bastante comum. E varios pacotes demineracao de textos ja vem com listas de stopwords p/diferentes idiomas.
I Ex.: NLTK (Python)
import nltkstopwords = nltk.corpus.stopwords.words(’portuguese’)
![Page 25: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/25.jpg)
transformando textos em dados: o peso de cada palavra
I Solucao #1: ignorar palavras comuns como artigos epreposicoes (stopwords).
I E uma solucao bastante comum. E varios pacotes demineracao de textos ja vem com listas de stopwords p/diferentes idiomas.
I Ex.: NLTK (Python)
import nltkstopwords = nltk.corpus.stopwords.words(’portuguese’)
![Page 26: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/26.jpg)
transformando textos em dados: o peso de cada palavra
I Mas quao comum precisa ser a palavra p/ ser consideradauma stopword?
I E o que fazer quando o problema concreto em maos e umproblema de estilometria? Nesses casos podemos estarinteressados justamente nas stopwords.
![Page 27: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/27.jpg)
transformando textos em dados: o peso de cada palavra
I Mas quao comum precisa ser a palavra p/ ser consideradauma stopword?
I E o que fazer quando o problema concreto em maos e umproblema de estilometria? Nesses casos podemos estarinteressados justamente nas stopwords.
![Page 28: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/28.jpg)
transformando textos em dados: o peso de cada palavra
I Solucao #2: usar TFIDF em vez de TF
![Page 29: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/29.jpg)
transformando textos em dados: o peso de cada palavra
I IDF = inverse document frequency
I IDFt = logN
dftI N = qtde. de documentos
I dft = qtde. de documentos em que o termo t aparece
I TFIDFt,d = TFt,d × IDFt
I O peso de cada termo (t):
I ... aumenta quando t aparece muitas vezes em poucosdocumentos
I ... diminui quando t aparece em muitos documentos
I ... diminui quando t aparece poucas vezes no documento
I I.e., o peso de t e maior quando t e mais discriminante.
![Page 30: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/30.jpg)
transformando textos em dados: o peso de cada palavra
I Documento 1: “Nao trabalho para ter clientes; tenho clientespara poder trabalhar.”
I Documento 2: “Nao se pode forcar a inteligencia a trabalhar.”TF (normalizada):
Nao trabalho para ter clientes tenho poder trabalhar se pode forcar a inteligencia
0,27 0,27 0,53 0,27 0,53 0,27 0,27 0,27 0 0 0 0 0
0,32 0 0 0 0 0 0 0,32 0,32 0,32 0,32 0,63 0,32
TFIDF:
Nao trabalho para ter clientes tenho poder trabalhar se pode forcar a inteligencia
0 0,08 0,16 0,08 0,16 0,08 0,08 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0,1 0,1 0,1 0,19 0,1
![Page 31: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/31.jpg)
transformando textos em dados: o peso de cada palavra
I Todo pacote decente de mineracao de dados tem uma funcaop/ gerar TFIDF.
I Exemplo: scikit-learn (Python)
from sklearn.feature extraction.text import TfidfVectorizer
tfidf maker = TfidfVectorizer()
documents = [‘Nao trabalho para ter clientes; tenho clientes parapoder trabalhar., ‘Nao se pode forcar a inteligencia a trabalhar.’]
tfidf = tfidf maker.fit transform(documents)
![Page 32: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/32.jpg)
transformando textos em dados: pre-processamento
I Caracteres especiais (caracteres acentuados, sımbolos, etc)frequentemente resultam em erros.
I E preciso descobrir qual o encoding (codificacao) dosdocumentos (UTF-8, Windows-1252, etc) e informar esseencoding p/ o pacote que vai carregar os dados.
![Page 33: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/33.jpg)
transformando textos em dados: pre-processamento
I As vezes nao queremos diferenciar entre, digamos, “trabalho”e “trabalhar”.
I Nesse caso substituımos a palavra por sua raiz: “trabalh”.
I O nome disso e lematizacao (stemming).
![Page 34: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/34.jpg)
transformando textos em dados: pre-processamento
I As vezes nao estamos interessados em determinadasexpressoes: “saia justa”, “processamento de linguagemnatural”, etc.
I Nesses casos podemos escolher trabalhar com bigramas,trigramas, etc, em vez de unigramas.
![Page 35: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/35.jpg)
minerando textos: similaridade do co-seno
I Como medir a similaridade entre dois documentos?
I Passo 1: vetorizar cada documento (bag of words,normalizacao, TFIDF).
I Passo 2: computar o produto escalar dos dois vetores.
I Esse produto e o co-seno do angulo entre os dois vetores.Quanto mais proximo de 0, mais diferentes os documentos;quanto mais proximo de 1, mais similares os documentos.
I (O co-seno varia, em tese, entre -1 e +1; mas quando se tratade documentos o co-seno e sempre nao-negativo, pois o TFou TFIDF nao tem elementos negativos.)
I Aplicacao comum: text retrieval (similaridade entre expressaopesquisada e documentos disponıveis.).
![Page 36: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/36.jpg)
minerando textos: similaridade do co-seno
I Como medir a similaridade entre dois documentos?
I Passo 1: vetorizar cada documento (bag of words,normalizacao, TFIDF).
I Passo 2: computar o produto escalar dos dois vetores.
I Esse produto e o co-seno do angulo entre os dois vetores.Quanto mais proximo de 0, mais diferentes os documentos;quanto mais proximo de 1, mais similares os documentos.
I (O co-seno varia, em tese, entre -1 e +1; mas quando se tratade documentos o co-seno e sempre nao-negativo, pois o TFou TFIDF nao tem elementos negativos.)
I Aplicacao comum: text retrieval (similaridade entre expressaopesquisada e documentos disponıveis.).
![Page 37: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/37.jpg)
minerando textos: similaridade do co-seno
I Como medir a similaridade entre dois documentos?
I Passo 1: vetorizar cada documento (bag of words,normalizacao, TFIDF).
I Passo 2: computar o produto escalar dos dois vetores.
I Esse produto e o co-seno do angulo entre os dois vetores.Quanto mais proximo de 0, mais diferentes os documentos;quanto mais proximo de 1, mais similares os documentos.
I (O co-seno varia, em tese, entre -1 e +1; mas quando se tratade documentos o co-seno e sempre nao-negativo, pois o TFou TFIDF nao tem elementos negativos.)
I Aplicacao comum: text retrieval (similaridade entre expressaopesquisada e documentos disponıveis.).
![Page 38: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/38.jpg)
minerando textos: similaridade do co-seno
I Como medir a similaridade entre dois documentos?
I Passo 1: vetorizar cada documento (bag of words,normalizacao, TFIDF).
I Passo 2: computar o produto escalar dos dois vetores.
I Esse produto e o co-seno do angulo entre os dois vetores.Quanto mais proximo de 0, mais diferentes os documentos;quanto mais proximo de 1, mais similares os documentos.
I (O co-seno varia, em tese, entre -1 e +1; mas quando se tratade documentos o co-seno e sempre nao-negativo, pois o TFou TFIDF nao tem elementos negativos.)
I Aplicacao comum: text retrieval (similaridade entre expressaopesquisada e documentos disponıveis.).
![Page 39: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/39.jpg)
minerando textos: similaridade do co-seno
I Como medir a similaridade entre dois documentos?
I Passo 1: vetorizar cada documento (bag of words,normalizacao, TFIDF).
I Passo 2: computar o produto escalar dos dois vetores.
I Esse produto e o co-seno do angulo entre os dois vetores.Quanto mais proximo de 0, mais diferentes os documentos;quanto mais proximo de 1, mais similares os documentos.
I (O co-seno varia, em tese, entre -1 e +1; mas quando se tratade documentos o co-seno e sempre nao-negativo, pois o TFou TFIDF nao tem elementos negativos.)
I Aplicacao comum: text retrieval (similaridade entre expressaopesquisada e documentos disponıveis.).
![Page 40: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/40.jpg)
minerando textos: similaridade do co-seno
I Como medir a similaridade entre dois documentos?
I Passo 1: vetorizar cada documento (bag of words,normalizacao, TFIDF).
I Passo 2: computar o produto escalar dos dois vetores.
I Esse produto e o co-seno do angulo entre os dois vetores.Quanto mais proximo de 0, mais diferentes os documentos;quanto mais proximo de 1, mais similares os documentos.
I (O co-seno varia, em tese, entre -1 e +1; mas quando se tratade documentos o co-seno e sempre nao-negativo, pois o TFou TFIDF nao tem elementos negativos.)
I Aplicacao comum: text retrieval (similaridade entre expressaopesquisada e documentos disponıveis.).
![Page 41: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/41.jpg)
minerando textos: analise de sentimentos
I Objetivo: medir “sentimento” de cada texto, ao longo dealguma escala: triste-feliz, satisfeito-insatisfeito, etc.
I Manualmente: lista de palavras que denotam sentimento erespectivos scores. Score do documento e o score medio desuas palavras.
I Automaticamente: documentos pre-scored como dataset detreinamento e entao regressao.
![Page 42: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/42.jpg)
minerando textos: analise de sentimentos
I Objetivo: medir “sentimento” de cada texto, ao longo dealguma escala: triste-feliz, satisfeito-insatisfeito, etc.
I Manualmente: lista de palavras que denotam sentimento erespectivos scores. Score do documento e o score medio desuas palavras.
I Automaticamente: documentos pre-scored como dataset detreinamento e entao regressao.
![Page 43: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/43.jpg)
minerando textos: analise de sentimentos
I Objetivo: medir “sentimento” de cada texto, ao longo dealguma escala: triste-feliz, satisfeito-insatisfeito, etc.
I Manualmente: lista de palavras que denotam sentimento erespectivos scores. Score do documento e o score medio desuas palavras.
I Automaticamente: documentos pre-scored como dataset detreinamento e entao regressao.
![Page 44: DATA MINING & MACHINE LEARNING (I)thiagomarzagao.com/assets/teaching/iesb/slides/textos1.pdf · 2020. 11. 16. · transformando textos em dados I Documento 1: \N~ao trabalho para](https://reader035.fdocument.pub/reader035/viewer/2022081411/60a831038cfc9c2f543bc776/html5/thumbnails/44.jpg)
exercıcios
I Notıcias (vamos fazer juntos).
I Tuıtes (voces sozinhos).