Tema
Análisis sintáctico de dependencias
- Lenguaje natural y modelos de lenguaje
- Nivel avanzado
El análisis de dependencias construye un árbol donde cada palabra cuelga de su núcleo sintáctico con una etiqueta de relación, de forma que la oración queda descrita por pares de palabras en lugar de por constituyentes anidados.
Nombre en inglés
Dependency parsing
Intuición
Conviene ver la oración como un organigrama, ya que el verbo principal manda, el sujeto y el objeto dependen de él, y los modificadores cuelgan de la palabra que modifican. El analizador por transiciones levanta ese organigrama con una pila y tres acciones, que son desplazar, unir a la izquierda y unir a la derecha, en un número de pasos proporcional a la longitud de la oración.
Fórmula
acciones totales = 2n para una oración de n palabras, de modo que el analizador por transiciones corre en O(n)
Ejemplo resuelto
Sea la oración Ana lee libros. El análisis correcto hace depender Ana de lee con la relación de sujeto y libros de lee con la relación de objeto, mientras que lee cuelga de la raíz. El analizador desplaza Ana, desplaza lee, aplica unir a la izquierda para colgar Ana de lee, desplaza libros, aplica unir a la derecha y cierra con la raíz. Son 6 acciones para 3 palabras, que es exactamente el doble previsto.
Errores frecuentes
- Confundir la estructura de dependencias con la de constituyentes, cuando la primera tiene un nodo por palabra y ninguno vacío, y la segunda introduce nodos que no corresponden a ninguna palabra.
- Informar la exactitud sobre arcos con etiqueta sin informar también la exactitud sin etiqueta, porque una diferencia grande entre ambas indica que el analizador acierta la forma del árbol y falla la relación.
- Suponer que el árbol siempre es proyectivo, ya que en español la anteposición de un complemento produce arcos cruzados que un analizador por transiciones básico no puede generar.
Ejercicio
Una oración de 12 palabras se analiza con un analizador por transiciones estándar. ¿Cuántas acciones hacen falta?
Ver la solución
Cada palabra entra a la pila con una acción de desplazamiento y sale con una acción de unión, de modo que hacen falta 2 por 12 = 24 acciones. El orden de crecimiento es lineal porque ninguna acción se repite sobre la misma palabra y el clasificador decide una sola vez por paso. Al respecto conviene contrastarlo con los analizadores por grafos, que buscan el árbol de peso máximo y cuestan O(n^2) o más.
Respuesta: 24 acciones