¡Esta es una revisión vieja del documento!
Tabla de Contenidos
Trabajo Práctico 4 - Tema Libre
Instrucciones
- Fecha límite para la proposición de nuevos temas: 18/11 a las 23:59.
- Fecha límite para la elección de tema: 20/11 a las 23:59.
1. Desambiguación de Entidades (Entity Linking)
Propuesto por: Laura
Linkear menciones de entidades a nodos en una ontología (e.g., freebase). Como sería un PoC (prueba de concepto), usaríamos solamente un subconjunto de la ontología, para que no sea demasiado grande. Una aproximación naïve es armar una caracterización de los nodos de la ontología mediante sus vecinos, una caracterización de los candidatos a linkearse mediante las palabras de su contexto, hacer embeddings de eso y ahí buscar a qué nodo se acerca más cada mención de una entidad.
Referencia principal:
Documentación:
2. Extracción de Relaciones Mediante Bootstrapping
Propuesto por: Laura
Extracción de relaciones aplicando bootstrapping. Implementación de una versión simplificada de Fact Extraction on the Fast Lane: a partir de unos cuantos ejemplos semilla, extraer features, usarlas (posiblemente mediante un clasificador) para identificar nuevos ejemplos en corpus no anotado, incorporar los ejemplos fiables como ejemplos de entrenamiento y volver a iterar. Tiene fuerte énfasis en el trabajo sobre las features.
Referencia principal:
3. Análisis de Sentimientos como Extracción de Relaciones
Propuesto por: Laura
Aspect-based sentiment analysis como extracción de relaciones entre pedazos de texto (que vendrían a ser la primer entidad) que expresan propiedades (que vendría a ser la relación) de un objeto (que vendría a ser la segunda entidad). Aplicando bootstrapping y feature engineering.
Referencia principal:
4. Segmentación de Usuarios de Twitter
Propuesto por: Laura
Segmentación (clustering) de usuarios de twitter a partir del texto de sus tweets, y luego visualización de los contenidos de los segmentos usando metadatos demográficos (nombre, ubicación geográfica, edad, sexo) y alguna forma de wordcloud.
Referencia principal:
5. Traducción Automática Estadística
Propuesto por: Paula
Implementación de sistema de TA estadístico por frases usando los paquetes open source Moses (modelo de traducción y decoder), Giza (alineamiento de palabras), KenLM (modelo de lenguaje).
Referencia principal:
Recursos:
6. Reconocimiento de Entidades para Mejorar la Traducción Automática
Propuesto por: Paula
Una forma de mejorar la TA es reconociendo algunas de las entidades nombradas (NE) en el texto origen. Como se explica en [1] traducir en forma errónea algunas NE (por ejemplo nombres propios, de organizaciones, etc) puede producir textos incomprensibles o demandar demasiada post-edición (corrección por traductores humanos), lo cual es bastante costoso. En este proyecto se propone:
- Identificar las NEs en el texto origen: Para identificar NEs se puede usar NLTK o crear su
propio reconocedor de NE.
- Marcarlas como “no traducibles”, dejando esa tarea para los post-editores.
- Evaluar los resultados con y sin identificación de NEs.
Referencia principal:
7. Evaluación de la Traducción Automática
Propuesto por: Paula
Se propone mejorar la evaluación de la TA implementando una nueva métrica que intente captar más que el solapamiento léxico, en particular usando un parser para captar la fluidez a través de la estructura sintáctica de las TA. Hay trabajos que indican que las métricas “syntax-based” correlacionan mejor con las humanas que las “string-based” como BLEU [1]. Acá hay lugar para experimentar con distintas métricas: se pueden probar solapamientos de árboles lexicalizados/no lexicalizados, altura de los árboles, o alguna otra que surja en el proceso. Se pueden inspirar en [1].
Referencia principal:
Recursos:
Documentación:
8. POS Tagging del Español con Redes Neuronales
Propuesto por: Cristian
Se propone la creación de un PoS-tagger automático del español, mediante el uso de redes neuronales para dicha aplicación. Dicho PoS-tagger se entrenará y evaluará con los corpus: Tibidabo Treebank & IULA Spanish LSP Treebank. La idea será crear un modelo que sirva para predecir el pos tag de la palabra actual dada una ventana de palabras anteriores (y posiblemente posteriores). Opcionalmente, se pueden usar algunos word embeddings pre-entrenados para la tarea.
Referencia principal:
Recursos:
- Tibidabo Treebank & IULA Spanish Treebank
Documentación:
- Natural Language Processing (almost) from Scratch
- Theano Tutorial
- Deep Learning Tutorials
- Keras: Theano-based Deep Learning library
- Stanford's CS224d: Deep Learning for Natural Language Processing (Prestar especial atención a las Lectures Notes)
9. Evaluación de Word Embeddings para el Español
Propuesto por: Cristian
En este proyecto se proponen tareas de evaluación para un modelo de word embeddings (también conocido como vectores de palabras) para el español, entrenado con un corpus de 1.5 mil millones de palabras del español, utilizando el algoritmo Word2Vec con el modelo de Skip-grams. La tarea será una extensión de la forma de evaluación sugerida en la clase de Stanford CS224d: Deep Learning for Natural Language Processing. En este curso se propone el uso de 4-uplas de palabras con alguna relación semántica bien definida, por ejemplo “capital de país” (e.g. Berlin Germany Bangkok Thailand). De cada una de estas 4-uplas, se realizan operaciones de suma y resta sobre 3 de ellas y se espera que el resultado sea un vector lo más cercano posible al vector de la cuarta palabra. El objetivo de este proyecto es encontrar una ontología (como por ejemplo freebase) en la que se encuentren las palabras del recurso de 4-uplas original del curso, identificar qué grafo relaciona a estas palabras en la ontología y extraer todas las 4-uplas que están identificadas con ese mismo grafo de la ontología, para generar una mayor cantidad de 4-uplas equivalentes y en diferentes idiomas. También se explorará cómo se pueden generalizar los grafos identificados para encontrar relaciones comparables y distintas a las del recurso.
Referencia principal:
- Stanford's CS224d: Deep Learning for Natural Language Processing (especial atención en las primeras 3 clases y las lecture notes 1 y 2)
Documentación:
- Distributed Representations of Words and Phrases and their Compositionality
- Efficient Estimation of Word Representations in Vector Space
- From Frequency to Meaning: Vector Space Models of Semantics
Recursos:
10. Análisis Sintáctico Lexicalizado
Propuesto por: Franco
Programar un head-finder basado en reglas para lexicalización de árboles sintácticos. Definir un conjunto de reglas de head-finding para el idioma castellano. Programar un parser lexicalizado con suavizado de las probabilidades de las producciones.
Referencia principal:
- Charniak (1997)
Documentación:
11. Análisis Sintáctico de Dependencias Basado en Transiciones
Propuesto por: Franco
Programar un analizador de dependencias basado en transiciones. Usar un pipeline de scikit-learn para decidir cada acción. Para entrenar, convertir árboles de dependencias en secuencias de acciones. Para parsear, hacer el proceso inverso. Entrenar y evaluar con el corpus Ancora en su versión de dependencias.
Referencia principal:
12. Extracción de Información en Resoluciones Universitarias
Propuesto por: Franco
La UNC ofrece acceso público a todas las resoluciones y ordenanzas que emiten los diferentes órganos de gobierno que la componen. En estos documentos se encuentran todas las decisiones que se toman, y en particular se pueden encontrar todos los cambios que ocurren en la planta docente, como designaciones, licencias y renuncias de profesores.
En este proyecto se propone detectar y procesar aquellas resoluciones de la UNC que se refieren a cambios en la planta docente, encontrando y etiquetando las entidades como nombres de personas, números de legajo, cargos, dedicaciones, fechas, etc. La información obtenida podrá ser consultada a través de una interfaz web.
Referencia principal: