classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...se uma palavra é...

59
1 Classificação de textos MCZA017-13 Processamento de Linguagem Natural Prof. Jesús P. Mena-Chalco [email protected] 2Q-2019

Upload: others

Post on 07-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

1

Classificação de textos

MCZA017-13Processamento de Linguagem Natural

Prof. Jesús P. Mena-Chalco

[email protected]

2Q-2019

Page 2: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

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: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

3

Bibliografia – Capítulo 6

https://web.stanford.edu/~jurafsky/slp3/

Page 4: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

4

Classificação == distribuição por classes, categorias ou grupos com características semelhantes.

Classificação de animais

Page 5: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

5

classificação de texto?

Text classification

Page 6: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

6

Categorização de textos: Corresponde à tarefa de classificar textos inteiros atribuindo um rótulo (de um conjunto finito de rótulos).

Page 7: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

7

Um sistema de categorização de textos: - Permite classificar novos documentos- Considera categorias pré-estabelecidas e documentos rotulados.

Page 8: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

8

Um sistema de classificação de emails

Classficação binária

Prezado ganhador,Super Desconto …Medicamentos ...

Page 9: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

9

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.

Page 10: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

10

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 11: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

11

Métodos de classificação:Usando regras

Uso de regras baseadas em palavras ou combinação de palavras (ou outras características)

Black-list-address OR (“dollars” AND “have been selected”)

A acurácia pode ser alta.Se as regras são definidas por especialista(s)

A manutenção/atualização das regras pode ser muito cara.

Page 12: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

12

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 13: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

13

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 14: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

14

Classificação de texto usando Naive Bayes

Aprendizado supervisionado

Page 15: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

15

Bag-of-words

Um documento pode ser representado como uma bag-of-words

Bag-of-words: Conjunto não-ordenado de palavras (desconsidera a gramática, mas mantendo a multiplicidade).

Page 16: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

16

Bag-of-words

Um documento pode ser representado como uma bag-of-words

Bag-of-words: Conjunto não-ordenado de palavras (desconsidera a gramática, mas mantendo a multiplicidade).

Page 17: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

17

Bag-of-visual-words (em imagens)

Page 18: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

18

Bag-of-words em classificação de textos

Tópicos de ciência da computação

Page 19: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

19

Classificador Naive Bayes

Conhecida também como Classificador Bayesiano “simples” ou “ingênuo”.

É um classificador probabilístico.

Usa a representação de textos como bag-of-words.

É considerado ingênuo porque considera os atributos condicionalmente independentes (i.e., o valor de um atributo não está relacionado ao valor de um outro atributo).

Documento

Probabilidade condicional dado um documento d

A melhor classe

Page 20: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

20

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 21: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

21

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 22: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

22

Classificador Bayesiano “ingênuo”:Aprendizado (treinamento)

Page 23: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

23

Treinamento

Considerando um conjunto de dados de treinamento (corpus rotulado) composto de N

doc:

Ex. (doc1, c

6), (doc

2, c

5), (doc

3, c

1), … (doc

N, c

2)

Page 24: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

24

Treinamento

Considerando um conjunto de dados de treinamento (corpus rotulado) composto de N

doc:

Ex. (doc1, c

6), (doc

2, c

5), (doc

3, c

1), … (doc

N, c

2)

Número de documentoscuja classe é igual a c

Número de documentostotais (no treinamento)

Page 25: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

25

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 26: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

26

Treinamento

V é o vocabulário de todo o corpus (ie., de todaspalavras de todos os documentos)

Page 27: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

27

Corpus:

Treinamento

V é o vocabulário de todo o corpus (ie., de todaspalavras de todos os documentos)

Page 28: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

28

Treinamento

Qual seria o valor de P(wx|c) quando w

x é palavra

desconhecida no treinamento?

Page 29: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

29

Treinamento

Qual seria o valor de P(wx|c) quando w

x é palavra

desconhecida no treinamento?

Zero! (não importando os outros termos)

Page 30: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

30

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 31: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

31

Page 32: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

32

Se uma palavra é desconhecidano treinamento, então será

desconsiderada (solução padrão)

Page 33: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

33

Atividade

Page 34: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

34

Atividade 1

Considere o seguinte corpus (conjunto de treinamento) contendo duas classes (c

1=’pos’ e c

2=’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 35: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

35

Atividade 1

Page 36: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

36

Atividade 1

S = “predictable with no fun”

S deve ser classificada como ‘neg’

Page 37: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

37

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}

Page 38: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

38

('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, …

Testando: predictable with no funTeste 1: neg

Page 39: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

39

Atividade 2

Classe ‘Pos’ Classe ‘Neg’

I 0.09 0.16

always 0.07 0.06

like 0.29 0.06

foreign 0.04 0.15

films 0.08 0.11

“I always like foreign films”

Considere a mesma probabilidades à priori para cada classe.

P(‘Pos’) = 0.00000585

P(‘Neg’) = 0.00000950

Page 40: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

40

Considerações finais

Page 41: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

41

1) Aplicações

Atribuição de categorias, tópicos ou generos.

Detecção de SPAM.

Identificação de autoria de escrita.

Identificação de idade do autor do texto.

Identificação de idioma.

Análise de sentimentos em texto.

Page 42: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

42

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ível

neg 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 43: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

43

TESTE

Neg "eu não gosto do meu trabalho"Neg "eu não estou me sentindo bem hoje"Pos "eu me sinto incrível"Pos "Roberto é um amigo meu"Neg "eu não posso acreditar que estou fazendo isso"

Opiniões em português?

Page 44: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

44

Identificar idioma?

Page 45: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

45

Classificar notícias?

Page 46: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

46

Identificar disciplina?

Page 47: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

47

2) Text categorization

Patentes

Google Ngram

Page 48: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

48

2) Categorization usando apenas texto?

Page 49: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

49

Sobre o projeto

Page 50: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

50

Page 51: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

51

Page 52: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

52

Page 53: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

53

Sobre revisão bibliográfica

20192014

Page 54: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

54

Just Google it?

“Which of the following search engines, websites or databases do you use?”

Fonte: Kemman, M., Kleppe, M. and Scagliola, S., 2014. Just Google It. In Proceedings of the Digital Humanities Congress 2012. HRI Online Publications.

Page 55: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

55

Just Google it?

“How much do you trust the following search engines”

Fonte: Kemman, M., Kleppe, M. and Scagliola, S., 2014. Just Google It. In Proceedings of the Digital Humanities Congress 2012. HRI Online Publications.

Page 56: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

56

Sobre os ombros de gigantes?

Google, pode não cobrir todas as fontes relevantes (cobre a maioria).

Apenas evidências: Com o google (a partir de 2004)

O impacto de revistas que não são da “elite” aumentou.O impacto de artigos antigos aumentou.

Artigos são indexados pelo seu título (e search snippets) dando menor ênfase para a revista onde foram publicados

Artigos com maior número de citações apresentam maior ranking. → “Efeito Mateus” / “Rico fica mais rico”.

Page 57: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

57

Principais plataformas e bases de dados

Para computação:

DBLP (computer science bibliography): http://dblp.uni-trier.de

ACM Digital library: http://dl.acm.org/dl.cfm

IEEE Computer society digital library: https://www.computer.org/csdl

Arxiv: Computing research repository: https://arxiv.org/corr

Portal de Periódicos CAPES: http://www.periodicos.capes.gov.br

Scielo: http://www.scielo.br

Semantic scholar: https://www.semanticscholar.org

CiteSeerX: http://csxstatic.ist.psu.edu

Page 58: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

58

Semantic scholar

Page 59: Classificação de textosprofessor.ufabc.edu.br/~jesus.mena/courses/pln-2q-2019/...Se uma palavra é desconhecida no treinamento, então será desconsiderada (solução padrão) 33

59

Baidu scholar