Introducción al Procesamiento de Lenguaje Natural
Grupo de PLN - InCo
Roles Semánticos
Agenda
• Representación de eventos
• Estructura argumental
• Roles Semánticos
• Aplicaciones
• Semantic Role Labeling
• PropBank
• FrameNet
Representación de eventos
Consideremos las siguientes oraciones:
• Juan comió.
• Juan comió una medialuna.
• Juan comió una medialuna en la mesa.
• Juan comió en la mesa.
• Juan comió al mediodía.
• Juan comió una medialuna al mediodía.
• Juan comió una medialuna al mediodía en la mesa.
Representación de eventos
Representación hasta el momento:
• comió1(juan)
• comió2(juan, medialuna)
• comió3(juan, medialuna, mesa)
• comió4(juan, mesa)
• comió5(juan, mediodía)
• comió6(juan, medialuna, mediodía)
• comió7(juan, medialuna, mediodía, mesa)
Muchos predicados que deberían estar relacionados entre sí.
Representación de eventos
Podemos dejar argumentos subespecificados:
• ∃x,y,z comió(juan, x, y, z)
• ∃y,z comió(juan, medialuna, y, z)
• ∃z comió(juan, medialuna, mesa, z)
• ∃x,z comió(juan, x, mesa, z)
• ∃x,y comió(juan, x, y, mediodía)
• ∃y comió(juan, medialuna, y , mediodía)
• comió(juan, medialuna, mesa, mediodía)
Representación de eventos
Usemos una variable de evento y separemos los argumentos:
• ∃e comer(e) ∧ el_que_come(e, juan)
• ∃e comer(e) ∧ el_que_come(e, juan) ∧ lo_comido(e, medialuna)
• ∃e comer(e) ∧ el_que_come(e, juan) ∧ lo_comido(e, medialuna) ∧ lugar(e, mesa)
• ∃e comer(e) ∧ el_que_come(e, juan) ∧ lugar(e, mesa)
• ∃e comer(e) ∧ el_que_come(e, juan) ∧ hora(e, mediodía)
• ∃e comer(e) ∧ el_que_come(e, juan) ∧ lo_comido(e, medialuna) ∧ hora(e, mediodía)
• ∃e comer(e) ∧ el_que_come(e, juan) ∧ lo_comido(e, medialuna) ∧ hora(e, mediodía) ∧ lugar(e, mesa)
Este enfoque se denomina Neo-Davidsoniano.
Representación de eventos
Ventajas del enfoque:
• Es flexible ante la aparición de diferentes argumentos.
• Permite la inferencia:
∃e comer(e) ∧ el_que_come(e, juan) ∧ lo_comido(e, medialuna)
∧ hora(e, mediodía) ∧ lugar(e, mesa)
⇒
∃e comer(e) ∧ el_que_come(e, juan) ∧ hora(e, mediodía) Desventajas:
• Cada verbo necesitaría su propio juego de argumentos.
Funciones sintácticas
Los sintagmas son los constituyentes de la oración y cumplen diversas funciones sintácticas:
• sujeto
• objeto directo
• objeto indirecto
• complemento de régimen
• complemento circunstancial
[La maestra] entregó [un regalo] [a quienes se portaron bien] [ayer] [en la escuela].
Juan viajó [a París] antes de vivir [en Londres].
(Repaso: Introducción a la gramática del español)
Estructura argumental
verbo argumentos (complementos) (son subcategorizados) adjuntos
adjuntos
- complementos circunstanciales
argumentos - sujeto
- objeto directo - objeto indirecto
- complementos de régimen (preposicionales)
Estructura argumental
cantar: [sujeto, objeto directo, objeto indirecto]
dormir: [sujeto]
llover: [-]
(Repaso: Introducción a la gramática del español)
Estructura argumental
Juan (le) canta una canción a su amada.
Juan canta una canción.
Juan canta.
También él empieza a comer, a dormir, como un niño que duerme un sueño sin miedo.
Llueve.
Llueven pingüinos de punta.
Estructura argumental
Podemos definir varias entradas diferentes para cantar:
cantar1: [sujeto, objeto directo, objeto indirecto]
cantar2: [sujeto, objeto directo]
cantar3: [sujeto]
o definir argumentos opcionales:
cantar: [sujeto, (objeto directo), (objeto indirecto)]
(Repaso: Introducción a la gramática del español)
Roles semánticos
Establecen una relación entre sintaxis y semántica
El niño come la manzana.
sujeto ↔ agente
objeto directo ↔ tema (paciente)
La manzana es comida por el niño.
sujeto ↔ tema (paciente)
complemento agente ↔ agente
Roles semánticos
El ruido desagrada al maestro.
sujeto ↔ tema
objeto directo ↔ experimentante
El maestro detesta el ruido.
sujeto ↔ experimentante objeto directo ↔ tema
(Repaso: Introducción a la gramática del español)
Roles semánticos
Juan corta el pan con el cuchillo.
sujeto ↔ agente
objeto directo ↔ tema
complemento preposicional ↔ instrumento
Roles semánticos
• Existe una diferencia entre la función gramatical y el rol semántico del constituyente.
• El análisis sintáctico nos da:
– los constituyentes
– a veces también la función gramatical – pero no el rol semántico
Roles semánticos
Los roles semánticos son relaciones que se dan dentro de una oración, entre los distintos
sintagmas.
Implican un elemento distinguido, el predicado,
que estructura la grilla semántica.
Grilla Semántica
[Juan]AGENTE rompió [la ventana]TEMA.
[Juan]AGENTE rompió [la ventana]TEMA [con una piedra]INSTRUMENTO.
[Una piedra]INSTRUMENTO rompió [la ventana]TEMA. [La ventana]TEMA se rompió.
[La ventana]TEMA fue rota [por Juan]AGENTE.
La grilla semántica del predicado romper contiene los roles semánticos: AGENTE, TEMA, INSTRUMENTO.
Roles semánticos
¿Qué roles existen?
AGENTE – El mozo derramó la sopa.
EXPERIMENTANTE – Juan tiene dolor de cabeza.
FUERZA – El viento abrió la ventana.
TEMA – María rompió el hielo.
RESULTADO – El obrero construyó un muro.
CONTENIDO – Carolina dijo “¿Conocés a Juan?”
INSTRUMENTO – Juan abrió la puerta con la llave.
BENEFICIARIO – Pedro compró el boleto para su jefe.
ORIGEN – Volé desde Chile.
Roles semánticos
Se propuso una cantidad grande de roles semánticos, pero las propiedades no son siempre homogéneas.
1. Juan abre esa puerta con la llave roja.
2. La llave roja abre esa puerta.
3. Juan come la pasta con el tenedor.
4. *El tenedor come la pasta.
(Distintos tipos de instrumentos.)
Aun así son menos que tener roles específicos para cada verbo.
Si tuviéramos los roles semánticos…
[Juan]
AGENTEcomió [una medialuna]
TEMA[al mediodía]
MOD-TIEMPO[en la mesa]
MOD-LUGAR.
∃e comer(e) ∧ agente(e, juan) ∧ tema(e,
medialuna) ∧ tiempo(e, mediodía) ∧ lugar(e,
mesa)
• Equivalencia de:
• Los obreros construyeron la casa
• La casa fue construida por los obreros
• Implicación de 1 a 2 en:
1. La oferta de una fórmula de pago de la deuda por Argentina está siendo considerada por los acreedores.
2. Argentina ofreció una fórmula de pago de la deuda.
Si tuviéramos los roles
semánticos…
¿Y para estos casos?
• Implicación de 1 a 2 y 3
1. Juan le vendió la casa a Pedro en $ 100.
2. Pedro pagó $ 100 por la casa.
3. Pedro le compró la casa a Juan.
Si tuviéramos los roles
semánticos…
Si tuviéramos los roles semánticos…
Respuestas a preguntas:
P: Cuándo fue derrotado Napoleón?
Buscar: [PACIENTE Napoleon] [PRED derrotar]
[ARGM-TMP *RESP*]
P: Quién derrotó a Napoleón?
Buscar: [PACIENTE Napoleon] [PRED derrotar]
[AGENTE *RESP*]
Si tuviéramos los roles semánticos…
Respuestas a preguntas:
Juan golpeó a Pedro con un palo ayer en la calle.
Quién?
A quién?
Cuándo ?
Dónde?
Si tuviéramos los roles semánticos…
• Resumen automático
– Los predicados y los núcleos de los roles argumentales resumen el contenido.
• Extracción de información
– Si se reconocen los roles estamos más
cerca de los atributos de una BD
Semantic Role Labeling
• En español: Etiquetado de Roles Semánticos (ERS)
• Tarea en PLN que consiste en asignar roles semánticos a constituyentes.
[Juan]AGENTE rompió [la ventana]TEMA [con una piedra]INSTRUMENTO.
Requiere:
• Haber identificado los constituyentes sintácticos Haber identificado los predicados
Semantic Role Labeling
• Aprendizaje supervisado
• Necesidad de corpus para entrenamiento y testeo
• Además:
– Qué es un predicado – Cuáles son los roles
• Recursos: PropBank y FrameNet (para
el inglés)
Semantic Role Labeling
Pseudocódigo del procesamiento habitual:
function SemanticRoleLabel(words) returns labeled tree parse ← Parse(words)
for each predicate in parse do for each node in parse do
features ← ExtractFeatures(node,predicate,parse) ClassifyNode(node,features,parse)
Semantic Role Labeling
Necesitamos:
• Un parser (Collins, Charniak, FreeLing)
• Identificar cuáles son los predicados (habitualmente verbos)
• Un conjunto de features calculables para el predicado
• Un clasificador que utilice esos features
(SVM, Maximum Entropy)
Semantic Role Labeling
• Atributos para el aprendizaje (Gildea, Jurafsky, 2000, 2002):
• Predicado (la palabra)
• Tipo de constituyente (gn, gp, etc.)
• Núcleo sintáctico del constituyente
• Categoría gramatical del núcleo
• Camino en el árbol de parsing del constituyente al predicado
• Voz de la cláusula (activa o pasiva)
• Posición lineal (antes o después del predicado)
• Subcategorización del predicado (lo sacamos de la regla)
• Otros atributos usados:
Semantic Role Labeling
• En vez de generar un solo clasificador es posible proceder por etapas:
– Eliminación como candidatos de algunos constituyentes.
– Clasificación binaria de un nodo como constituyente o no.
– Clasificación en n-clases según el esquema de roles semánticos que se utilice.
• Evaluación
– Precision, recall, medida-F.
– Baseline: sistema simple basado en reglas (p.ej., 1er gn antes del predicado es AGENTE, gn siguiente es TEMA, etc.)
Sin análisis sintáctico?
Se puede reformular el problema como un etiquetado de secuencias:
Juan agente rompió pred
la tema
ventana tema
con instrumento una instrumento piedra instrumento ...
Sin análisis sintáctico?
Collobert y Weston (2008, 2011) intentan resolver este problema como un caso de tagging
- Word embeddings (Wikipedia)
- Multitask learning (POS tagging, NER, SRL y otras tareas a la vez)
- Redes neuronales convolutivas
- Uno de los primeros ejemplos de Deep Learning
Recursos léxicos para SRL
Para el inglés (parcialmente para otras lenguas) se desarrollaron dos recursos:
• PropBank
• FrameNet
PropBank
http://verbs.colorado.edu/~mpalmer/projects/ace.html
Cuenta con:
• Grilla semántica para los verbos
Los argumentos se anotan con números: arg0, arg1, arg2 …
Arg0 – proto-agente Arg1 – proto-paciente
…a partir del arg2, los roles son específicos para cada verbo.
• Corpus de oraciones etiquetadas (Penn Treebank WSJ)
Más de 100.000 proposiciones (cláusulas) anotadas.
PropBank
Ejemplos de PropBank:
increase.01: go up incrementally Arg0: causer of increase
Arg1: thing increasing Arg2: amount increased Arg3: start point
Arg4: end point
PropBank
Ejemplos de PropBank:
• [
Arg0Big Fruit Co.] increased [
Arg1the price of bananas].
• [
Arg1The price of bananas] was increased again [
Arg0by Big Fruit Co.]
• [
Arg1The price of bananas] increased [
Arg25%].
FrameNet
¿Qué pasa con estos ejemplos?
[El precio de la carne]
ARG1aumentó [un 5%]
ARG2.[El precio de la carne]
ARG1subió [5%]
ARG2.Hubo un aumento [de 5%]
ARG2[en el precio de la carne]
ARG1.Se usan distintos verbos, o incluso un nombre, pero hay equivalencia.
FrameNet da respuesta a esto, mientras que
FrameNet
http://framenet.icsi.berkeley.edu
• FrameNet es un proyecto de anotación manual de roles semánticos orientado a problemas del tipo anterior.
o 960 frames
o 11600 unidades léxicas
o 150,000 oraciones anotadas
FrameNet
• Un frame describe una situación.
• Se instancian los participantes (elementos del frame) en roles
semánticos, de modo particular para cada frame.
• Se codifican también relaciones entre
frames (herencia, causación) y con
FrameNet
Ingestion
Definition:
• An Ingestor consumes food or drink (Ingestibles),
which entails putting the Ingestibles in the mouth for delivery to the digestive system. This may include the use of an Instrument. Sentences that describe the provision of food to others are NOT included in this frame.
FrameNet
Ingestion
FEs:
Core:
Ingestibles [Ingible]
The Ingestibles are the entities that are being consumed by the Ingestor.
Ingestor [Ing]
The Ingestor is the person eating or drinking.
FrameNet
Ingestion
FEs:
Non-Core:
Degree [Degr]
The extent to which the Ingestibles are consumed by the Ingestor.
The wolves DEVOURED the carcass completely.
Duration [Dur]
The length of time spent on the ingestion activity.
They 've been EATING for hours!
….
FrameNet
Ingestion
Inherits From: Ingest_substance, Manipulation
Is Inherited By:
Subframe of:
Has Subframes:
Precedes:
Is Preceded by:
FrameNet
Ingestion
Lexical Units
breakfast.v, consume.v, devour.v, dine.v, down.v, drink.v, eat.v, feast.v, feed.v, gobble.v, gulp.n, gulp.v, guzzle.v, have.v, imbibe.v,
ingest.v, lap.v, lunch.v, munch.v, nibble.v, nosh.v, nurse.v, put away.v, put back.v, quaff.v, sip.n, sip.v, slurp.n, slurp.v, snack.v, sup.v, swig.n, swig.v, swill.v, tuck.v
Commiting-crime
Inherits From: Misdeed
Is Inherited By: Abusing, Kidnapping, Piracy, Rape, Robbery, Smuggling, Theft
Subframe of: Crime_scenario
Relaciones entre frames
¿Y para el español?
PropBank
• No existe un equivalente en español.
• El corpus AnCora tiene anotados algunos roles semánticos y la subcategorización (AnCoraVerb).
• http://clic.ub.edu/corpus/es FrameNet
• Existe un Spanish FrameNet
• 305 frames, 575 unidades léxicas, 10,000 oraciones anotadas.
• http://gemini.uab.es/SFN