Herramientas de usuario

Herramientas del sitio


materias:pln:2019: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:2019:practico3 [2019/05/02 18:07] francolqmaterias:pln:2019:practico3 [2019/06/13 21:21] (actual) francolq
Línea 7: Línea 7:
  
   * Repositorio: https://github.com/PLN-FaMAF/PLN-2019.   * Repositorio: https://github.com/PLN-FaMAF/PLN-2019.
-  * Fecha de entrega: 23/5 a las 23:59.+  * Fecha de entrega: <del>23/5</del> 6/6 a las 23:59.
  
  
Línea 271: Línea 271:
  
   * [[http://www.cs.columbia.edu/~mcollins/hmms-spring2013.pdf]]   * [[http://www.cs.columbia.edu/~mcollins/hmms-spring2013.pdf]]
 +  * Mail 2017: [[https://groups.google.com/forum/#!topic/pln-famaf-2017/N5TPKgZY1Lg|Como seria AddOne para MLHMM? 
 +]]
  
 ===== Ejercicio 6: Clasificador "three words" ===== ===== Ejercicio 6: Clasificador "three words" =====
  
-**TBA**+  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. 
 +  Definir el vectorizador con los siguientes features: 
 +    la palabra actual en minúsculas. 
 +    si la palabra actual empieza en mayúsculas. 
 +    * si la palabra actual está en mayúsculas. 
 +    * si la palabra actual es un número. 
 +    * mismos features para la palabra anterior y para la siguiente. 
 +  * Probar los siguientes clasificadores: 
 +    * ''sklearn.linear_model.LogisticRegression'' 
 +    * ''sklearn.naive_bayes.MultinomialNB'' 
 +    * ''sklearn.svm.LinearSVC'' 
 +  * Reportar los resultados en el README. Reportar también tiempo de evaluación.
  
-===== Ejercicio 7: Clasificador con Embeddings =====+/* 
 +  * Usar el siguiente //pipeline// de scikit-learn: 
 +    * Vectorizador ''DictVectorizer''
 +    * Clasificador de máxima entropía (''sklearn.linear_model.LogisticRegression''). 
 +*/
  
-**TBA**+Interfaz de ''ClassifierTagger'' en ''classifier.py'': 
 + 
 +<code python> 
 +class ClassifierTagger: 
 +    """Simple and fast classifier based tagger. 
 +    """ 
 + 
 +    def __init__(self, tagged_sents, clf='lr'): 
 +        """ 
 +        clf -- classifying model, one of 'svm', 'lr' (default: 'lr'). 
 +        """ 
 + 
 +    def fit(self, tagged_sents): 
 +        """ 
 +        Train. 
 +        tagged_sents -- list of sentences, each one being a list of pairs. 
 +        """ 
 + 
 +    def tag_sents(self, sents): 
 +        """Tag sentences. 
 +        sent -- the sentences. 
 +        """ 
 + 
 +    def tag(self, sent): 
 +        """Tag a sentence. 
 +        sent -- the sentence. 
 +        """ 
 + 
 +    def unknown(self, w): 
 +        """Check if a word is unknown for the model. 
 +        w -- the word. 
 +        """ 
 +</code> 
 + 
 +Tests: 
 + 
 +  $ nosetests tagging/tests/test_classifier.py  
 + 
 + 
 + 
 +===== Ejercicio 7: Clasificador con Word Embeddings fastText ===== 
 + 
 +  Agregar word embeddings fastText a los features clasificador del ejercicio anterior. 
 +    Usar el vectorizador provisto en ''fasttext.py''
 +  Usar los modelos pre-entrenados para el idioma castellano ofrecidos por fastText. 
 +  Entrenar, evaluar y reportar resultados y tiempos en el README. 
 + 
 +Documentación: 
 + 
 +  * [[https://fasttext.cc/|fastText]] 
 +    * [[https://github.com/facebookresearch/fastText/tree/master/python#building-fasttext-for-python|Instalación]] 
 +    * [[https://fasttext.cc/docs/en/crawl-vectors.html|Modelos pre-entrenados]]
  
 ===== Ejercicio 8: Análisis de Error y Nuevos Features  ===== ===== Ejercicio 8: Análisis de Error y Nuevos Features  =====
Línea 300: Línea 367:
   * https://pytorch.org/tutorials/beginner/nlp/sequence_models_tutorial.html#example-an-lstm-for-part-of-speech-tagging   * https://pytorch.org/tutorials/beginner/nlp/sequence_models_tutorial.html#example-an-lstm-for-part-of-speech-tagging
  
 +https://nlpforhackers.io/lstm-pos-tagger-keras/
 +
 +  * Probe LSTM cells: recuerda consistencia de comillas?|
 */ */
  
materias/pln/2019/practico3.1556820420.txt.gz · Última modificación: 2019/05/02 18:07 por francolq