Un lematizador desambiguado con R

Documentos relacionados
Bases Formales de la Computación: Sesión 3. Modelos Ocultos de Markov

Etiquetado gramatical

Curso de procesamiento del lenguaje natural

El Algoritmo E-M. José Antonio Camarena Ibarrola

Desambigüación del sentido de las palabras (WSD)

Formulación del problema de la ruta más corta en programación lineal

LINGÜÍSTICA DE CORPUS Y ENSEÑANZA DEL ESPAÑOL COMO 2/L

ÁRBOLES DE SINTAXIS. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales.

OPTIMIZACIÓN Y SIMULACIÓN PARA LA EMPRESA. Tema 4 Optimización no Lineal

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

Matrices. Álgebra de matrices.

Procesamiento del Lenguaje Natural para recuperación de información

2 = 1 0,5 + = 0,5 c) 3 + = = 2

Tablas Hash y árboles binarios

Sistemas de Información II Tema 9. Bases de datos de texto

Trabajo Fin de Máster

Cálculo en varias variables

Tema 3: Aplicaciones de la diagonalización

Information Retrieval:

APRENDIZAJE PROBABILÍSTICO NAIVE BAYES

Raúl

Descripción de clases

Procesos estocásticos Cadenas de Márkov

Matrices. José Vicente Romero Bauset. ETSIT-curso 2009/2010. José Vicente Romero Bauset Tema 1.- Matrices. 1

El Autómata con Pila: Transiciones

CRITERIOS DE SELECCIÓN DE MODELOS

LAS FORMAS NO PERSONALES DEL VERBO

SEPTIEMBRE Opción A

Expresiones regulares, gramáticas regulares

Curso Práctico de Francés para Secretariado de Dirección. Idiomas

CONTRASTES DE HIPÓTESIS NO PARAMÉTRICOS

TEMA 1: POTENCIAS Y RAICES CUADRADAS

Diccionario básico de español temático y multimedia.

Álgebra Lineal Ma1010

TALLER 1 DE ALGEBRA LINEAL Y GEOMETRÍA INGENIERÍA AMBIENTAL - UNIVERSIDAD DE CÓRDOBA FACTORIZACIÓN LU Y CADENAS DE MARKOV

Algebra Lineal Tarea No 22: Valores y vectores propios Solución a algunos problemas de la tarea (al 29 de junio de 2014)

MODIFICACIÓN DE CONTENIDOS GRADO PRIMERO

Introducción a la lingüística computacional

Redes bayesianas temporales para reconocimiento de escenarios

APUNTES DE ÁLGEBRA LINEAL TEMA 2. SISTEMAS DE ECUACIONES LINEALES

Procesos estocásticos

Espacios Vectoriales Euclídeos. Métodos de los mínimos cuadrados

Tema 2: Diagonalización

Exterior del algoritmo. Entorno. Usuario. Procesador. Escribir. v1 v2 v3. Leer. <acción> {; <acción>}

Curso de Programación 1

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

Algoritmo de Euclides

Análisis de componentes principales. a.k.a.: PCA Principal components analysis

Modelización por medio de sistemas

RSA: Implementación. Ya resolvimos (3), ahora vamos a resolver (2). IIC3242 Complejidad Probabiĺıstica 28 / 77

Introducción a los códigos compresores

Grafos. AMD Grado en Ingeniería Informática. AMD Grado en Ingeniería Informática (UM) Grafos 1 / 30

Boleta de Calificación de la Escuela

Formas no personales de los verbos

Modelos de input-output y cadenas de Markov

COLEGIO DECROLY AMERICANO Middle School IDIOMA ESPAÑOL. Destreza / Contenido 1. Comprender la comunicación en discursos y en textos.

Boleta de Calificación de la Escuela

Tagging. POS Tagging Taggers basados en reglas Taggers estadísticos Taggers y aprendizaje automático Combinación de estrategias.

Flujos de redes (Network Flows NF)

Aprendizaje de etiquetas basado en transformaciones

Boleta de Calificación de la Escuela

Modelos Estocásticos I Tercer Examen Parcial Respuestas

4º ESO CRITERIOS DE EVALUACIÓN. Unidad 1. Unidad 2. Unidad 3. Unidad 4. Unidad 5

Autómatas Mínimos. Encontrar el autómata mínimo. Universidad de Cantabria. Introducción Minimización de Autómatas Deterministas Resultados Algoritmo

Tema 11.- Autovalores y Autovectores.

OPTIMIZACIÓN Y SIMULACIÓN PARA LA EMPRESA. Tema 5 Simulación

BUSCADOR DE ORACIONES CORPUS SENSEM

Natural Language Processing. Estudio realizado por E. G. Ortiz-García

ALGORITMOS GENÉTICOS: ALGUNOS RESULTADOS DE CONVERGENCIA

Didáctica de la Lengua Española I TEMA 5 DIDÁCTICA DEL PLANO GRAMATICAL

Guía. Álgebra III. Examen parcial III. Forma canónica de Jordan. Producto interno.

Examen Primaria. Lengua y. Literatura. TEMA: Gramática. Uniendo las palabras.

El Verbo pretérito pretérito perfecto imperfecto modo pretérito quería decir pasado pretérito Juventud, egolatría

Teoría de juegos Andrés Ramos Universidad Pontificia Comillas

EL VERBO CRITERIO MORFOLÓGICO CONJUGAR UN VERBO SIGNIFICA DECIRLO EN LOS DISTINTOS MODOS, TIEMPOS, PERSONAS Y NÚMEROS.

[20380] Visió per Computador Prueba 2 (2013) Teoria (10p) (una pregunta test fallada descuenta 1/4 de pregunta acertada)

Programa de Inglés Lectura Nivel I

PROGRAMACION DE REDES. MODELOS DE TRANSPORTE

PROJECT GLASS : REALIDAD AUMENTADA, RECONOCIMIENTO DE IMÁGENES Y RECONOCIMIENTO DE VOZ.

Idioma Inglés PLANIFICACIONES Actualización: 2ºC/2016 Planificaciones Idioma Inglés Docente responsable: JOHNSTONE NANCY ELENA 1 de 6

Boleta de Calificación de la Escuela

Matrices, Determinantes y Sistemas Lineales.

El Autómata con Pila

Autovalores y autovectores Diagonalización y formas canónicas

Tema: Medidas de Asociación con SPSS

Taller de Listas Introducción a la Programación

Temas de Reflexión en el

Algoritmos aleatorizados

Algebra Lineal XXVI: La Regla de Cramer.

1. Diseñe algoritmos que permitan resolver eficientemente el problema de la mochila 0/1 para los siguientes casos:

Formas no personales del verbo: Infinitivo ( jugar ), gerundio ( jugando ) y participio ( jugado )

Lección 2: Funciones vectoriales: límite y. continuidad. Diferenciabilidad de campos

EL VERBO: LA CONJUGACIÓN

Cuánto dura un partido de tenis? (Aplicación estocástica)

Curso de semántica general

Algoritmo de factorización LU

El adverbio siempre y las dos formas verbales del pasado*

ÁREA: LENGUA NIVEL: 6º

Sistemas polinomiales

Estimación de Máxima Verosimilitud Utilizando la Función optim en R

Transcripción:

Un lematizador desambiguado con R Carlos J. Gil Bellosta cgb@datanalytics.com Mayo 2013

Contenidos 1 Motivación: un discurso de Rajoy 2 Lematización basada en reglas Lematización basada en diccionarios Lematización probabiĺıstica 3 Resumen

Motivación: un discurso de Rajoy Una nube de palabras: un primer ensayo

Motivación: un discurso de Rajoy Quitamos las palabras irrelevantes (stopwords)

Motivación: un discurso de Rajoy El siguiente problema: variedad morfológica Queremos que las variantes morfológicas voten agregadamente P.e., que la nube agrupe español, española, españoles y españolas Necesitamos rescatar la raíz que transmite significado, el lema, de cada término Lematización Es el proceso que transforma comiéramos en comer zanjas en zanja, etc. eliminando las marcas morfológicas.

Lematización Los algoritmos de lematización pueden categorizarse según se basen en reglas, diccionarios, o probabilidades El que presentaré más adelante es una mezcla de los dos últimos.

Lematización basada en reglas Lematización basada en reglas El más famoso es snowball (de M. Porter) Pensado originalmente para el inglés Extendido a otros idiomas (incluido el español) Una regla de snowball para el español Busca el más largo de entre los sufijos me se sela selo selas selos la le lo las les los nos y bórralo si sigue a iéndo ándo ár ér ír ando iendo ar er ir yendo (si va detrás de u)

Lematización basada en reglas Resultado del algoritmo de Porter

Lematización basada en reglas El código, por referencia library(tm) library(snowball) rajoy <- readlines("discurso_rajoy.txt") rajoy <- paste(rajoy, collapse = " ") rajoy <- Corpus( DataframeSource(data.frame(docs = rajoy)), readercontrol = list(language = "es") ) rajoy <- tm_map(rajoy, removepunctuation) rajoy <- tm_map(rajoy, tolower) rajoy <- tm_map(rajoy, stemdocument) # snowball!

Lematización basada en reglas El código, por referencia (cont.) tdm <- TermDocumentMatrix(rajoy, control = list(removepunctuation = T, stopwords = T, wordlengths = c(2, Inf))) m <- as.matrix(tdm) v <- sort(rowsums(m),decreasing=true) d <- data.frame(word = names(v),freq=v) wordcloud( d$word, d$freq, min.freq = 3, scale=c(4,.5), colors=brewer.pal(6,"dark2"), random.order=false)

Lematización basada en reglas Snowball puede ser útil

Lematización basada en diccionarios Tener un diccionario con todas las parejas (término, lema) Basado en diccionarios de parejas (término, lema). Lematizar consiste en buscar el término y devolver el lema correspondiente. La ambigüedad, el gran problema: (casas, casar) (contraer matrimonio) (casas, casa) (edificio) Y como este, muchos más casos (más de los que uno piensa).

Lematización basada en diccionarios Uno de los lematizadores de Molino de Ideas Petición: https://store.apicultur.com/api/lematiza-molino/1.0.0/casas Respuesta: { "palabra": "casas", "lemas": [ { "lema": "casar", "categoria": "5" }, { "lema": "casa", "categoria": "4" } ] }

Lematización basada en diccionarios Resultado aplicando un lematizador basado en diccionarios

Lematización probabiĺıstica Un modelo probabiĺıstico para palabras y etiquetas Vamos a ver cómo asociar a cada término w una etiqueta t Las etiquetas pueden ser: La raíz (potencial) de dicho término Su categoría morfológica (verbo, sustantivo,...) Si son palabras comunes o nombres de personas, calles, empresas,... Dada una frase w 1,..., w n, buscamos la secuencia de etiquetas t 1,..., t n más probable Es decir, queremos maximizar P(t 1,..., t n w 1,..., w n )

Lematización probabiĺıstica Aplicamos el cálculo de probabilidades (pura álgebra) P(t 1,..., t n w 1,..., w n ) = P w (t 1,..., t n ) = P w (t n t 1,..., t n 1 )P w (t 1,..., t n 1 ) = P w (t i t i 1,..., t 1 ) = i P(t i t i 1,..., t 1, w 1,..., w n ) i Sólo necesitamos calcular P(t i t i 1,..., t 1, w 1,..., w n )!

Lematización probabiĺıstica Algunas simplificaciones En general, P(t i t i 1,..., t 1, w 1,..., w n ) es incognoscible Buscamos simplificaciones que No sean excesivas Que tengan sentido lingüístico Que den lugar a expresiones calculables Típicamente, se supone que t i es independiente de t i 3, t i 4,..., con lo que P(t i t i 1,..., t 1, w 1,..., w n ) P(t i t i 1, t i 2, w 1,..., w n )

Lematización probabiĺıstica Modelos lineales generalizados (GLM) Son modelos en los que P(t i t i 1, t i 2, w 1,..., w n ) se aproxima por exp( λ i f i (t, t 1, t 2, w 1,..., w n )) Las funciones f i responden preguntas del tipo: la etiqueta anterior es un artículo femenino y la palabra termina con a? Los pesos λ i se ajustan maximizando la verosimilitud de un conjunto de entrenamiento. Nótese cómo maximizar el producto equivale a maximizar P(t i t i 1,..., t 1, w 1,..., w n ) i λ i f i (t j, t j1, t j2, w 1,..., w n ) i,j

Lematización probabiĺıstica Modelos ocultos de Markov (HMM) Son modelos en los que se realiza la siguiente aproximación: P(t i t i 1, t i 2, w 1,..., w n ) P(t i t i 1, t i 2, w i ) P(t i t i 1, t i 2 )P(t i w i ) P(t i t i 1, t i 2 ): transiciones de un modelo de Markov (de segundo orden); p.e., P(adj. sust., art.) P(t i w i ): indica lo probable que es la etiqueta t i cuando se observa la palabra w i ; p.e., P(verbo ascensor)

Lematización probabiĺıstica Algoritmo de Viterbi para HMM El modelo anterior se califica de oculto porque los estados de la cadena de Markov no son observables lo observable son etiquetas emitidas probabiĺısticamente por dichos estados El algoritmo de Viterbi permite calcular la secuencia de estados de la cadena que maximiza la probabilidad de las etiquetas observadas.

Lematización probabiĺıstica Los elementos para implementar el algoritmo de Viterbi Si hay n etiquetas y m términos, se necesitan: Un array n n n de transición entre etiquetas. Un diccionario m n que indique la probabilidad de que un término tenga una etiqueta dada Una lista de matrices n n que almacenen las combinaciones más probables en los pasos i 1 e i 2 de la cadena. La lista de matrices se construye paso a paso recorriendo la cadena de inicio a fin. Luego hay que recorrerla de fin a inicio para recuperar las etiquetas que han dado lugar a la traza de máxima probabilidad.

Lematización probabiĺıstica Modelo híbrido diccionarios / HMM Es el que he implementado para Molino de Ideas Algoritmo de lematizacíon desambiguada Usar diccionarios para sugerir raíces de términos Usar HMM para etiquetar morfológicamente Usar la etiqueta sugerida por el HMM para desambiguar las opciones del diccionario Ventajas: decenas de etiquetas morfológicas pero miles de posibles lemas Limitaciones: fue: ir o ser? ambos son verbos!

Lematización probabiĺıstica Motor del algoritmo (en R) pila <- function(i, pk){ tmp <- log.wuv + outer(pk, p.ter.etq[[i]],"+") probs <- apply(tmp, 2:3, max) res <- if(i == length(frase)) # fin cadena { devolver que maximizan probs } else # iteramos pila(i + 1, probs) } return(c(arg.max(probs, res), res)) pila(1, prob.ini)

Resumen Lematización en español El español no es un idioma como el inglés En español hacen falta herramientas específicas Creo que hay que pasar por lematizadores basados en diccionarios Los cálculos son complejos y las necesidades de memoria, elevadas Una solución basada en APIs, adecuada?