Está en la página 1de 27

Introduccin al Procesamiento de

Lenguaje Natural
Grupo de PLN - InCo
2011

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


Expresiones regulares y
autmatas finitos
English is not a finite state language.
(Chomsky 1957)

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


ER y Bsquedas
Se requiere:
Patrn (qu se quiere buscar)
Corpus (dnde se quiere buscar)

Se tiene una funcin de bsqueda que recorre el corpus


encontrando (y devolviendo) todas las ocurrencias del
patrn

Las ER son tpicamente eficientes!

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


ER y Bsquedas
Algunos ejemplos (Python):
ER Patrn encontrado
cabeza de la cabeza al sombrero
! Ven para ac!
[vV]agn en un vagn cargado de sandas
[abc] solo de noche
[0-9] Captulo 1: Introduccin
[^A-Z] Maana va a ser un gran da
[^sS] Tengo permiso
>>> m = re.search('cabeza',de la cabeza al sombrero)
>>> m.group(0)
'cabeza'
>>>

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


ER y Bsquedas
Algunos ejemplos (Python):
ER Patrn encontrado
[e^] smbolo ^ significa que
a^b cuando encuentres a^b es
casas? Juan haba ido a casa de
pec.s tena pecas en toda la cara
/beee*!/ La oveja hace beeeeee!
/bee+!/ La oveja hace beeeeee!
/^.*Juan vino\../*$/ Carlos cerveza. Juan vino. Jos agua.
/\bel\b/ Caminaba por el camino de

>>> re.search('.*Juan vino\..*$','Carlos cerveza. Juan vino. Jos


agua.').group(0)
'Carlos cerveza. Juan vino. Jos\xe9 agua.'
>>>

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


ER y Bsquedas
Operadores avanzados
\d  dgito [0-9]
\w  cualquier carcter alfanumrico o espacio
\s  [\b\t\n]
y las maysculas son la negacin

{n}  n ocurrencias del carcter o expresin anterior


{n,m}  de n a m ocurrencias
{n,}  al menos n ocurrencias

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


ER y Sustituciones
Sustitucin: sustituye un patrn por otro
>>> re.sub('([0-9]+)',r'<\1>','tena el nmero 10 en la espalda')
'tena el nmero <10> en la espalda'
>>>

Qu pasa con patrones mltiples? Alcanza con expresiones


regulares?

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


ER y Sustituciones
Parntesis y operadores, pueden ser usados para especificar ciertas
expresiones a sustituir
Ejemplo:
(1) hoy (.*)ro estar aqu, maana \1ro morir
- hoy quiero estar aqu, maana quiero morir
NO - hoy quiero estar aqu, maana prefiero morir

(2) hoy (.*)ro estar (.*), maana \1ro morir \2


- hoy quiero estar aqu, maana quiero morir aqu
NO - hoy quiero estar aqu, maana quiero morir all

Este tipo de facilidades son extensiones de las ER

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


Lenguajes regulares
conjunto de strings denotados por expresiones
regulares definidas sobre un alfabeto

Operaciones de clausura:
interseccin (L1 L2)
diferencia (L1 - L2)
complemento (* - L1)
reverso (L1r)

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


Autmatas Finitos
Mquina de estados

En particular, nos interesan desde el punto de


vista del reconocimiento de Lenguajes
Regulares

un lenguaje regular es el conjunto de strings sobre


un alfabeto reconocidos por autmatas finitos

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


Autmatas Finitos
Cualquier ER puede ser implementada
por un AF y recprocamente
Lenguaje Regular
representa a reconoce

Expresin Regular Autmata Finito


puede convertirse a

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


Autmatas Finitos
Ejemplo: el lenguaje de las ovejas
lo podemos ver como secuencias (infinitas) de tiras
bee!
beee!
beeee!
beeeee!

donde, la ER asociada sera /bee+!/

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


Autmatas Finitos

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


Autmatas Finitos
Formalmente M:(Q, ,,q0,F)

Q: conjunto finito de n estados


: alfabeto finito de smbolos de entrada
q0: estado inicial
F: conjunto de estados finales (o aceptores) FQ
(qi,a)=qj funcin de transicin entre estados
: Q x  Q

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


Autmatas Finitos

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


Autmatas Finitos
el algoritmo anterior falla si no est definida la funcin
se completa la funcin con un estado pozo

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


Autmatas Finitos
Como generadores de lenguajes

Definicin: un Lenguaje Formal es el conjunto de


strings sobre un alfabeto finito , para el cual
existe un modelo M (que puede ser un AF)

Lenguaje Formal vs. Lenguaje Natural

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


Para discutir

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


Autmatas Finitos
Autmata Finito NO Determinista

Autmata Finito NO Determinista-

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


Autmatas Finitos
Formalmente, un AFND M:(Q, ,,q0,F)

Q: conjunto finito de n estados


: alfabeto finito de smbolos de entrada
q0: estado inicial
F: conjunto de estados finales (o aceptores) FQ
(qi,a)={qj} funcin de transicin entre estados
: Q x  2Q
donde incluye si admite arcos rotulados con

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


Autmatas Finitos
En estos modelos, el problema es elegir el
camino adecuado para procesar la tira

Soluciones estndar:
- Backup
- Look-ahead
- Paralelismo

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


Autmatas Finitos
Backup
cada vez que hay que elegir, se coloca una
marca:
en qu lugar del buffer se hizo esa eleccin
cul fue el estado

si falla, entonces se vuelve atrs hasta ese


punto y se elige otro camino

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


Autmatas Finitos

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


Autmatas Finitos
Algoritmo de Thompson

Fuente:
http://swtch.com/~rsc/regexp/regexp1.html

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


Autmatas Finitos

Los AFD y los AFND reconocen lenguajes


equivalentes. (Hopcroft 1979)

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


Historia
1959: Dana Scott y Michael Rabin: NDFA (Premio
Turing 1976)
1968: Mc Naughton y Yamada, Ken Thompson:
conversin regexp => nfa
1969: QED. Unix. Grep, Egrep.
Perl, Javascript todos

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica


Referencias
J.Martin & D.Jurafsky. Speech and Language
Processing.
R.Cox. Regular Expression Matching Can Be Simple
And Fast (but is slow in Java, Perl, PHP, Python,
Ruby,...)
K.Thompson. Regular Expression Search Algorithm
Hopcrofy & Ullman: Int. To Automata Theory,
Languages and Computation

Introduccin al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniera - Universidad de la Repblica

También podría gustarte