Vous êtes sur la page 1sur 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 cabeza ! [vV]agn [abc] [0-9] [^A-Z] [^sS] Patrn encontrado de la cabeza al sombrero Ven para ac! en un vagn cargado de sandas solo de noche Captulo 1: Introduccin Maana va a ser un gran da 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 [e^] a^b casas? pec.s /beee*!/ /bee+!/ /^.*Juan vino\../*$/ /\bel\b/ Patrn encontrado smbolo ^ significa que cuando encuentres a^b es Juan haba ido a casa de tena pecas en toda la cara La oveja hace beeeeee! La oveja hace beeeeee! Carlos cerveza. Juan vino. Jos agua. 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
puede convertirse a

Autmata Finito

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 2Q : Q x 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

Vous aimerez peut-être aussi