Tabla de Contenidos

Práctico 4: Propuestas de Temas

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:

  1. Identificar las NEs en el texto origen: Para identificar NEs se puede usar NLTK o crear su

propio reconocedor de NE.

  1. Marcarlas como “no traducibles”, dejando esa tarea para los post-editores.
  2. 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:

Documentación:

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:

Documentación:

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:

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:

13. Métodos Espectrales

Propuesto por: Franco

Estudiar la referencia principal y hacer un resumen.

Referencia principal:

14. Clustering para POS Tagging No Supervisado

Propuesto por: Franco

Programar un tagger que agrupe en clusters las palabras que ocurren en un corpus de acuerdo a su similaridad y a la similaridad de los contextos en los que aparecen. Para ello, definir un conjunto de features representativos y un pipeline de scikit-learn que use un algoritmo de clustering. Realizar experimentos con el corpus Ancora, probando varios de los algoritmos de clustering provistos por scikit-learn.

Referencia principal:

15. Extracción de Información para Orientación Partidaria

Propuesto por: Ezequiel Medina

En este proyecto se propone hacer un programa que extraiga los datos de las actas de votaciones de la cámara de diputados de la nación. Con el objetivo de conocer la orientación de cada diputado y también la de cada partido político con respecto a cada proyecto de ley votado.

Con esta información, y con unas preguntas acerca de las leyes votadas, se busca poder calcular un porcentaje de compatibilidad del usuario con cada diputado y cada partido político, y de esta manera orientarlo ideológicamente.

Las preguntas y los resultados se presentarían en una página web.

Referencia principal:

Recursos:

Documentación adicional:

16. Relevamiento de Literatura sobre Modelado de Lenguaje

Propuesto por: Giovanni Rescia

Estudio y resumen del reporte técnico e implementación de algoritmos de smoothing para el modelado de lenguaje.

Se hará un estudio y resumen del reporte técnico “An Empirical Study of Smoothing Techniques for Language Modeling” que trata sobre el modelado de lenguaje de n-gramas y hace una descripción, implementación y análisis de resultados de varias técnicas de smoothing. También se relacionarán algunas técnicas de smoothing mencionadas en el reporte con lo realizado en el práctico 1. Por último, se implementará el algoritmo de Kneser-Ney y se comparará su performance con las otras técnicas de smoothing ya implementadas.

Referencia principal:

17. Modelo Probabilístico de Lenguaje basado en Redes Neuronales

Propuesto por: Ale Naser Pastoriza

El objetivo de un modelo estadístico de lenguaje es determinar la probabilidad conjunta de una secuencia de palabras. Esto es intrínsecamente difícil por la dimensionalidad que presenta el problema. En este trabajo se ataca el problema de la dimensionalidad aprendiendo una representación distribuída de palabras que permite que una sentencia de entrenamiento informe al modelo sobre un número exponencial de sentencias semánticamente vecinas. El modelo aprende simultáneamente (1) un modelo distribuído para cada palabra junto con (2) la función de probabilidad para secuencias de palabras, expresadas en términos de esas representaciones. Los experimentos demostrarán como, utilizando una red neuronal (perceptrón multicapa) para la función de probabilidad (recuérdese que es un aproximador universal de funciones continuas), se mejora significativamente aquellos valores de perplejidad alcanzados por los modelos de n-gramas.

Referencia Principal:

18. Agrupamiento de Noticias de Distintas Fuentes

Propuesto por: Mallku Soldevila

Se propone desarrollar una herramienta que organice las noticias provenientes de múltiples fuentes, de acuerdo al tema principal de las mismas. Es decir que la herramienta va a agrupar las noticias en categorías que son a priori desconocidas. La tarea puede ser tratada como un caso de “clustering” sobre representaciones vectoriales de los documentos que contienen las noticias, tal como se propone en la referencia principal.

Referencia principal:

Recursos:

Documentación:

19. Bonus Track: Visualización de Algoritmos de Parsing

Propuesto por: Franco

Implementar en Walnut, la plataforma de visualización de algoritmos de nuestros amigos Machinalis, las animaciones de alguno de los métodos de parsing que vimos en la materia: