laboratório: classificação de...
TRANSCRIPT
![Page 1: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/1.jpg)
1
Laboratório:Classificação de textos
MCZA017-13Processamento de Linguagem Natural
Prof. Jesús P. Mena-Chalco
1Q-2018
![Page 2: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/2.jpg)
2
Bibliografia
Daniel Jurafsky & James H. Martin.Speech and language processing: An introduction to natural language processing, computational linguistics, and speech recognition. Pearson/Prentice Hall.
University of Colorado, Boulder
Stanford University
2000 2009
2019?
![Page 3: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/3.jpg)
3
Bibliografia – Capítulo 6
https://web.stanford.edu/~jurafsky/slp3/
![Page 4: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/4.jpg)
4
classificação de texto?
Text classification
![Page 5: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/5.jpg)
5
Classificação
Formalmente, a tarefa de classificação pode ser definida como:
Dada uma entrada x, eUm conjunto finito de classes Y = {y
1, y
2, … , y
n}
Determinar, para x, uma classe y que pertence a Y.
Em Classificação de texto:Dada uma entrada d, eUm conjunto finito de classes C = {c
1, c
2, … , c
n}
Determinar, para d, uma classe c que pertence a C.
Documento
Classe n
![Page 6: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/6.jpg)
6
Métodos de classificação:Usando Aprendizado de Máquina
dx
(d1,c
1)
(d2,c
15)
...(d
m,c
n)
(dx, c
i)
O desafio: Construir um classificador que seja capaz de mapear o novo documento d à sua classe correta c
i.
Ψ: d→ c
![Page 7: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/7.jpg)
7
Métodos de classificação:Usando Aprendizado de Máquina
Existe uma quantidade grande classificadores:
Naive Bayes
Regressão logística
Support-vector machines (SVM)
K-Nearest Neighbors (KNN)
![Page 8: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/8.jpg)
8
Classificação de texto usando Naive Bayes
Aprendizado supervisionado
![Page 9: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/9.jpg)
9
Bag-of-words
Um documento pode ser representado como uma bag-of-words
Bag-of-words: Conjunto não-ordenado de palavras (desonsidera a gramática, mas mantendo a multiplicidade).
![Page 10: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/10.jpg)
10
Classificador Naive Bayes
MAPMaximum a posteriori
O documento drepresentado por um
conjunto de características
Qual a probabilidadeda classe c aparecer
no corpus (treinamento)?
Simplificação ingênua mas na prática permite resolver grandes
problemas
![Page 11: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/11.jpg)
11
Classificador Naive Bayes
Para aplicar o classificador para a sequência: w1,w
2,w
3,…,w
n
Considerando bag-of-words(a posição da palavra não importa)
As probabilidades P(wi,c) são independentes
![Page 12: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/12.jpg)
12
Classificador Bayesiano “ingênuo”:Aprendizado (treinamento)
![Page 13: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/13.jpg)
13
Treinamento
Número de documentoscuja classe é igual a c
Número de documentostotais (no treinamento)
Corpus:
P(classe_verde) = 3/10
P(classe_vermelha) = 7/10
![Page 14: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/14.jpg)
14
Corpus:
Treinamento
V é o vocabulário de todo o corpus (ie., de todaspalavras de todos os documentos)
![Page 15: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/15.jpg)
15
Treinamento
Qual seria o valor de P(wx|c) quando w
x é palavra
desconhecida no treinamento?
Zero! (não importando os outros termos)
Alternativa:
Laplace add-1 smoothing
![Page 16: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/16.jpg)
16
![Page 17: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/17.jpg)
17
Se uma palavra é desconhecidano treinamento, então será
desconsiderada (solucção padrão)
![Page 18: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/18.jpg)
18
Prática 1: Implementar a função 'test’
![Page 19: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/19.jpg)
19
Prática 1: naiveBayes1.py
![Page 20: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/20.jpg)
20
Prática 1: naiveBayes1.py
neg just plain boringneg entirely predictable and lacks energyneg no surprises and very few laughspos very powerfulpos the most fun film of the summer
train1.txt
![Page 21: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/21.jpg)
21
Prática 1: naiveBayes1.py
![Page 22: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/22.jpg)
22
Prática 1: naiveBayes1.py
![Page 23: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/23.jpg)
23
Prática 1
S = “predictable with no fun”
S deve ser classificada como ‘neg’
Classe Texto
neg just plain boring
neg entirely predictable and lacks energy
neg no surprises and very few laughs
pos very powerful
pos the most fun film of the summer
![Page 24: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/24.jpg)
24
Prática 1: naiveBayes1.py
python3 naiveBayes1.py train1.txt Total: classes=2 documentos=5 vocabulario=20
{'few', 'very', 'fun', 'no', 'energy', 'plain', 'entirely', 'the', 'most', 'of', 'surprises', 'boring', 'predictable', 'just', 'lacks', 'powerful', 'film', 'summer', 'laughs', 'and'}
{'neg': ['just', 'plain', 'boring', 'entirely', 'predictable', 'and', 'lacks', 'energy', 'no', 'surprises', 'and', 'very', 'few', 'laughs'], 'pos': ['very', 'powerful', 'the', 'most', 'fun', 'film', 'of', 'the', 'summer']}
{'neg': 0.6, 'pos': 0.4}
{('just', 'neg'): 0.058823529411764705, ('entirely', 'neg'): 0.058823529411764705, ('boring', 'neg'): 0.058823529411764705, ('surprises', 'pos'): 0.034482758620689655, ('film', 'pos'): 0.06896551724137931, ('very', 'pos'): 0.06896551724137931, ('energy', 'pos'): 0.034482758620689655, ('no', 'pos'): 0.034482758620689655, ('plain', 'neg'): 0.058823529411764705, ('predictable', 'neg'): 0.058823529411764705, ('fun', 'pos'): 0.06896551724137931, ('few', 'pos'): 0.034482758620689655, ('very', 'neg'): 0.058823529411764705, ('the', 'neg'): 0.029411764705882353, ('lacks', 'pos'): 0.034482758620689655, ('and', 'pos'): 0.034482758620689655, ('predictable', 'pos'): 0.034482758620689655, … , ('plain', 'pos'): 0.034482758620689655}
Testando: predictable with no funTeste 1: neg
![Page 25: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/25.jpg)
25
Prática 1: naiveBayes1.py
![Page 26: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/26.jpg)
26
Prática 2: Opiniões em português?
pos eu amo esse sanduíchepos este é um lugar incrível!pos eu me sinto bem com essas cervejaspos este é o meu melhor trabalhopos que visão incrívelneg eu não gosto deste restauranteneg estou cansado dessas coisasneg não consigo lidar com issoneg ele é meu inimigo jurado!neg meu chefe é horrível
![Page 27: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/27.jpg)
27
Prática 1: .naiveBayes2.py
python3 .naiveBayes2.py train2.txt Total: classes=2 documentos=10 vocabulario=37
{'não', 'eu', 'este', 'com', 'consigo', 'o', 'esse', 'gosto', 'que', 'sanduíche', 'é', 'bem', 'restaurante', 'visão', 'cansado', 'chefe', 'estou', 'um', 'jurado', 'incrível', 'deste', 'trabalho', 'inimigo', 'melhor', 'meu', 'sinto', 'lugar', 'lidar', 'coisas', 'horrível', 'me', 'essas', 'cervejas', 'isso', 'amo', 'ele', 'dessas'}
{'neg': ['eu', 'não', 'gosto', 'deste', 'restaurante', 'estou', 'cansado', 'dessas', 'coisas', 'não', 'consigo', 'lidar', 'com', 'isso', 'ele', 'é', 'meu', 'inimigo', 'jurado', 'meu', 'chefe', 'é', 'horrível'], 'pos': ['eu', 'amo', 'esse', 'sanduíche', 'este', 'é', 'um', 'lugar', 'incrível', 'eu', 'me', 'sinto', 'bem', 'com', 'essas', 'cervejas', 'este', 'é', 'o', 'meu', 'melhor', 'trabalho', 'que', 'visão', 'incrível']}
{'neg': 0.5, 'pos': 0.5}…
Teste 1: neg Teste 2: neg Teste 3: neg Teste 4: pos Teste 5: pos Teste 6: neg
"a cerveja era boa""eu não gosto do meu trabalho""eu não estou me sentindo bem hoje""eu me sinto incrível""Roberto é um amigo meu""eu não posso acreditar que estou fazendo isso"
![Page 28: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/28.jpg)
28
Prática 3: Identificar idioma?
![Page 29: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/29.jpg)
29
Prática 3: .naiveBayes3.py
python3 .naiveBayes3.py capivara.csv
Total: classes=3 documentos=15 vocabulario=915
{'sp': 0.26666666666666666, 'pt': 0.4, 'eng': 0.3333333333333333}
Digite uma frase: es un animalResposta: sp
Digite uma frase: é um animalResposta: pt
Digite uma frase: it is an animalResposta: eng
Teste com outras frases.
Dependente do corpus!
![Page 30: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/30.jpg)
30
Prática 4: Classificar notícias?
![Page 31: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/31.jpg)
31
Prática 4: .naiveBayes3.py
python3 .naiveBayes3.py noticias.csv Total: classes=3 documentos=7 vocabulario=1709
{'Noticia-Fapesp': 0.42857142857142855, 'Noticia-Folha': 0.2857142857142857, 'Noticia-Sensacionalista': 0.2857142857142857}
Digite uma frase: importante para o desenvolvimento humanoResposta: Noticia-Fapesp
Digite uma frase: o procurador avaliará o casoResposta: Noticia-Folha
Digite uma frase: comemorar gol antes de tempoResposta: Noticia-Sensacionalista
![Page 32: Laboratório: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula10.pdf · neg estou cansado dessas coisas neg não consigo lidar com isso neg](https://reader031.vdocuments.pub/reader031/viewer/2022020317/5bd9dcae09d3f2f6758b7ab4/html5/thumbnails/32.jpg)
32
Prática 5: Identificar disciplina?
Modifique o programa anterior Para listar as 5 classes com Maior probabilidade
Catalogo.csv