materias:pln:practico3
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
materias:pln:practico3 [2017/05/18 14:22] – francolq | materias:pln:practico3 [2019/02/05 19:44] (actual) – removed francolq | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ====== Trabajo Práctico 3 - Análisis Sintáctico ====== | ||
- | [[materias: | ||
- | |||
- | En este trabajo práctico implementaremos varios modelos de análisis sintáctico y realizaremos algunos experimentos con ellos. | ||
- | |||
- | * Repositorio: | ||
- | * Fecha de entrega: 15/06 a las 23:59. | ||
- | |||
- | |||
- | ===== Instrucciones ===== | ||
- | |||
- | El código base para el proyecto se encuentra en el [[https:// | ||
- | La entrega del proyecto es a través de github. Por lo tanto, deben **hacer un " | ||
- | |||
- | 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 '' | ||
- | |||
- | Criterios de Evaluación: | ||
- | |||
- | * Estilo de codificación (chequeado con flake8 y a ojo). | ||
- | * Diseño del código: uso de clases, herencia, etc. | ||
- | * Uso y aprobación de tests (provistos y definidos por uds.). | ||
- | * Uso apropiado de git (commits granulares, logs informativos). | ||
- | * Resultados. | ||
- | * README. | ||
- | |||
- | |||
- | ===== Ejercicio 1: Evaluación de Parsers ===== | ||
- | |||
- | Programar un script '' | ||
- | |||
- | * Calcular: | ||
- | * Labeled precision, recall y F1. | ||
- | * Unlabeled precision, recall y F1. | ||
- | * Dar las siguientes opciones: | ||
- | * '' | ||
- | * '' | ||
- | * Entrenar y evaluar los modelos " | ||
- | |||
- | Interfaz de '' | ||
- | |||
- | < | ||
- | $ python parsing/ | ||
- | Evaulate a parser. | ||
- | |||
- | Usage: | ||
- | eval.py -i < | ||
- | eval.py -h | --help | ||
- | |||
- | Options: | ||
- | -i < | ||
- | -m < | ||
- | -n < | ||
- | -h --help | ||
- | </ | ||
- | |||
- | |||
- | ===== Ejercicio 2: Algoritmo CKY ===== | ||
- | |||
- | * Implementar el algoritmo CKY en un módulo '' | ||
- | * Agregar a los tests un test con una gramática y una oración tal que la oración tenga más de un análisis posible (sintácticamente ambigua). | ||
- | |||
- | Interfaz del parser: | ||
- | |||
- | <code python> | ||
- | class CKYParser: | ||
- | |||
- | def __init__(self, | ||
- | """ | ||
- | grammar -- a binarised NLTK PCFG. | ||
- | """ | ||
- | |||
- | def parse(self, sent): | ||
- | """ | ||
- | |||
- | sent -- the sequence of terminals. | ||
- | """ | ||
- | </ | ||
- | |||
- | Tests: | ||
- | |||
- | $ nosetests parsing/ | ||
- | |||
- | Documentación: | ||
- | |||
- | * http:// | ||
- | |||
- | |||
- | ===== Ejercicio 3: PCFGs No Lexicalizadas ===== | ||
- | |||
- | * Implementar una UPCFG, una PCFG cuyas reglas y probabilidades se obtienen a partir de un corpus de entrenamiento. | ||
- | * Deslexicalizar completamente la PCFG: en las reglas, reemplazar todas las entradas léxicas por su POS tag. Luego, el parser también debe ignorar las entradas léxicas y usar la oración de POS tags para parsear. | ||
- | * Entrenar y evaluar la UPCFG para todas las oraciones de largo menor o igual a 20. Reportar resultados y tiempos de evaluación en el README. | ||
- | |||
- | Interfaz de '' | ||
- | |||
- | <code python> | ||
- | class UPCFG: | ||
- | """ | ||
- | """ | ||
- | |||
- | def __init__(self, | ||
- | """ | ||
- | parsed_sents -- list of training trees. | ||
- | """ | ||
- | |||
- | def productions(self): | ||
- | """ | ||
- | """ | ||
- | |||
- | def parse(self, tagged_sent): | ||
- | """ | ||
- | |||
- | tagged_sent -- the tagged sentence (a list of pairs (word, tag)). | ||
- | """ | ||
- | </ | ||
- | |||
- | Tests: | ||
- | |||
- | $ nosetests parsing/ | ||
- | |||
- | Documentación: | ||
- | |||
- | * http:// | ||
- | |||
- | |||
- | ===== Ejercicio 4: Markovización Horizontal ===== | ||
- | |||
- | * Modificar la UPCFG para admitir el uso de Markovización Horizontal de orden '' | ||
- | * Agregar al script de entrenamiento ('' | ||
- | * Entrenar y evaluar para varios valores de '' | ||
- | |||
- | Documentación: | ||
- | |||
- | * Videolecture [[https:// | ||
- | |||
- | ===== Ejercicio 5 (punto bonus): CKY con Producciones Unarias ===== | ||
- | |||
- | * Agregar el algoritmo CKY soporte para producciones unarias. | ||
- | * Modificar la UPCFG para admitir el uso de producciones unarias (con el parámetro '' | ||
- | * Agregar al script de entrenamiento ('' | ||
- | |||
- | Documentación: | ||
- | |||
- | * Videolecture [[https:// |
materias/pln/practico3.1495117377.txt.gz · Última modificación: 2018/08/10 03:03 (editor externo)