Introducción al Procesamiento de Lenguaje Natural

Documentos relacionados
10 Análisis léxico VI Compiladores - Profr. Edgardo Adrián Franco Martínez

Ciencias de la Computación I

Compiladores: Sesión 3. Análisis léxico, expresiones regulares

Tema 3: Gramáticas regulares. Teoría de autómatas y lenguajes formales I

Computabilidad y Lenguajes Formales: Autómatas Finitos

Algoritmo para la obtención de los estados accesibles

UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS

Autómatas de Estados Finitos

Teoría de Autómatas y Compiladores [ICI-445] Capítulo 2: Autómatas Finitos

Coordinación de Ciencias Computacionales INAOE. Teoría de Autómatas y Lenguajes Formales. Temario detallado para examen de ingreso 2012

Autómatas Deterministas. Ivan Olmos Pineda

1. Cadenas EJERCICIO 1

Introducción a la Teoría de Autómatas, Lenguajes y Computación

Tema 1: Introducción. Teoría de autómatas y lenguajes formales I

Ciencias de la Computación I

Curso Básico de Computación

Departamento de Tecnologías de la Información. Tema 5. Decidibilidad. Ciencias de la Computación e Inteligencia Artificial

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD CIENCIAS DE LA COMPUTACIÓN

Máquinas de Turing, recordatorio y problemas

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 4: Expresiones Regulares. Luis Peña

Examen. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003.

Teoría de la Computación para Ingeniería de Sistemas: un enfoque práctico. Prof. Hilda Contreras

1. Define que es un Autómatas finitos determinanticos y cuáles son sus elementos constitutivos (explique cada uno de ellos).

Lenguajes Incontextuales

Texto: Hopcroft, J. E., Motwani, R., Ullman, J.D., Introduction to Automata Theory, Languajes, and Computation. 3rd Edition. Addison Wesley, 2007.

Ejemplo de demostración de que cierto lenguaje es el lenguaje aceptado por un AFND.

Nuestro objetivo es demostrar que autómata = lógica Qué significa esto? Queremos encontrar una lógica que defina a los lenguajes regulares

SSL Guia de Ejercicios

Nombre de la asignatura: Lenguajes y Autómatas I. Créditos: Aportación al perfil

ANÁLISIS LÉXICO AUTÓMATAS FINITOS

5. Propiedades de los Lenguajes Recursivamente Enumerables y de los Lenguajes Recursivos.

Lenguajes independientes de contexto o incontextuales

Expresiones regulares, gramáticas regulares Unidad 3

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

Autómatas de Pila y Lenguajes Incontextuales

Paso 1: Autómata. A 1 sin estados inútiles, que reconoce el lenguaje denotado por a a* b*

Procesadores de Lenguaje

TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY

PONTIFICIA UNIVERSIDAD CATOLICA DEL ECUADOR FACULTAD DE INGENIERIA ESCUELA DE INGENIERIA DE SISTEMAS

autómatas finitos y lenguajes regulares LENGUAJES FORMALES Y

Introducción a la Lógica y la Computación

Autómatas Finitos Deterministicos (DFA)

TRADUCTORES E INTERPRETADORES

Profs. Carlos Pérez y Ricardo Monascal

Departamento de Tecnologías de la Información. Tema 3. Autómatas finitos y autómatas de pila. Ciencias de la Computación e Inteligencia Artificial

Autómatas Finitos Deterministicos (DFA)

Autómata de Pila (AP, PDA) Tema 18

UNIVERSIDAD TECNOLOGICA DE PEREIRA FACULTAD DE INGENIERIAS

ESPECIFICACIÓN DE SÍMBOLOS

Teoría de Autómatas y Lenguajes Formales Equivalencia de Conjuntos Pruebas por Inducción

UNIVERSIDAD DE LOS LLANOS Facultad de Ciencias Básicas e Ingeniería Programa Ingeniería de Sistemas ALGORITMIA AVANZADA

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45

Curso Básico de Computación

Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Máquinas de Turing

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I

NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN

Introducción a la Lógica y la Computación

Tema 6: Máquina de Turing

Tema 5: Autómatas a pila. Teoría de autómatas y lenguajes formales I

MÁQUINAS DE TURING CIENCIAS DE LA COMPUTACION I 2009

Introducción a la lingüística computacional

Curso Básico de Computación Preliminares

09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

Nombre de la asignatura : Lenguajes y Autómatas. Carrera : Ingeniería en Sistemas Computacionales. Clave de la asignatura : SCB- 9324

Lenguaje Regular. Sumario. Lenguaje Regular. Autómatas y Lenguajes Formales. Capítulo 8: Propiedades de los Lenguajes Regulares

Expresiones Regulares

Tema 4. Autómatas Finitos

Expresiones regulares, gramáticas regulares

Ciencias de la Computación I

CONJUNTOS REGULARES. Orlando Arboleda Molina. 19 de Octubre de Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle

Unidad 4. Autómatas de Pila

Computabilidad y Lenguajes Formales: Autómatas de Pila

ESCUELA: UNIVERSIDAD DEL ISTMO

Lenguajes (gramáticas y autómatas)

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42

DIVERSAS REPRESENTACIONES DE UN AUTÓMATA FINITO DETERMINISTA DIVERSE REPRESENTATIONS OF A DETERMINISTIC FINITE AUTOMATON. Humberto Robles Guzmán 1

Máquinas Secuenciales, Autómatas y Lenguajes Tema 5: Propiedades de los Lenguajes Regulares. Luis Peña

300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos

Autómatas Finitos INAOE. Introducción a. Autómatas. Definición formal de un. Finito Determinístico. Finito No- Finitos y Lenguajes Formales

Análisis de algoritmos

Tarea Nº 2 Introducción a la Informática Lema del Bombeo y Lenguajes de Contexto Libre

ANÁLISIS LÉXICO Ing. Ronald Rentería Ayquipa

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 2.

Autómatas Finitos No-Deterministicos (NFA)

1 er Parcial Febrero 2009

Expresiones regulares y distancia de edición.

No todos los LRs finitos se representan mejor con ERs. Observe el siguiente ejemplo:

TEORÍA DE AUTÓMATAS Y LENGUAJES

String Matching. Análisis y diseño de algoritmos II

3 Propiedades de los conjuntos regulares 3.1 Lema de Bombeo para conjuntos regulares

Teoría de la Computación Lenguajes Regulares (LR) - Propiedades

Ciencias de la Computación I

Otras propiedades de los lenguajes regulares

PROGRAMA INSTRUCCIONAL AUTOMATAS Y LENGUAJES FORMALES

Conceptos básicos sobre gramáticas

DATOS DE IDENTIFICACIÓN. Materia: Introducción a la teoría de los lenguajes formales Definición de alfabeto ETAPA PREINSTRUCCIONAL

Universidad de Valladolid

PROGRAMACIÓN II AÑO 2009 TALLER 3: TEORÍA DE LENGUAJES Y AUTÓMATAS

Gramáticas libres de contexto

Transcripción:

Introducción al Procesamiento de Lenguaje Natural Grupo de PLN - InCo 2011

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

ER y Búsquedas Se requiere: Patrón (qué se quiere buscar) Corpus (dónde se quiere buscar) Se tiene una función de búsqueda que recorre el corpus encontrando (y devolviendo) todas las ocurrencias del patrón Las ER son típicamente eficientes!

ER y Búsquedas Algunos ejemplos (Python): ER cabeza Patrón encontrado de la cabeza al sombrero! Vení para acá! [vv]agón [abc] en un vagón cargado de sandías solo de noche [0-9] Capítulo 1: Introducción [^A-Z] [^ss] Mañana va a ser un gran día Tengo permiso >>> m = re.search('cabeza', de la cabeza al sombrero ) >>> m.group(0) 'cabeza' >>>

ER y Búsquedas Algunos ejemplos (Python): ER Patrón encontrado [e^] símbolo ^ significa que a^b cuando encuentres a^b es casas? Juan había ido a casa de pec.s tenía 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.' >>>

ER y Búsquedas Operadores avanzados \d dígito [0-9] \w cualquier carácter alfanumérico o espacio \s [\b\t\n] y las mayúsculas son la negación {n} n ocurrencias del carácter o expresión anterior {n,m} de n a m ocurrencias {n,} al menos n ocurrencias

ER y Sustituciones Sustitución: sustituye un patrón por otro >>> re.sub('([0-9]+)',r'<\1>','tenía el número 10 en la espalda') 'tenía el número <10> en la espalda' >>> Qué pasa con patrones múltiples? Alcanza con expresiones regulares?

ER y Sustituciones Paréntesis y operadores, pueden ser usados para especificar ciertas expresiones a sustituir Ejemplo: (1) hoy (.*)ro estar aquí, mañana \1ro morir NO - hoy quiero estar aquí, mañana quiero morir - hoy quiero estar aquí, mañana prefiero morir (2) hoy (.*)ro estar (.*), mañana \1ro morir \2 - hoy quiero estar aquí, mañana quiero morir aquí NO - hoy quiero estar aquí, mañana quiero morir allí Este tipo de facilidades son extensiones de las ER

Lenguajes regulares conjunto de strings denotados por expresiones regulares definidas sobre un alfabeto Σ Operaciones de clausura: intersección (L 1 L 2 ) diferencia (L 1 - L 2 ) complemento (Σ* - L 1 ) reverso (L 1r )

Máquina 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 autómatas finitos

Cualquier ER puede ser implementada por un AF y recíprocamente Lenguaje Regular representa a reconoce Expresión Regular puede convertirse a Autómata Finito

Ejemplo: el lenguaje de las ovejas lo podemos ver como secuencias (infinitas) de tiras bee! beee! beeee! beeeee! donde, la ER asociada sería /bee+!/

Formalmente M:(Q, Σ,δ,q 0,F) Q: conjunto finito de n estados Σ: alfabeto finito de símbolos de entrada q 0 : estado inicial F: conjunto de estados finales (o aceptores) F Q δ(q i,a)=q j función de transición entre estados δ: Q x Σ Q

el algoritmo anterior falla si no está definida la función δ se completa la función δ con un estado pozo

Como generadores de lenguajes Definición: 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

Para discutir

Autómata Finito NO Determinista Autómata Finito NO Determinista-ε

Formalmente, un AFND M:(Q, Σ,δ,q 0,F) Q: conjunto finito de n estados Σ: alfabeto finito de símbolos de entrada q 0 : estado inicial F: conjunto de estados finales (o aceptores) F Q δ(q i,a)={q j } función de transición entre estados δ: Q x Σ 2 Q donde Σ incluye ε si admite arcos rotulados con ε

En estos modelos, el problema es elegir el camino adecuado para procesar la tira Soluciones estándar: - Backup - Look-ahead - Paralelismo

Backup cada vez que hay que elegir, se coloca una marca: en qué lugar del buffer se hizo esa elección cuál fue el estado si falla, entonces se vuelve atrás hasta ese punto y se elige otro camino

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

Los AFD y los AFND reconocen lenguajes equivalentes. (Hopcroft 1979)

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

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