Sei sulla pagina 1di 29

Natural Language Processing

Estudio realizado por


E. G. Ortiz-Garca

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Indice
1 Introducci
on
2 Morfologa
3 Correcci
on de errores
4 N-grams
5 Tagging
6 Context-Free Grammar (CFG)

2/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Introduccion

Definicion
Natural - Para quien?
Language - Dice cosas, aunque quizas no las entiendas
Processing - Haz todo lo que puedas para darme mucho

Aplicaciones
Extracci
on de informaci
on
Motores de b
usqueda
Traducci
on
Sistemas de reconocimiento de voz
Interfaces
Clasificaci
on de textos
etc.

3/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Introduccion

Competiciones Kaggle
EMC Israel Data Science Challenge ($10,000)
CPROD1: Consumer products contest 1 ($10,000)
Heritage Health Prize ($3,000,000)
The Hewlett Foundation: Short Answer Scoring ($100,000)
The Hewlett Foundation: Automated Essay Scoring ($100,000)
GigaOM WordPress Challenge ($10,000)
Detecting Insults in Social Commentary ($10,000)
Facebook 2 - Mapping the Internet

4/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Descripcion
Estudio de la formaci
on de las palabras a partir de morfemas.
Tipos
Inflectional - Palabras con misma raz, manteniendo el tipo de palabra
resultante.
Derivational - Fusi
on de raz + morfema que forman una palabra de
diferente tipo.

Aplicaciones
Parsing morfol
ogico - Descomposici
on en estructuras simples (raz,
prefijos, sufijos, afijos, tiempo verbal, etc).
Reducir tiempo de b
usqueda, an
alisis o agregaci
on de palabras.
Reducir almacenamiento.

Stemming - B
usqueda de las races de las palabras.
Clasificar POS de cada palabra
5/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Reconocimiento morfologico
Comprobar si una palabra pertenece al lenguaje o no
Se necesita
Lexico - Conjunto de posibles races y afijos
Morphotactics - Reglas que indican que morfemas puedes seguir a otros
Reglas ortograficas o de spelling - Modelar cambios en los morfemas
cuando estos se unen

Representacion de la morfologa
Bruta - Cada posible palabra por separado
Aut
omatas de estados finitos

6/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Parsing morfologico
Transformar una palabra en su raz mas modificadores y vice.
Finite State Transducer (FST)
Q - Estados
- Conjunto de pares mapeados (i:o)
(q, i : o) - Funci
on de transici
on

Propiedades
Inversi
on - Intercambio de alfabetos de entra y salida
Composici
on - Se pueden concatenar para formar un FST mas complejo

Transformacion entre niveles


Lexical - Representaci
on mediante morfemas
Ej. fox + N + PL
Intermediate Representaci
on con reglas morfol
ogicas incluidas
Ej. fox + + s + #
Surface - Representaci
on con reglas ortograficas incluidas
Ej. foxes
7/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Descripcion

Objetivo
Detectar y/o corregir palabras que probablemente esten mal por otras
que probablemente esten mejor.

Aplicaciones
Optical character recognition (OCR)
Handwriting recognition
Dise
no de interfaces

Tipos
Detecci
on de errores en palabras desconocidas
Correcci
on de palabras desconocidasde manera ciega
Detecci
on y correcci
on basada en contexto

8/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Errores simples

Basado en un algoritmo en (Kernighan 1990)


Dos pasos
Proposici
on de correcciones posibles
Asume un u
nico error (inserci
on, borrado, substituci
on o trasposici
on)
que da lugar a una palabra

Scoring de las correcciones


Medir p(t/c)p(c)
c - palabra corregida (corpus palabras)
t - Error producido en la palabra (corpus errores)

9/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Errores multiples

Minimum Edit Distance


Considerar m
ultiples errores en una palabra
Medir distancia entre cadenas
Algoritmo basado en programaci
on dinamica
Palabra objetivo (t1I ) y origen (s1J )
Construir tabla de distancias di,j = distance(t1i , s1j )
Ecuaci
on de
on
actualizaci

di1,j + cost inser(ti )


di,j = min di1,j1 + cost subs(sj , ti )

di,j1 + cost del(sj )

10/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Descripcion

Objetivo
Predecir siguiente palabra
Calculo de probabilidades

Aplicaciones
Reconocimiento de voz, escritura
Comunicaci
on aumentativa para discapacitados
Detecci
on de errores de spelling severos

Metodos
Unsmoothed N-grams
Smoothed N-grams = Unsmoothed + Smoothing technique

11/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Unsmoothed N-grams

Basados generalmente en corpus o corpora


M - N
umero de palabras total que lo componen
Precisi
on dependiente del tama
no y diversidad

Estimaciones
P(wi ) = 1/M
P(wi ) = c(wi )/M
i1
P(wi /wiN
)=

i
c(wiN
)
i1
c(wiN )

i
Que pasa si c(wiN
) = 0?

12/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Smoothing techniques
Add-one
c(wi ) + 1
M +V
V - N
umero de palabras distintas (types) posibles
Problema: Demasiada probabilidad de palabras nunca observadas
P(wi ) =

Written-Bell Discounting
T - N
umero de types vistas
Z - N
umero de types con ci = 0
X
T
P(wi ) =
T +M
ci =0

ci = 0
+ T)
P(wi ) = Z (M
c
i

ci > 0
M +T

13/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Smoothing techniques

Written-Bell Discounting
T (wi1 ) - N
umero de types vistas que empiezan por wi1
Z (wi1 ) - N
umero de types con ci = 0 que empiezan por wi1
X
T (wi1 )
P(wi /wi1 ) =
T (wi1 ) + M(wi1 )
c(wi1 ,wi )=0

T (wi1 )

c(wi1 , wi ) = 0

Z (wi1 )(M(wi1 ) + T (wi1 ))


P(wi /wi1 ) =
c(wi1 , wi )

c(wi1 , wi ) > 0

M(wi1 ) + T (wi1 )

14/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Smoothing techniques

Good-Turing Discounting
Nc - N de bigrams que aparecen c veces
Nc+1
c = (c + 1)
Nc
Cambiando c por c
c
P(wi ) = P
j cj

Deleted Interpolation
i /wi1 ) = 1 (wi1 )P(wi /wi1 , wi ) + 2 (wi1 )P(wi )
P(w
con
P
i >= 0, i i = 1
i estimadas mediante ML con EM en Hold-out corpus

15/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Smoothing techniques

Katz Back-off
i
i
Si c(wiN
) = 0, uso c(wiN+1
)
Utilizando alg
un
m
e
todo
de
discounting

c (wi , wi1 )

c(wi1 )
i /wi1 ) =
P(w
P(wi )

(wi1 ) P
c(wi )=0 P(wi )
donde
X
c (wi1 , wi )
(wi1 ) = 1
c(wi1 )

c(wi1 , wi ) > 0
eoc

c(wi1 ,wi )>0

16/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Definicion

Objetivo
Determinar el POS de cada palabra de una sentencia

Aplicaciones
Paso inicial al analisis sintactico
Sintetizadores de voz
Eliminar ambig
uedad del significado de palabras

Tipos de algoritmos
Rule-based
Stochastic
Transformation-based

17/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Stochastic POS Tagger

Basado en Hidden Markov Models (HMM)


Dos asunciones:
P(wi /w1i1 , t1i ) = P(wi /ti )
P(ti /w1i1 , t1i1 ) = P(ti /t1i1 )

Elegir el tag que maximice


p(wi /ti )p(ti /t1i1 )
Secuencia de tags mas probable
Algoritmo de Viterbi
Tagged Corpus

18/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Transformation-based Tagger

Rule-based tagger
Diccionario para posibles tags de cada palabra
Conjunto de reglas manuales

Transformation-based tagger
Igual a rule-based, pero aprendiendo las reglas (supervisado)
Esbozo
1 Etiquetar con el tag m
as probable (corpus)
2 Aprender reglas de cambio (de general a especfico)

Cambiar ti por tj si....


3 Aplicar reglas y comprobar errores
4 Repetir 2

19/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Palabras desconocidas

Como asignar un tag a una palabra fuera de tu vocabulario


Asignar en funci
on de las palabras del entorno
Utilizar la distribuci
on de las palabras que ocurren una vez
Utilizar informaci
on de spelling

20/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Definicion

Representar el modelo generativo de sentencias de un lenguaje.


Formulacion
N - Conjunto de smbolos no terminales
NP, VP, PP, Nominal, etc

- Conjunto de smbolos terminales


POS (Nouns, Verbs, Determiners, Adjetives, Adverbs)

P - Reglas de producci
on del lenguaje
A donde A N y N, d
A w donde A y w una palabra del alfabeto

S - Smbolo de inicio

21/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Ejemplo CFG
Reglas P
S NP VP
NP Det Noun
VP Verb NP
Det el | un
Noun conductor | perro
Verb atropello
Sentencias
el conductor atropell
o un perro
un conductor atropell
o un perro
un conductor atropell
o el perro
el perro atropello un conductor

22/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Parsing

Objetivo
Analizar una sentencia y asignarle una estructura sintactica en base a
unas reglas CFG

Aplicaciones
Comprobaci
on de errores gramaticales
Traducci
on
Respuestas automaticas

Algoritmos
Top-Down Parsing
Bottom-Up Parsing
Earley Algorithm

23/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Earley Algorithm

Basado en programaci
on dinamica
Construccion de N+1 tablas (charts)
N - N
umero de palabras de la sentencia
Regla, [n1 , n2 ]
n1 - Posici
on de la regla en la sentencia
n2 n1 - Posici
on siguiente a analizar en la regla

Tres procedimientos de construcci


on
Predictor
Scanner
Completer

24/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Earley Algorithm
Analisis iterativo sobre los charts y sus elementos
Predictor
Actualiza chart actual
Analiza reglas A B, [i, j] con B
/ POS
A
nade todas las reglas B mediante B , [i, j]

Scanner
Actualiza chart siguiente
Analiza reglas A B, [i, j] con B POS[word[j]]
A
nade las reglas B word[j], [j, j + 1]

Completer
Actualiza chart actual
Analiza reglas completas B , [j, k]
A
nade todas las reglas en chart j que cumplen A B, [i, k]

25/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Earley Algorithm

26/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Earley Algorithm

27/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Y mucho mucho mas.


Probabilistic CFGs
Analisis semantico
Machine translating
Global linear models

28/ 29

Introducci
on

Morfologa

Correcci
on de errores

N-grams

Tagging

Context-Free Grammar (CFG)

Bibliografa

D. Jurafsky, J. H. Martin, Speech and Language Processing. An


introduction to Natural Language Processing, Computational
Linguistics and Speech Recognition, 1999
M. Collins, Machine Learning Approaches for Natural Language
Processing, http://www.ai.mit.edu/courses/6.891-nlp/, 2003

29/ 29

Potrebbero piacerti anche