Tabla de Contenidos

Trabajo Práctico 3 - Análisis Sintáctico

(volver a la página principal)

En este trabajo práctico implementaremos varios modelos de análisis sintáctico y realizaremos algunos experimentos con ellos.

Instrucciones

El código base para el proyecto se encuentra en el repositorio del a materia. La entrega del proyecto es a través de github. Por lo tanto, deben hacer un “fork” del repositorio dentro de sus cuentas de github.

Además del código fuente, deben elaborar un README con una breve explicación de lo que hicieron en cada ejercicio. El README puede estar en texto plano (txt), markdown (md) o restrucured text (rst), y debe estar incluído dentro de la carpeta tagging.

Criterios de Evaluación:

Ejercicio 1: Evaluación de Parsers

Programar un script eval.py que permita evaluar los parsers.

Interfaz de eval.py:

$ python parsing/scripts/eval.py  --help
Evaulate a parser.

Usage:
  eval.py -i <file> [-m <m>] [-n <n>]
  eval.py -h | --help

Options:
  -i <file>     Parsing model file.
  -m <m>        Parse only sentences of length <= <m>.
  -n <n>        Parse only <n> sentences (useful for profiling).
  -h --help     Show this screen.

Ejercicio 2: Algoritmo CKY

Interfaz del parser:

class CKYParser:
 
    def __init__(self, grammar):
        """
        grammar -- a binarised NLTK PCFG.
        """
 
    def parse(self, sent):
        """Parse a sequence of terminals.
 
        sent -- the sequence of terminals.
        """

Tests:

$ nosetests parsing/tests/test_cky_parser.py 

Documentación:

Ejercicio 3: PCFGs No Lexicalizadas

Interfaz de UPCFG en upcfg.py:

class UPCFG:
    """Unlexicalized PCFG.
    """
 
    def __init__(self, parsed_sents, start='sentence'):
        """
        parsed_sents -- list of training trees.
        """
 
    def productions(self):
        """Returns the list of UPCFG probabilistic productions.
        """
 
    def parse(self, tagged_sent):
        """Parse a tagged sentence.
 
        tagged_sent -- the tagged sentence (a list of pairs (word, tag)).
        """

Tests:

$ nosetests parsing/tests/test_upcfg.py 

Documentación:

Ejercicio 4: Markovización Horizontal

Documentación:

Ejercicio 5 (punto bonus): CKY con Producciones Unarias

Documentación: