Herramientas de usuario

Herramientas del sitio


materias:pln:2019:practico2

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:practico2 [2019/04/11 21:28] – [Ejercicio 7 (punto bonus): Lexicón de Sentimientos (y Emojis)] francolqmaterias:pln:2019:practico2 [2019/04/29 21:36] (actual) francolq
Línea 6: Línea 6:
  
   * Repositorio: https://github.com/PLN-FaMAF/PLN-2019.   * Repositorio: https://github.com/PLN-FaMAF/PLN-2019.
-  * Fecha de entrega: 25/04 a las 23:59.+  * Fecha de entrega: <del>25/04</del> 2/5 a las 23:59.
  
  
Línea 51: Línea 51:
     * [[http://www.sepln.org/workshops/tass/2018/task-1|TASS 2018 Task 1]]     * [[http://www.sepln.org/workshops/tass/2018/task-1|TASS 2018 Task 1]]
       * [[http://www.sepln.org/workshops/tass/2018/task-1/private/evaluation/evaluate.php|Resultados]]       * [[http://www.sepln.org/workshops/tass/2018/task-1/private/evaluation/evaluate.php|Resultados]]
 +      * [[http://ceur-ws.org/Vol-2172/|Proceedings]]
 +      * [[http://ceur-ws.org/Vol-2172/p0_overview_tass2018.pdf|Overview]]
 +      * [[http://ceur-ws.org/Vol-2172/p2_elirf_tass2018.pdf|ELiRF-UPV (1st place)]]
 +      * [[http://ceur-ws.org/Vol-2172/p5_retuyt_tass2018.pdf|RETUYT (2nd place)]]
 +      * [[http://ceur-ws.org/Vol-2172/p1_atalaya_tass2018.pdf|Atalaya (3rd place)]]
     * [[https://competitions.codalab.org/competitions/21957|TASS 2019]]     * [[https://competitions.codalab.org/competitions/21957|TASS 2019]]
   * [[https://cs.famaf.unc.edu.ar/~francolq/criterios_polaridad.pdf|Etiquetado de polaridad]]   * [[https://cs.famaf.unc.edu.ar/~francolq/criterios_polaridad.pdf|Etiquetado de polaridad]]
Línea 90: Línea 95:
 ==== Lematización o Stemming ==== ==== Lematización o Stemming ====
  
-Modificar el tokenizador del ''CountVectorizer'' para que además haga stemming o lematización de las palabras. Una posibilidad es usar el Snowball stemmer que viene con NLTK.+Modificar el tokenizador del ''CountVectorizer'' para que además haga stemming o lematización de las palabras.
  
 +Recursos:
   * http://scikit-learn.org/stable/modules/feature_extraction.html#customizing-the-vectorizer-classes   * http://scikit-learn.org/stable/modules/feature_extraction.html#customizing-the-vectorizer-classes
-  * http://www.nltk.org/api/nltk.stem.html#module-nltk.stem.snowball+  * Stemmers: 
 +    * [[http://www.nltk.org/api/nltk.stem.html#module-nltk.stem.snowball|Snowball (NLTK)]] 
 +  * Lematizadores: 
 +    * [[https://spacy.io/|Spacy]] 
 +    * [[http://www.cis.uni-muenchen.de/~schmid/tools/TreeTagger/|Treetagger]] (con [[https://treetaggerwrapper.readthedocs.io/en/latest/|treetaggerwrapper]])
  
  
Línea 114: Línea 124:
 Para los tres tipos de clasificadores, pruebe diferentes combinaciones de parámetros y evalúe sobre el corpus de development. Reporte mejor resultado y configuración para cada clasificador. Para los tres tipos de clasificadores, pruebe diferentes combinaciones de parámetros y evalúe sobre el corpus de development. Reporte mejor resultado y configuración para cada clasificador.
  
-  * [[http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html|maxent:]] Probar distintos valores para ''penalty'' y ''C''+  * [[http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html|Regresión Logística]] (maxent): Probar distintos valores para ''penalty'' y ''C''
-  * [[http://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html|svm:]]  Probar distintos valores para ''penalty'' y ''C''.+  * [[http://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html|SVM]] Probar distintos valores para ''penalty'' y ''C''.
  
 Documentación: Documentación:
Línea 158: Línea 168:
  
   * **[[https://github.com/PLN-FaMAF/PLN-2019/blob/master/notebooks/sentiment/07%20Analisis%20de%20Error.ipynb|Caso de estudio: 07 Analisis de Error]]**   * **[[https://github.com/PLN-FaMAF/PLN-2019/blob/master/notebooks/sentiment/07%20Analisis%20de%20Error.ipynb|Caso de estudio: 07 Analisis de Error]]**
 +
 +
 ===== Ejercicio 6: Evaluación Final ===== ===== Ejercicio 6: Evaluación Final =====
  
Línea 164: Línea 176:
  
  
-/* 
 ===== Ejercicio 7 (punto bonus): Word Embeddings ===== ===== Ejercicio 7 (punto bonus): Word Embeddings =====
-*/ 
  
 +  * Obtener word embeddings pre-entrenados para el idioma castellano.
 +  * Programar un transformador de scikit-learn que, dado un tokenizador, calcule embeddings de tweets como el promedio de los embeddings de las palabras que lo componen.
 +  * Incorporar estos features al pipeline de clasificación de polaridad.
 +  * Entrenar, evaluar y analizar los resultados.
 +
 +Recursos:
 +  * [[https://github.com/scikit-learn/scikit-learn/issues/8978|sklearn issue #8978: Vectorize text based on word embeddings]]
 +  * Embeddings:
 +    * [[https://fasttext.cc/|fastText]]
 +    * [[https://nlp.stanford.edu/projects/glove/|GloVe]]
 +
 +
 +/*
 +===== Ejercicio 8 (punto bonus): Bolsa de Caracteres =====
 +*/
  
  
-===== Ejercicio (punto bonus): Lexicón de Sentimientos (y Emojis) =====+===== Ejercicio (punto bonus): Lexicón de Sentimientos (y Emojis) =====
  
   * Obtener o elaborar un lexicón de palabras con polaridad positiva y negativa del castellano.   * Obtener o elaborar un lexicón de palabras con polaridad positiva y negativa del castellano.
   * Programar features que incorporen el uso de estas palabras en los tweets. Algunas opciones:   * Programar features que incorporen el uso de estas palabras en los tweets. Algunas opciones:
     * Dos features, con conteos de cantidad de palabras positivas y negativas utilizadas.     * Dos features, con conteos de cantidad de palabras positivas y negativas utilizadas.
-    * Escalar los valores en el rango (0, 1).+    * Escalar los valores (usar StandardScaler).
     * Si el lexicón tiene valores de intensidad, usarlos de alguna manera.     * Si el lexicón tiene valores de intensidad, usarlos de alguna manera.
   * Agregar estos nuevos features al pipeline (se puede usar FeatureUnion).   * Agregar estos nuevos features al pipeline (se puede usar FeatureUnion).
materias/pln/2019/practico2.1555018119.txt.gz · Última modificación: 2019/04/11 21:28 por francolq