normalização de texto: stemming -...

43
1 Normalização de texto: Stemming MCZA017-13 Processamento de Linguagem Natural Prof. Jesús P. Mena-Chalco [email protected] 1Q-2018

Upload: donhu

Post on 24-Dec-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

1

Normalização de texto: Stemming

MCZA017-13Processamento de Linguagem Natural

Prof. Jesús P. Mena-Chalco

[email protected]

1Q-2018

Page 2: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

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: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

3

Bibliografia – Capítulo 2

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

Page 4: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

4

Da aula anterior... Normalização de palavras

Page 5: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

5

Um sistema de busca deve permitir que documentos indexados com diferentes nomes sejam recuperados usando quaisquer das suas formas de escrita.

Page 6: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

6

Normalizando as palavras

Em textos da língua portuguesa temos diferentes palavras flexionadas em gênero, número ou grau, além de inúmeros tempos verbais distintos.

Trabalhor TrabalhadoraDegrau DegrausAmigo Amigão

A “normalização de palavras” pode ser entendida como a redução ou a simplificação ou a radicalização de palavras.

Duas técnicas mais imporantes

StemmingLemmatization

Page 7: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

7

Stemming

O processo de stemming consiste em reduzir a palavra à sua raiz (sem levar em conta a classe gramatical)

amig : amigo, amiga, amigão gat : gato, gata, gatos, gatas

Stemming geralmente refere-se a um processo de heurística que corta as extremidades das palavras inclui frequentemente a remoção de afixos derivacionais.

→ Pode ser representado por um conjunto de regras que dependem da linguagem.

Page 8: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

8

Stemming

for example compressed

and compression are both accepted as equivalent to compress.

for exampl compress and compress ar both

accept as equival to compress

Page 9: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

9

Exemplo

Computationally

Computational

Computation

Computa

Comput ← Não confunda, não é a raiz da palavra (da forma linguistica)

← A palavra pode não ter significado

Page 10: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

10

Stemming x Lemmatization

Stemming (a ação de reduzir em stems)

Stem: Parte de uma palavraStemmer: O artefato (programa)Algorithm for stemming

Lemmatization (a ação de reduzir em Lemmas)Lemma: Forma básica da palavraLemmatizer: O artefato (programa)Algorithm for lemmatization

Produc

Produce

Produced

Page 11: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

11

Algoritmos de Stemming

Existem diferentes algoritmos: Principalmente para o inglês!

Page 12: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

12

Algoritmo de Lovins

Composto por 294 sufixos, 29 condições e 34 regras de transformação.

O processamento é rápido:

apenas 2 etapas.

O algoritmo pioneiro e influenciador de muitos stemmers:

Lovins, Julie Beth. (1968). Development of a stemming algorithm. Mech. Translat. & Comp. Linguistics, 11(1-2), 22-31.

Page 13: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

13

Algoritmo de Lovins

294 sufixos

...

Condição Comprimento

(I) Procurar pelo sufixo de maior tamanho na palavra e que satisfaz a(s) condições → remover

Page 14: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

14

Algoritmo de Lovins

29 condições

Implícito:O comprimento mínimo do tem deve ser igual a 2

Page 15: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

15

Algoritmo de Lovins

34 regras

(II) As regras são aplicadas para transformar o final. Aplicadas se um sufixo é removido ou não na primeira etapa.

Page 16: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

16

Atividade prática

Page 17: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

17

Atividade prática

National Após remoção do sufixo “ional”: Nat

Nenhuma regra de transformação identificada

Resultado: Nat

Nationally Após remoção do sufixo “tionally”: Nat

Nenhuma regra de transformação identificada

Resultado: Nat

Sitting Após remoção do sufixo “ing”: Sitt

Regra de transformação 1 (eliminar uma t)

Resultado: Sit

Matrix Nenhuma remoção de sufixo

Regra de transformação 16 (ix → ic)

Resultado: Matric

Matrices Após remoção do sufixo “es”: Matric

Nenhuma regra de transformação identificada

Resultado: Matric

Magnesium Após remoção do sufixo “ium”: Magnes

Nenhuma regra de transformação identificada

Resultado: Magnes

Rubbing Após remoção do sufixo “ing”: Rubb

Regra de transformação 1 (eliminar uma b)

Resultado: Rub

Page 18: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

18

Algoritmo de Lovins

Page 19: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

19

Algoritmos de Stemming para inglês

1968: Lovins

1980: Porter

Os dois algoritmos eliminam/removem consecutivamente os finais das palavras.

Para cada palavra não é requerido conhecimento à priori para a sua redução.

Lovins, Julie Beth. (1968). Development of a stemming algorithm. Mech. Translat. & Comp. Linguistics, 11(1-2), 22-31.

Porter, Martin. F. (1980). An algorithm for suffix stripping. Program, 14(3), 130-137.

Page 20: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

20

Algoritmo de Martin F. Porter

Porter, Martin. F. (1980). An algorithm for suffix stripping. Program, 14(3), 130-137.

Inicialmente publicado em um relatório de projeto final de Recuperação de Informação

C.J. van Rijsbergen, S.E. Robertson and M.F. Porter, 1980. New models in probabilistic information retrieval. London: British Library. (British Library Research and Development Report, no. 5587).

O algoritmo é mais completo e mais “simples” do que Julie Lovins

O stemmer mais utilizado atualmente.

1944-Cambridge

Page 21: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

21

Algoritmo de Martin F. Porter

Todos os 5 passos foram bem definidos:

Usa-se regras e operação de validação

Similar ao de Lovins: Cada palavra é comparada sequencialmente com o maior sufixo possível.

Casou o sufixo → Remove-lo da palavra.

Exemplo:

106, "ed", LAMBDA, 1, -1, -1, ContainsVowel

Id. de regra

Sufixo

Substituição |substituição|-1 Função de validação: A raiz deve ter uma vogal

|sufixo|-1

Tamanho minimo da raiz (quando eliminado o sufixo) deve ser igual a 3 caracteres

Page 22: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

22

Algoritmo de Martin F. Porter

106, "ed", LAMBDA, 1, -1, -1, ContainsVowel

Shared → Shar

Shed → Shed (não “Sh” – tamanho 2 sem vogal

Id. de regra

Sufixo

Substituição |substituição|-1 Função de validação: A raiz deve ter uma vogal

|sufixo|-1

Tamanho minimo da raiz (quando eliminado o sufixo) deve ser igual a 3 caracteres

Page 23: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

23

Algoritmo de Martin F. Porter

Passo 1a

sses → ss (caresses → caress)

ies → i (ponies → poni)

s → “” (cats → cat)

Passo 1b

(m>1) eed → ee (agreed → agree)

(*v*) ed → “” (plastered → plaster)

Pelo menos 1 consoante

A raiz deve conter vogal

Page 24: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

24

Em laboratório

Page 25: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

25

Em laboratório

Page 26: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

26

Em laboratório

Page 27: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

27

Algoritmo de Porter

https://tartarus.org/martin/PorterStemmer/

Page 28: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

28

Algoritmos de Stemming para Português

2001: Orengo

Primeira versão amplamente divulgada de um algoritmo de radicalização para a língua portuguesa:

Constituído por 199 regras distribuídas por 8 passos.Considera uma lista de excepções:

Orengo, Viviane Moreira, & Huyck, Christian. (2001). A stemming algorithm for the portuguese language. In String Processing and Information Retrieval, 2001. SPIRE 2001. Proceedings. Eighth International Symposium on (pp. 186-193). IEEE.

Middlesex UniversityUFRGS

Page 29: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

29

Algoritmo de Orengo

Page 30: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

30

Algoritmo de Orengo

Page 31: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

31

Outras propostas

Page 32: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

32

Recursos: Python - NLTK

http://text-processing.com/demo/stem/

Page 33: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

33

Comparação entre palavras únicas:- Sem radicalização- Com radicalização

Page 34: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

34

Comparando resultados

não é ist umasátir em pros.

esboç liter apanh na projeç sutil do caract , dou aqu apen uma reproduç do tip a que ch em meufal sec depros novat — fanc liter .

não é isto uma sátira em prosa.

esboço literárioapanhado nasprojeções sutisdos caracteres, dou aqui apenas uma reprodução do tipo a que chamo em meu falar seco de prosador novato — fanqueiro literário.

Page 35: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

35

Comparando resultados

Page 36: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

36

Algumas considerações não discutidas sobre os stemmers!

Page 37: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

37

1) Uso de uma base de dados?

Poderia se utilizado uma se dados (dicionário) para comparar as palavras reduzidas.

Entretanto, esse procedimento requerirá maior tempo de processamento computacional.

Mesmo consumindo maior tempo, o esforço investido poderia não valer a pena.

Harman, D., & Candela, G. (1990). Retrieving records from a gigabyte of text on a minicomputer using statistical ranking. Journal of the American Society for Information Science, 41(8), 581.

Page 38: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

38

2) Por que não eliminar prefixos?

Não ha nenhum motivo teórico para não considerar a eliminação de prefixos nos stemmers:

ArquiduqueProtótipoContradizerUltraleve

Page 39: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

39

3) stemming na literatura

Page 40: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

40

4) Perda de detalhe ou informação?

O algoritmo de stemming não deveria permitir a perda de muita informação:

Poder → PoVer → VeChamo → Ch

National → Na

Versão original do algoritmo de PorterAs → AIs → I

Page 41: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

41

4) Perda de detalhe ou informação?

Medidas de desempenho

Overstemming

Quando é removido não só o sufixo, mas também uma parte do radical

Understemming

Quando o sufixo não é removido, ou é apenas removido parcialmente

Page 42: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

42

5) Stemmer para nomes?

Ideia para um projeto final?

Pedrão → PedroGuilherme → GuiRoberto → Rob

Page 43: Normalização de texto: Stemming - professor.ufabc.edu.brprofessor.ufabc.edu.br/~jesus.mena/courses/pln-1q-2018/PLN-aula04.pdf · Da aula anterior... Normalização de palavras

43

Sobre Lemmatisation

O processo de lemmatisation consiste aplicar uma técnicas para deflexionar as palavras (retira a conjugação verbal, caso seja um verbo, e altera os substantivos e os adjetivos para o singular masculino, de maneira a reduzir a palavra até sua forma de dicionário)

amigo : amigo, amiga, amigão gato : gato, gata, gatos, gataster : tinha, tenho, tiver, tem

Lemmatisation geralmente usa um dicionário de palavras (a heurística é mais sofisticada).