(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.
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:
Programar un script eval.py
que permita evaluar los parsers.
-m <m>
: evaluar sólo oraciones de largo menor o igual a m
.-n <n>
: evaluar sólo las primeras n
oraciones.
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.
cky_parser.py
.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:
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:
n
para un n
dado (con el parámetro opcional horzMarkov
).train.py
) una opción de línea de comandos que habilite esta funcionalidad.n
(0, 1, 2 y 3), para las oraciones de largo menor o igual a 20. Reportar resultados y tiempos de evaluación en el README.Documentación:
unary=True
).train.py
) una opción de línea de comandos que habilite esta funcionalidad.Documentación: