PLN, Curs 2005-2006 quatrimestre de tardor, examen final Duració 2 hores, sense apunts Aquí teneis una posible solución del examen. 1) (6 puntos) Deseamos construir un sistema de extracción de información que nos permita obtener relaciones binarias entre algunas unidades que aparezcan en documentos. Nos limitaremos a unidades de tipo NE (personas, organizaciones, locativos), fechas, cantidades, etc. En el ejemplo del anexo se podrían obtener relaciones como: lugar_nacimiento (Barceló_Miguel, Felanitx) contenido(Felanitx, España) año_nacimiento (Barceló_Miguel, 1957) lugar_formación(Barceló_Miguel, Barcelona) etc. 1a) Discutid los problemas de minería de textos que el sistema encontraría, ilustradlos, en los casos posibles, con ejemplos del anexo. Existen dos familias de problemas: 1. 2. problemas de PLN a. generales i. segmentación en párrafos, oraciones, ... ii. limpieza (eliminación de metainformación) iii. detección de palabras 1. términos multipalabra, barbarismos, neologismos, fórmulas, acrónimos, fechas, cantidades, ... iv. ambigüedad en la morfología, locuciones, frases hechas, ... v. tagging vi. ambigüedad en la sintaxis vii. polisemia viii. elipsis, correferencia b. específicos de esta aplicación i. detección y clasificación de NE ii. NE de granularidad fina (CITY vs. LOCATION) iii. Gentilicios iv. Necesidad de conocimiento externo (ej. Una ciudad está dentro de un país) v. Formas variadas de la misma NE (ej. Miguel Barceló, Miquel Barceló, Barceló, M. ...) problemas de la detección de las relaciones a. que una relación no esté presente en un documento b. que la distancia entre dos entidades relacionadas sea muy grande c. que aparezcan varios ejemplares de una relación en un documento d. ambigüedad en la relación e. relaciones poco precisas o indefinidas f. dificultad de identificar las entidades relacionadas y la relación (p.ej. dos entidades no contiguas, es decir con otras entidades entre ellas, están relacionadas) 1b) Proponed una especificación funcional del sistema (es suficiente una lista de funcionalidades con una breve descripción de las no obvias). Una opción inicial que teneis es considerar el sistema de extracción de relaciones partiendo de un conjunto de relaciones predefinido (lo cual sería el ejemplo típico de un sistema de IE) o bien buscar asociaciones entre NE en un documento sin tener un conjunto previo. En una transparencia de clase se aludía al primer caso como “búscame tal relación” y al segundo “a ver qué encuentras aquí de interesante”. Obviamente el primer enfoque es más preciso pero obliga al usuario a definir y caracterizar las relaciones (por ejemplo la relación lugar_de_nacimiento se podría establecer entre PERSON y algún tipo de LOCATION (CITY, COUNTRY, STATE, ...). Funcionalidades básicas: Buscar relaciones binarias en un documento o Buscar determinados tipos de relaciones Realizar IR sobre una base de documentos o Internet o Formas variadas de definir los documentos a recuperar Tema, palabras clave, ... Configurar el sistema o Número máximo de documentos a tratar o Idioma o ... Gestión de la base de relaciones recuperadas o Consultas varias o Filtrados o Validación manual Gestión (de existir) del conjunto de relaciones a extraer o Altas, bajas, modificaciones, consultas Gestión de las reglas de extracción (posiblemente) Aprendizaje de las reglas de extracción Formas variadas de presentación y formateo de los resultados Otras funcionalidades: Se podrían aprovechar algunos de los módulos del sistema (algunos de vosotros lo habeis hecho) para ofrecer funcionalidades adicionales (preproceso lingüístico, detección y clasificación de NE, clustering temático, etc.) 1c) Proponed la arquitectura del sistema de extracción de relaciones (módulos que incluye, relaciones entre ellos, etc.). Indicad las fuentes de conocimiento a utilizar por cada componente. Haced especial hincapié en los componentes lingüísticos. Los constituyentes básicos de la aplicación, siguiendo la especificación funcional anterior serían: Módulo de IR o Permitiría la recuperación de documentos potencialmente relevantes a partir de colecciones cerradas o Internet o Incorporaría submódulos para la extracción del contenido textual de los documentos. Tened en cuenta que los documentos pueden ser homogéneos (p.ej. un .txt) o heterogéneos (p.ej. una página Web). Hay varias formas de codificación (.txt, .doc, .pdf, ...). Se debe, por una parte, identificar el formato y características del documento y, por otra parte, extraer el contenido textual Módulo de enriquecimiento (o preproceso) del texto (preproceso) o Segmentación, limpieza, tokenización, análisis morfológico, POS tagging, NER, NEC, anotación semántica, posiblemente desambiguación semántica, chunking y extracción de relaciones sintácticas (no parece a priori útil el realizar full parsing). Posiblemente búsqueda de correferencias. ... Módulo de configuración Módulo de gestión de tipos de relaciones o Alta, baja, consulta, modificación de los tipos de relaciones Módulo de gestión de las reglas de extracción Módulo de gestión de la base de datos de relaciones extraídas Módulo de extracción de relaciones Módulo de visualización Los módulos básicos son el de enriquecimiento (o preproceso) y el de extracción de relaciones. 1d) Ilustrad el funcionamiento del módulo de extracción con algún ejemplo (preferiblemente no trivial) de los que aparecen en el anexo. Supongamos que el módulo de extracción implica la ejecución de un conjunto de reglas de extracción que se activan a partir de un trigger word. Supongamos que son reglas de tipo relacional a(X,Y,...) :- b(X,Y, ...), c(...). (en notación Prolog, a, b, c ... son predicados y X,Y, ... son variables. Considerad la siguiente regla, activada por el trigger word FORMAR: lugar_formacion(X,Y) :persona(X), lugar(Y), accion(Z,formar), elipsis(U), tema(Z,U), correferencia(U,X). donde las variables denotan tokens ( o posiciones en la oración) Considerad el siguiente fragmento: Barceló, Miquel(Felanitx, España, 1957) Pintor español. Formado en Barcelona, ... Una vez preprocesado tendríamos la siguiente lista de tokens: 1_"Barceló, Miquel"_persona 2_"(" 3_"Felanitx"_ciudad 4_"," 5_"España"_pais 6_"," 7_"1957"_año 8_")" 9_""_elipsis 10_"Pintor"_profesion 11_"español"_gentilicio(España_pais) 12_"." 13_""_elipsis 14_"Formado"_accion(formar) 15_"en" 16_"Barcelona"_ciudad 17_"," ... El analizador sintáctico superficial (o el identificador de relaciones sintácticas) habrá detectado que el tema de la accion(14,formar) es el elemento elidido 13. El identificador de correferencias habrá detectado que el correferente de 14 es 1. el lema "formar" activaría la regla enterior. Con ello la instanciación de la regla podría ser (con algunas inferencias como ciudad => lugar): lugar_formacion(1,16) :persona(1), lugar(16), accion(14,formar), elipsis(13), tema(14,13), correferencia(13,1). con lo que obtendríamos la relación lugar_formacion("Barceló, Miquel", "Barcelona") 2) (4 puntos) Deseamos disponer de un módulo de detección de acrónimos o siglas (FIB) y de sus posibles referentes (Facultat d'Informàtica de Barcelona, Federación Internacional de Billar, ...). Deseamos también poder localizar abreviaturas (Dr.) y ser capaces de distinguir las abreviaturas de los acrónimos. 2a) Definid las diferentes tareas implicadas y discutid los problemas que se presentan para llevar a cabo estas tareas Detectar un acrónimo en un documento Detectar una abreviatura en un documento Detectar el correferente de un acrónimo Desambiguar un acrónimo en contexto Detectar un acrónimo en un documento Los patrones más frecuentes para caracterizar un candidato a acrónimo son sencillos (por ejemplo, una secuencia de mayúsculas de longitud > 1 pero no muy larga opcionalmente separadas por puntos). El problema es que numerosos acrónimos no cumplen ese patrón y si lo hacemos menos estricto entonces podemos detectar como acrónimos cosas que no lo son. Detectar una abreviatura en un documento Las abreviaturas suelen tener un patrón del tipo mayúscula seguida de minúsculas y de punto y no suelen ser muy largas. El problema es que a menudo hay excepciones. Es decir que dado un conjunto de patrones para identificar candidatos a ACRO, a ABREV nos encontramos con que una determinada expresión puede ser candidata a ACRO y a ABREV. El problema es un proceso de clasificación de la candidata entre 3 clases: ACRO, ABREV, NADA. Detectar el correferente de un acrónimo El correferente de un acrónimo (Facultat d' Informàtica de Barcelona respecto a FIB) puede detectarse con unas cuantas reglas sencillas. Por ejemplo, localizar una NE de tipo organización tal que el número de palabras plenas que la compongan (despreciando palabras funcionales) sea igual al número de letras del acrónimo y cada letra del acrónimo corresponda a la inicial de la palabra correspondiente. El problema es que esta regla tan estricta hay que relajarla para aumentar la cobertura (y las reglas relajadas ya no son tan precisas) y tener en cuenta la distancia, la frecuencia, la coocurrencia, etc. Desambiguar un acrónimo en contexto Obviamente de forma aislada no podemos saber cuál de las posibles expansiones de un acrónimo es la correcta (FIB => Facultat d' Informàtica de Barcelona, Federación Internacional de Billar, etc.). Ahora bien si disponemos de un contexto de aparición la ambigüedad puede resolverse ("la matrícula en la FIB se llevará a cabo ..."). El problema es que no siempre las cosas van tan bién ("la DAFIB ha organizado en la FIB el campeonato catalán de billar"). 2b) ¿Qué funcionalidades debiera cubrir el módulo? Posibles funcionalidades: Hay dos grandes familias: 1. Confección de un gazetteer: a. confeccionar (extraer [semi-] automáticamente) una Base de datos de <acrónimo, expansión, contexto> b. explotar la BD 2. Detección de acrónimos, abreviaturas y sus expansiones a. dado un texto identificar los acrónimos b. dado un texto identificar las abreviaturas c. dado un acrónimo identificar las posibles expansiones en un documento d. dado un acrónimo identificar las posibles expansiones en una colección de documentos e. dado un acrónimo con varias posibles expansiones desambiguar la correcta f. dada una expansión extraer los posibles acrónimos g. dada una abreviatura, expandirla 2c) Proponed la arquitectura del sistema. Describid con cierto detalle cómo se lleva a cabo la tarea de búsqueda de un referente para un acrónimo ya detectado. * Módulo de procesamiento linguístico (No es necesario procesamiento sintáctico profundo ni semántico, las cosas se pueden abordar a nivel superficial). * Módulo de gestión del (de los) gazetteer (s) de acrónimos * Módulo de gestión del (de los) lexicones de abreviaturas y expansiones * Módulo de gestión de documentos * Módulo de identificación de candidatos a acrónimo y a abreviatura * Módulo de clasificación de candidatos en ACRO, ABREV, NADA * Módulo de correferencia acrónimo <-> expansión * Módulo de desambiguación 2d) Si un acrónimo puede tener varios referentes proponed alguna forma de desambiguación entre los mismos (es decir, si en un texto aparece el acrónimo FIB cómo podemos saber si se refiere a la Facultat d'Informàtica de Barcelona o a la Federación Internacional de Billar?) La mejor manera es usar alguna forma de representación del tema (topic) de la expansión de forma que a la hora de desambiguar se buscara: dado <acrónimo, contexto> y las siguientes posibilidades: <expansión 1, tema 1> ... <expansión n, tema n> la expansión i tal que la distancia(contexto, tema i> fuera mínima. Podeis usar como representación de tema i algo del tipo de las Topic signatures (bags ponderados de términos, palabras, lemas, etc.) y como medida de distancia alguna de las explicadas en clase (y usadas en las prácticas) como la información mutua, el coseno, el producto escalar, etc. Anexo Barceló, Miquel (Felanitx, España, 1957) Pintor español. Formado en Barcelona, adquirió notoriedad internacional tras la Documenta 7 de Kassel (1982), en la cual expuso obras primerizas en las que se reflejaba la influencia del neoexpresionismo alemán y la transvanguardia italiana. Su pintura, siempre dentro del marco del figurativismo, incorpora numerosos referentes culturales, entre los que cabe destacar en una primera etapa el trasfondo mediterráneo, y a raíz de una prolongada estancia en Mali, iniciada en 1988, el paisaje y la forma de vida africanos; más recientemente ha introducido en su obra complejas e intelectualizadas reflexiones sobre el entorno privado del artista: su taller, su biblioteca, etc. Otro ámbito destacado de su actividad artística es la ilustración de libros, capítulo en el cual ha ilustrado obras de Paul Bowles y Enrique Juncosa, entre otros. En 1996 fue objeto de una doble exposición retrospectiva celebrada en los museos parisinos del Jeu de Paume y el Centro Pompidou. Véase: Dubuffet, Jean Saura, Antonio Tàpies, Antoni