1) (3 puntos) Considerad el siguiente párrafo (tomado del WSJ del 27 oct 1989): “An industry analyst, Robert B. Morris III in Goldman, Sachs & Co,’s San Francisco office, said ...” Nos interesa disponer de un sistema de detección y clasificación de entidades con nombre (Named Entities) que sea capaz de detectar en este caso que Robert B. Morris III es una persona, que Goldman, Sachs & Co es una organización y que San Francisco es una ciudad (obviamente el ejemplo es sólo ilustrativo de la tarea y de su dificultad). ¿Qué problemas de procesamiento nos plantearía? ¿Cómo los resolveríamos? ¿Cómo llevaríamos a cabo la tarea? ¿Qué fuentes de conocimiento emplearíamos? ¿Cómo podríamos obtener la información y el conocimiento implicados? Solución Las dos tareas son la detección y la clasificación (se pueden abordar juntas o en secuencia). La tarea de detección consiste en buscar los tokens de comienzo y fin de cada una de las NE. El algoritmo básico puede consistir en buscar las secuencias de longitud máxima de tokens en mayúscula. "Robert B. Morris III" quedaría correctamente detectado. Pero en los otros casos hay problemas: • • • • Puede haber tokens en mayúscula que no pertenezcan a una NE, por ejemplo el primer token tras un punto y aparte, o los puntos cardinales (N, S, ...) o algunos títulos (Sr., Dr., ...). Puede haber componentes de la NE que no sean tokens en mayúscula, por ejemplo "&" o "," en el texto. Puede ocurrir que dos (o más) NE sean contiguas con lo cual será difícil detectar cuántas hay y dónde acaba cada una. Puede ocurrir que aparezcan NE anidadas. La tarea de clasificación presenta también problemas: • • Aunque hay componentes típicas de una clase (nombres de pila en la clase PERSON, abreviaturas como "&", "Co" o "Inc" en la clase ORGANIZATION) los solapamientos son también frecuentes ("Phillip Morris" puede, dependiendo del contexto ser una PERSON o una ORGANIZATION). "San Francisco" puede ser una CITY o una PERSON. En el caso de los locativos la clasificación dependerá del nivel de granularidad de las clases (LOCATION, COUNTRY, STATE, CITY). En el mismo contexto en que aparece "San Francisco" podría aparecer "California". Hay dos tipos de indicadores que apuntan a ser una NE y a ser clasificada en determinada clase: • • Indicadores endógenos: constituyentes de la NE o palabras en mayúscula o palabras no presentes en el diccionario o determinados acrónimos, abreviaturas, símbolos, ... o palabras presentes en algún gazetteer nombres de pila ciudades paises acrónimos ... o gramáticas de NE por ejemplo, una NE de tipo PERSON suele constar de nombre de pila seguido de apellido o distribución estadística de longitudes de los diversos tipos de NE o ... Indicadores exógenos: contexto de la NE o En "... analyst, Robert B. Morris III ..." la NE aparece como aposición de un término "analyst" que sólo puede referirse a un humano. "analyst", en este contexto actúa como trigger word, es decir palabra que señala la proximidad de la NE. o En "... 's San Francisco office ..." el contexto apunta a que "San Francisco" es una LOCATION, no necesariamente una CITY. o ... Hay muchas formas de implementar un reconocedor/clasificador de NE. Una puede ser la de hacerlo en dos etapas precedidas de un pre-proceso de tokenización, análisis morfológico y tagging: • • detección o entrada: stream de tokens o salida: stream de NE y tokens entre ellas clasificación o entrada: NE detectados + contexto o salida: NE clasificados El proceso de detección puede ser simple usando gramáticas de NE (pueden consistir en conjuntos de expresiones regulares con lo cual el reconocedor sería un FSA o gramáticas más complejas que obligarían a un proceso de parsing más costoso). Para llevar a cabo la clasificación, dado que el número rasgos a tener en cuenta es muy elevado y su tipología muy variada, se podría pensar en un algoritmo de ML (p.ej. de aplicación de listas o árboles de decisión). Las fuentes de conocimiento (FC) podrían incluir: • • • gramáticas de NE trigger words gazetteers o nombres de pila • o locativos o acrónimos, siglas y abreviaturas o ... árboles de decisión u otras formas de FC para los algoritmos de clasificación Las gramáticas se pueden construir manualmente a partir del análisis de un conjunto significativo de ejemplos. Los diferentes gazetteers se pueden obtener a través de Internet o compilar a partir de corpus. FC como los trigger words se pueden obtener a partir de corpus. El aprendizaje de los clasificadores se puede llevar a cabo mediante aprendizaje supervisado igualmente a partir de corpus. 2) (2 puntos) Suponed que se os encarga un estudio de viabilidad para un sistema de traducción automática asistida Catalán/Castellano y Castellano/Catalán. Se trataría de traducir cartas de propaganda en el dominio de los cursos de formación (idiomas, informática, mecanografía, etc.) Proponed una especificación funcional del sistema a construir Proponed una arquitectura del mismo Describid brevemente las componentes principales del sistema a construir (si el sistema tiene más de 4 componentes limitaros a las 4 más importantes) ¿Qué fuentes de conocimiento emplearíamos? Dad órdenes de magnitud de las principales estructuras de información presentes (gramáticas, lexicones, etc.) Indicad qué información deberían contener los diversos lexicones implicados. Indicad cómo implementaríais estos lexicones. Solución Por supuesto la funcionalidad básica del sistema será la de traducir una carta, existen, sin embargo, otras funcionalidades complementarias: • • • • • • • Gestión de cartas o edición, mailing, ... Identificación de la lengua Pre-edición de una carta Post-edición de una carta Traducción de una carta (TA) o de un fragmento de texto previamente seleccionado. Gestión de las FC o aprendizaje de los modelos estadísticos (de haberlos) o reglas de transferencia (de haberlas) o ... Posibilidad de aprendizaje a partir de los errores detectados en la post-edición. Nos podemos centrar en la función de TA. Podemos construir un sistema de tipo estadístico o uno simbólico. En este caso podría ser un sistema de transferencia, uno superficial (tipo memorias de traducción) o un interlingua. Para el caso de TA de documentos muy estructurados y dominio restringido (como es el caso) un sistema interlingua podría ser especialmente indicado. El hecho de ser el catalán y el castellano lenguas muy próximas nos podría inclinar a un sistema superficial o a uno estadístico. Se puede argumentar en uno u otro sentido. Si suponemos un modelo de transferencia tendríamos los siguientes componentes: • • • proceso del texto de la lengua fuente o proceso textual: segmentación, consulta a diccionarios, detección de fechas, nombres propios, ... o proceso morfológico o tagging aplicación de reglas de transferencia generación del texto de la lengua objetivo Las FC dependen obviamente del tipo de aproximación a la TA. Incluyen lexicones o diccionarios de las dos lenguas con la información pertinente (generales y dependientes del dominio), FC para el proceso morfológico (p.ej. FSA), para el tagging (p.ej. HMM), y, si lo usais, para el análisis sintáctico (gramáticas), recursos bilingües (modelos de traducción, reglas de transferencia, ...), corpus alineados si haceis aprendizaje automático de estas FC El orden de magnitud de los lexicones generales es del orden de decenas o centenares de miles de entradas, en el caso de los lexicones del dominio el orden de magnitud es de los millares. El número de reglas de transferencia léxica puede ser del mismo orden de magnitud que los lexicones, en el caso de transferencia sintáctica el tamaño será muy inferior (seguramente del orden de las decenas). El contenido de los lexicones dependerá del tipo de aproximación que hayais propuesto, normalmente se deberá incluir la categoría gramatical (y probablemente algún tipo de subcategorización), información morfológica (género, número, persona, tiempo, …). También deberemos incorporar información sobre correspondencias entre unidades léxicas o más amplias. La implementación de los lexicones es totalmente convencional (nada impide usar bases de datos convencionales). 3) (3 puntos) Deseamos construir un sistema de segmentación de textos en oraciones para su procesamiento posterior. Considerad un sistema muy simple que se limita a buscar los puntos. Aplicadlo al artículo anexado (El Periódico, 29 oct. 2004). ¿Qué problemas veis? ¿Cómo podríais resolverlos? Haced una propuesta y aplicadla al ejemplo. Solución Lo primero que hay que fijar es el concepto de oración, concretamente habrá que decidir si lo que queremos es segmentar el texto en oraciones simples o compuestas (es decir oraciones relacionadas por coordinación, subordinación, etc.). Se aceptan las dos posibilidades. Usando el algoritmo propuesto nos aparecen 5 oraciones. Algunos han indicado como problemática la excesiva complejidad de alguna de ellas. Esto no es el problema si aceptais oraciones complejas pero sí lo es si lo que quereis es buscar oraciones simples. Con el algoritmo propuesto (búsqueda de puntos) aparecen dos tipos de problemas: • • El punto no es delimitador de oraciones • Por ejemplo: siglas (F.I.B.), cantidades (4.300), abreviaturas (Sr.) Hay otros delimitadores además del punto • Por ejemplo: • Signos de interrogación y exclamación • Comillas (texto entrecomillado) • Salto de línea (sin punto) • Cambios tipográficos (cambio de fuente o tamaño de letra) Además aparece el problema de la aparición de segmentos no necesariamente gramaticales (como el título, antetítulo, autor, fecha, etc. ) que, independientemente de la presencia o ausencia de puntos, no son oraciones. En el ejemplo que nos ocupa al no haber puntos en las primeras líneas el texto se incorpora a la primera oración lo cual la convierte en no gramatical. El problema es que de haber puntos nos saldrían más oraciones igualmente no gramaticales. Otro problema es la presencia de oraciones entrecomilladas (declaraciones) que obviamente deben ser detectadas y marcadas como tales. Fijaros que la cosa se complica cuando (como en el ejemplo) dentro del texto entrecomillado aparecen puntos. Una mejora del algoritmo consistiría en la incorporación de nuevos caracteres como delimitadores y la ejecucuón de filtros para garantizar que lo que se ha delimitado es realmente una oración (un filtro obvio puede consistir en detectar la presencia de al menos un verbo en el segmento). Si aceptamos como oraciones no sólo las simples sino las complejas, el único punto conflictivo sería el marcado de las declaraciones. Una posibilidad muy sencilla de hacerlo es: Pepe dijo "no haré comentarios". Daría lugar a: Pepe dijo X X = "no haré comentarios" 4) (2 puntos) Deseamos construir un sistema de resolución de correferencia para nombres propios, pronombres personales y sintagmas nominales definidos. En el ejemplo del anexo se tratará de localizar (entre otros) que “El presidente del Gobierno”, “José Luis Rodríguez Zapatero” y “Zapatero” se refieren a la misma entidad. Indicad en el texto del anexo qué otras cadenas de correferencia se podrían establecer. Proponed un sistema de resolución de la correferencia que fuera aplicable a casos como éste. Indicad las fuentes de conocimiento a utilizar y la manera de obtenerlas. Aplicad el sistema a alguna de las cadenas detectadas. Comentad los resultados. Solución Las cadenas de correferencia que aparecen en el ejemplo son: "María Teresa Fernández de la Vega", "la vicepresidenta del gobierno", "la vicepresidenta", "que" (ojo! el último, un pronombre relativo, no lo ha señalado nadie) "el exsecretario de estado de seguridad", "Rafael Vera", "Vera", "los exministros", "José Barrionuevo y José Luis Corcuera" La manera de construirlas es buscando para cada nombre propio (p.ej. "Rafael Vera"), pronombre personal ("ella") o sintagma nominal definido ("el presidente del gobierno") los posibles correferentes (otros nombres propios o sintagmas nominales definidos). Se trata de un algoritmo de búsqueda en un espacio de estados (los posibles candidatos). Obviamente para poder crear el conjunto de candidatos necesitamos un proceso de análisis morfológico, de tagging y de chunking (al nivel de búsqueda de sintagmas nominales definidos). Para guiar el proceso de búsqueda podemos usar: • un conjunto de restricciones de obligado cumplimiento (concordancia en género y número). Pensad que hay complicaciones, por ejemplo la concordancia en el caso de los conjuntos (Barrionuevo y Corcuera forman un conjunto cuyo correferente ha de ser plural). • heurísticas como por ejemplo: • Distancia (en palabras) del sintagma candidato al posible correferente, alguno ha propuesto alguna fórmula original de función de decaimiento de la verosimilitud de la relación con la distancia). • Similitud entre los posibles correferentes ("Rafael Vera" vs "Vera") • Caso de las aposiciones: • La vicepresidente primera del gobierno, María Teresa Fernández de la Vega Anexo. El Gobierno rechaza evaluar la petición de indulto para Vera formulada por Felipe González AGENCIAS Madrid. -- El presidente del Gobierno, José Luis Rodríguez Zapatero, y la vicepresidenta María Teresa Fernández de la Vega han rechazado hacer declaraciones sobre la petición de indulto total para el exsecretario de Estado de Seguridad, Rafael Vera, condenado a siete años de prisión por el caso de los fondos reservados, suscrita, entre otros, por Felipe González y los exministros José Barrionuevo y José Luis Corcuera. Preguntado en los pasillos del Congreso por la petición de indulto a Vera que tendrá que tramitar su Gobierno, Zapatero ha respondido: "No voy a hacer declaraciones". Quien también se ha pronunciado en estos términos ha sido la vicepresidenta del Gobierno, María Teresa Fernández de la Vega, que ha dicho que "el Gobierno ni puede ni debe anticipar su opinión sobre ninguna petición de indulto hasta que se complete el expediente con los informes del tribunal sentenciador, el Ministerio Fiscal y de las partes. Por lo tanto, no es éste el momento para dar opinión alguna".