Herramientas de usuario

Herramientas del sitio


materias:pln:uba2018:practico1

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:uba2018:practico1 [2018/02/08 19:01] francolqmaterias:pln:uba2018:practico1 [2018/08/10 03:03] (actual) – editor externo 127.0.0.1
Línea 7: Línea 7:
  
   * Repositorio: https://github.com/PLN-FaMAF/PLN-UBA2018.   * Repositorio: https://github.com/PLN-FaMAF/PLN-UBA2018.
-  * Fecha de entrega: 15/2/2018+  * Fecha de entrega: <del>15/02</del> 18/02 a las 23:59.
  
  
Línea 144: Línea 144:
  
 Documentación: Documentación:
 +  * [[http://nbviewer.jupyter.org/url/cs.famaf.unc.edu.ar/~francolq/Modelado%20de%20Lenguaje.ipynb#Generando-Lenguaje-Natural|Jupyter notebook: Generando Lenguaje Natural (ejemplo visto en clase)]] 
 +  * [[https://cs.famaf.unc.edu.ar/~francolq/Fig-4.3.png|Figura 4.3 de Jurafsky & Martin (2008)]]
   * [[https://en.wikipedia.org/wiki/Pseudo-random_number_sampling#Finite_discrete_distributions|Pseudo-random number sampling (Wikipedia)]]   * [[https://en.wikipedia.org/wiki/Pseudo-random_number_sampling#Finite_discrete_distributions|Pseudo-random number sampling (Wikipedia)]]
-  * [[http://nbviewer.jupyter.org/url/cs.famaf.unc.edu.ar/~francolq/Modelado%20de%20Lenguaje.ipynb#Generando-Lenguaje-Natural|Jupyter notebook: Generando Lenguaje Natural (ejemplo visto en clase)]] 
  
  
Línea 155: Línea 155:
   * Calcular V como el tamaño del alfabeto incluyendo el marcador ''</s>''.   * Calcular V como el tamaño del alfabeto incluyendo el marcador ''</s>''.
   * Agregar al script de entrenamiento (''train.py'') una opción de línea de comandos que permita utilizar add-one en lugar de n-gramas clásicos.   * Agregar al script de entrenamiento (''train.py'') una opción de línea de comandos que permita utilizar add-one en lugar de n-gramas clásicos.
-  * Entrenar sobre nuestro corpus y guardar los modelos resultantes para varios valores de n (1, 2, 3 y 4). 
  
 Interfaz de la clase ''AddOneNGram'' (en ''ngram.py''): Interfaz de la clase ''AddOneNGram'' (en ''ngram.py''):
Línea 170: Línea 169:
         """         """
 </code> </code>
 +
 +Tests:
 +
 +  $ nosetests languagemodeling/tests/test_addone_ngram.py 
 +
 +Documentación:
 +  * [[http://nbviewer.jupyter.org/url/cs.famaf.unc.edu.ar/~francolq/Modelado%20de%20Lenguaje%20Parte%202.ipynb#Suavizado-"add-one"|Jupyter notebook: Suavizado "add-one" (ejemplo visto en clase)]]
 +
 +
 +===== Ejercicio 5: Evaluación de Modelos de Lenguaje =====
 +
 +  * Separar el corpus en entrenamiento y test (90% y 10% resp.).
 +  * Usar el script ''train.py'' para entrenar el modelo "add one" y guardar las instancias resultantes para varios valores de n (1, 2, 3 y 4).
 +  * Usar el script ''eval.py'' para calcular la perplejidad de los modelos entrenados en el ejercicio anterior. Reportar los resultados en el README.
  
 Nueva interfaz de ''train.py'': Nueva interfaz de ''train.py'':
Línea 190: Línea 203:
 </code> </code>
  
-Tests: 
- 
-  $ nosetests languagemodeling/tests/test_addone_ngram.py  
- 
- 
-===== Ejercicio 5: Evaluación de Modelos de Lenguaje ===== 
- 
-  * Separar el corpus en entrenamiento y test (90% y 10% resp.). 
-  * Usar el script ''eval.py'' para calcular la perplejidad de los modelos entrenados en el ejercicio anterior. Reportar los resultados en el README. 
  
 Interfaz de ''eval.py'': Interfaz de ''eval.py'':
Línea 220: Línea 224:
   * Implementar el suavizado por interpolación en ''ngram.py'' en una clase ''InterpolatedNGram''.   * Implementar el suavizado por interpolación en ''ngram.py'' en una clase ''InterpolatedNGram''.
   * Calcular lambdas en términos de un único parámetro gamma (ver documentación abajo).   * Calcular lambdas en términos de un único parámetro gamma (ver documentación abajo).
-  * Usar add-one para el nivel más bajo (unigramas).+  * **Usar add-one para el nivel más bajo (unigramas).**
   * Usar datos held-out (un 10% de train) y barrido para elegir valor para gamma.   * Usar datos held-out (un 10% de train) y barrido para elegir valor para gamma.
   * Agregar al script de entrenamiento (''train.py'') una opción de línea de comandos que permita utilizar este modelo.   * Agregar al script de entrenamiento (''train.py'') una opción de línea de comandos que permita utilizar este modelo.
Línea 252: Línea 256:
   * [[http://www.cs.columbia.edu/~mcollins/lm-spring2013.pdf|Language Modeling   * [[http://www.cs.columbia.edu/~mcollins/lm-spring2013.pdf|Language Modeling
 (Course notes for NLP by Michael Collins, Columbia University)]] (Course notes for NLP by Michael Collins, Columbia University)]]
 +    * **Especialmente** [[https://cs.famaf.unc.edu.ar/~francolq/Ejercicio%204.png|esta parte]] (última parte  de la sección 1.4.1).
   * [[https://cs.famaf.unc.edu.ar/~francolq/lm-notas.pdf|Modelado de Lenguaje: Notas Complementarias]]   * [[https://cs.famaf.unc.edu.ar/~francolq/lm-notas.pdf|Modelado de Lenguaje: Notas Complementarias]]
   * [[https://www.youtube.com/watch?v=-aMYz1tMfPg&list=PL6397E4B26D00A269&index=17|4 - 6 - Interpolation - Stanford NLP - Professor Dan Jurafsky & Chris Manning]]   * [[https://www.youtube.com/watch?v=-aMYz1tMfPg&list=PL6397E4B26D00A269&index=17|4 - 6 - Interpolation - Stanford NLP - Professor Dan Jurafsky & Chris Manning]]
 +  * [[http://nbviewer.jupyter.org/url/cs.famaf.unc.edu.ar/~francolq/Modelado%20de%20Lenguaje%20Parte%202.ipynb#Suavizado-por-Interpolación|Jupyter notebook: Suavizado por Interpolación (ejemplo visto en clase)]]
 +  * Mails:
 +    * [[https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/pln-famaf-2015/bgGUVGg4lv8/ltiMoEpzCAAJ|Consulta sobre interpolaciòn]]
 +    * [[https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/pln-famaf-2017/S3rTQAbf6oU/RbjH0IdYBwAJ|Preguntas sobre InterpolatedNGram]]
 +    * [[https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/pln-famaf-2017/N_QwDjmQT-I/1pkx5VSeCQAJ|Barrido para elegir valor para Gamma]]
  
  
materias/pln/uba2018/practico1.1518116465.txt.gz · Última modificación: 2018/08/10 03:03 (editor externo)