Herramientas de usuario

Herramientas del sitio


materias:pln:uba2019:practico1

Diferencias

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

Enlace a la vista de comparación

Próxima revisión
Revisión previa
materias:pln:uba2019:practico1 [2019/09/09 12:02] – created francolqmaterias:pln:uba2019:practico1 [2019/09/12 05:07] (actual) francolq
Línea 12: Línea 12:
 ===== Instrucciones ===== ===== Instrucciones =====
  
-El código base para el proyecto se encuentra en el [[https://github.com/PLN-FaMAF/PLN-2019|repositorio de la materia]].+El código base para el proyecto se encuentra en el [[https://github.com/PLN-FaMAF/pln-uba-2019/tree/master/tagging|repositorio de la 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. 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.
  
Línea 47: Línea 47:
 Uso del script: Uso del script:
  
-  $ python tagging/scripts/stats.py+  $ python tagging/scripts/stats.py -c ancora-3.0.1es
  
 Documentación: Documentación:
  
 +  * [[https://github.com/PLN-FaMAF/pln-uba-2019/tree/master/notebooks/tagging/01%20Etiquetado%20de%20Secuencias%20Parte%201.ipynb|Notebook: 1. Etiquetado de Secuencias: Parte 1]]
   * [[http://clic.ub.edu/corpus/|Corpus AnCora]]   * [[http://clic.ub.edu/corpus/|Corpus AnCora]]
   * [[https://web.archive.org/web/20160325024315/http://nlp.lsi.upc.edu/freeling/doc/tagsets/tagset-es.html|Etiquetas EAGLES]]   * [[https://web.archive.org/web/20160325024315/http://nlp.lsi.upc.edu/freeling/doc/tagsets/tagset-es.html|Etiquetas EAGLES]]
   * [[https://nlp.stanford.edu/software/spanish-faq.shtml#tagset|Stanford CoreNLP simplified tagset]]   * [[https://nlp.stanford.edu/software/spanish-faq.shtml#tagset|Stanford CoreNLP simplified tagset]]
-  * [[https://github.com/PLN-FaMAF/PLN-2019/blob/master/notebooks/tagging/01%20Etiquetado%20de%20Secuencias.ipynb|Jupyter notebook: Etiquetado de Secuencias]] 
  
  
Línea 100: Línea 100:
 Ejemplo de uso de los scripts: Ejemplo de uso de los scripts:
  
-  $ python tagging/scripts/train.py -o baseline +  $ python tagging/scripts/train.py -c ancora-3.0.1es -m base -o baseline 
-  $ python tagging/scripts/eval.py -i baseline+  $ python tagging/scripts/eval.py -c ancora-3.0.1es -i baseline
  
 Documentación: Documentación:
  
 +  * [[https://github.com/PLN-FaMAF/pln-uba-2019/tree/master/notebooks/tagging/02%20Etiquetado%20de%20Secuencias%20Parte%202.ipynb|Notebook: 2. Etiquetado de Secuencias: Parte 2]]
   * http://scikit-learn.org/stable/auto_examples/model_selection/plot_confusion_matrix.html   * http://scikit-learn.org/stable/auto_examples/model_selection/plot_confusion_matrix.html
  
  
-===== Ejercicio 3: Entrenamiento y Evaluación de Taggers ===== +===== Ejercicio 3: Clasificador "three words" =====
- +
-  * Programar un script ''train.py'' que permita entrenar un etiquetador baseline. +
-  * Programar un script ''eval.py'' que permita evaluar un modelo de tagging. Calcular: +
-    * //Accuracy//, esto es, el porcentaje de etiquetas correctas. +
-    * //Accuracy// sobre las palabras conocidas y sobre las palabras desconocidas. +
-    * Matriz de confusión, como se explica en la sección 5.7.1 (//Error Analysis//) de Jurafsky & Martin. +
-  * Entrenar y evaluar el modelo baseline del ejercicio anterior. Reportar los resultados en el README. +
-  * **Bonus**: Graficar la matriz de confusión como un mapa de calor (ver documentación abajo). +
- +
-Ejemplo de uso de los scripts: +
- +
-  $ python tagging/scripts/train.py -o baseline +
-  $ python tagging/scripts/eval.py -i baseline +
- +
-Documentación: +
- +
-  * http://scikit-learn.org/stable/auto_examples/model_selection/plot_confusion_matrix.html +
- +
- +
-===== Ejercicio 4: Clasificador "three words" =====+
  
   * Implementar en ''classifier.py'' un tagger que utilice un clasificador para etiquetar cada palabra en base a la información disponible en una ventana alrededor de la palabra.   * Implementar en ''classifier.py'' un tagger que utilice un clasificador para etiquetar cada palabra en base a la información disponible en una ventana alrededor de la palabra.
Línea 141: Línea 122:
     * ''sklearn.naive_bayes.MultinomialNB''     * ''sklearn.naive_bayes.MultinomialNB''
     * ''sklearn.svm.LinearSVC''     * ''sklearn.svm.LinearSVC''
-  * Reportar los resultados en el README. Reportar también tiempo de evaluación.+  * Agregar al script de entrenamiento (train.py) una opción de línea de comandos que permita utilizar estos clasificadores. 
 +  * Entrenar y evaluar. Reportar los resultados en el README. Reportar también tiempos de entrenamiento y evaluación.
  
 /* /*
Línea 187: Línea 169:
   $ nosetests tagging/tests/test_classifier.py    $ nosetests tagging/tests/test_classifier.py 
  
 +
 +Documentación:
 +
 +  * [[https://github.com/PLN-FaMAF/pln-uba-2019/tree/master/notebooks/tagging/03%20Etiquetado%20de%20Secuencias%20Parte%202.ipynb|Notebook: 3. Etiquetado de Secuencias: Parte 3]]
 +
 +
 +===== Ejercicio 4: Análisis de Errores y Nuevos Features  =====
 +
 +  * En una notebook, hacer análisis de errores del clasificador anterior.
 +  * Proponer e implementar nuevos features a partir de este análisis.
 +  * Entrenar y evaluar. Verificar la utilidad de los nuevos features propuestos.
 +  * Reportar los resultados en el README.
 +
 +Documentación:
 +
 +  * [[https://github.com/PLN-FaMAF/pln-uba-2019/tree/master/notebooks/tagging/02%20Etiquetado%20de%20Secuencias%20Parte%202.ipynb|Notebook: 2. Etiquetado de Secuencias: Parte 2]]
  
  
Línea 204: Línea 202:
  
 /* /*
-===== Ejercicio 8: Análisis de Error y Nuevos Features  ===== 
- 
-**TBA** 
- 
 ===== Ejercicio 9: Red Neuronal Recurrente ===== ===== Ejercicio 9: Red Neuronal Recurrente =====
  
materias/pln/uba2019/practico1.1568030565.txt.gz · Última modificación: 2019/09/09 12:02 por francolq