1) (3 puntos) Considerad el siguiente párrafo (tomado del WSJ del

Anuncio
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".
Descargar