Herramientas de usuario

Herramientas del sitio


materias:pln:practico3

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
materias:pln:practico3 [2015/10/28 15:50] francolqmaterias: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:pln|(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. 
- 
-  * Repositorio: https://github.com/PLN-FaMAF/PLN-2015/tree/practico3. 
-  * Fecha de entrega: <del>04/11</del> 11/11 a las 23:59. 
- 
- 
-===== Instrucciones ===== 
- 
-El código base para el proyecto se encuentra en el [[https://github.com/PLN-FaMAF/PLN-2015/tree/practico3|branch ''practico3'' del 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: 
- 
-  * 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 ''eval.py'' que permita evaluar los parsers. 
- 
-  * Calcular: 
-    * Labeled precision, recall y F1. 
-    * Unlabeled precision, recall y F1. 
-  * Dar las siguientes opciones: 
-    * ''-m <m>'': evaluar sólo oraciones de largo menor o igual a ''m''. 
-    * ''-n <n>'': evaluar sólo las primeras ''n'' oraciones. 
-  * Entrenar y evaluar los modelos "baseline" para todas las oraciones de largo menor o igual a 20. 
- 
-Interfaz de ''eval.py'': 
- 
-<code> 
-$ 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. 
-</code> 
- 
- 
-===== Ejercicio 2: Algoritmo CKY ===== 
- 
-  * Implementar el algoritmo CKY en un módulo ''cky_parser.py''. 
-  * 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): 
-        """ 
-        grammar -- a binarised NLTK PCFG. 
-        """ 
- 
-    def parse(self, sent): 
-        """Parse a sequence of terminals. 
- 
-        sent -- the sequence of terminals. 
-        """ 
-</code> 
- 
-Tests: 
- 
-  $ nosetests parsing/tests/test_cky_parser.py  
- 
-Documentación: 
- 
-  * http://www.nltk.org/_modules/nltk/tree.html 
- 
- 
-===== 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. 
- 
-Interfaz de ''UPCFG'' en ''upcfg.py'': 
- 
-<code python> 
-class UPCFG: 
-    """Unlexicalized PCFG. 
-    """ 
- 
-    def __init__(self, parsed_sents): 
-        """ 
-        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)). 
-        """ 
-</code> 
- 
-Tests: 
- 
-  $ nosetests parsing/tests/test_upcfg.py  
- 
-Documentación: 
- 
-  * http://www.nltk.org/_modules/nltk/grammar.html 
  
materias/pln/practico3.1446047415.txt.gz · Última modificación: 2018/08/10 03:03 (editor externo)