proyecto chico



descripción: adquisición de preferencias léxicas sobre preposiciones, para resolver ambigüedades de adjunción de preposiciones en un árbol usando información asociada a las palabras involucradas en la estructura ambigua.

cómo saber más: recopilación de trabajos sobre el problema (mi preferido es el de Rathnaparkhi, este es el que espero que reproduzcan, con precisiones que les voy a ir dando en las clases del 21 y 26 de agosto)

pasos a seguir:
  1. conseguir un corpus
  2. analizarlo con algún analizador: freeling, nltk, svmtool o el de stanford
  3. extraer los patrones relevantes, donde se ofrezca información inambigua sobre las relaciones de coocurrencia entre palabras
  4. obtener un modelo estadístico de las relaciones entre las palabras, posiblemente usando información mútua
  5. preparar el modelo para su integración en un analizador práctico, como una lista de patrones donde cada uno está asociado a su interpretación preferida en el modelo, usando algún umbral de corte

práctico de clustering



descripción: obtener soluciones de clustering de palabras, donde las palabras hayan sido caracterizadas con diferentes conjuntos de características de su contexto. Características sugeridas:

- lema de las palabras en una ventana de cinco palabras alrededor de la palabra objetivo, es decir: lema de la palabra que ocurre a su izquierda, de la palabra que ocurre a su derecha, de la palabra que ocurre dos posiciones a su izquierda, de la palabra que ocurre dos posiciones a su derecha (pueden distinguir los lemas con su posición por ejemplo así: "gato-2 gato-1 gato+1 gato+2) 
- categoría morfosintáctica de las palabras en una ventana de cinco palabras alrededor de la palabra objetivo

De estas características sugiero quedarse solamente con las que ocurren más de 10 veces, incluso, para las pruebas iniciales, solamente con las que ocurren más de 100. También sugiero caracterizar solamente palabras que ocurren más de 10 veces. Por curiosidad, pueden tratar de ver la diferencia entre clusterizar una muestra sólo con palabras frecuentes y una muestra que incluye palabras no frecuentes. 

Pueden probar a hacer muchos clusters o pocos clusters, y ver qué pasa.

Pueden asignar a cada palabra su categoría morfosintáctica como clase, así pueden hacer "classes to clusters evaluation". Pero fíjense que no se use esa categoría para hacer clustering!

Para inspeccionar los resultados de su clustering, pueden ver los valores 

Para ver qué elementos hay dentro de cada cluster, pueden hacerlo por consola o por la interfaz gráfica. Por consola, se puede agregar el cluster como atributo con el filtro AddCluster en la pestaña de preprocesamiento. O por consola:
    weka.filters.unsupervised.attribute.AddCluster -W "weka.clusterers.SimpleKMeans -N 3"

Si es sobre un algoritmo que acabamos de correr, se puede hacer click derecho en la "Result List" > Visualize cluster assignments > Save 

En el informe deberían reportar: qué corpus usaron, cómo lo preprocesaron, qué características extrajeron del corpus, qué algoritmos de clustering ejecutaron y con qué parámetros, qué soluciones con qué subconjuntos de características obtuvieron, y una descripción de las soluciones que les parecieron mejores y por qué les parecieron mejores (más compactas, menos clusters muy chicos o muy grandes, distribución con sentido de las categorías gramaticales, etc.).


proyecto grande



descripción: desarrollo de algunos de los módulos necesarios para un sistema de acceso a bases de conocimiento mediante preguntas en lenguaje natural, al estilo de la tarea 1 del concurso QALD.

Para empezar a entrar en calor pueden ver el proyecto quepy, que es un framework que aporta librerías para hacer justamente esto, y refo, una de las librerías que se usan en quepy para hacer expresiones regulares sobre objetos (como las palabras de los textos analizados), ambos de machinalis.

Descripción de módulos:

  • generar expresiones regulares para parsear preguntas (posiblemente a partir de un corpus de preguntas analizadas)
  • desambiguación de sentidos especializada en preguntas
  • expansión de la pregunta, asociando palabras relacionadas
  • conexión entre pregunta / query y dbpedia mediante mappings entre ontologías (ontology hopping)
  • enriquecimiento de los nodos de la dbpedia con texto
  • conexión entre pregunta / query y la dbpedia por semejanza textual
  • ranquing de posibles respuestas
  • generación de respuesta a partir de un subgrafo

Los proyectos que se van a realizar serán:

Milagro Teruel: Utilizar una técnica de Word Sense Desambiguation utilizando similitud entre vectores característicos. En lugar de usar WordNet o una ontología se va a investigar obtener los posibles sentidos de un inventario alternativo (Freebase), y posibles combinaciones con enriquecimiento de la pregunta.

Javier Redolfi: Construcción de un POS Tagger especializado en preguntas. El Tagger estará basado en un Modelo Oculto de Markov (HMM), en donde los estados ocultos que queremos inferir son los POS tags y las observaciones pueden ser una combinación de tokens, lemas y POS tags obtenidos usando otro POS tagger.

Ezequiel Torti: Se pretende implementar un algoritmo sencillo de Word Sense Discrimination (context-group discrimination) que funcione sobre una arquitectura distribuida, trabajando sobre el framework Hadoop, de tal manera que permita el análisis de grandes cantidades de datos. Además se utilizarán varios métodos para la detección de los posibles cuellos de botella que presente dicho algoritmo.

Luciano Silvi: Enriquecimiento de una pregunta con texto, es decir, a una pregunta, asociarle palabras que estén relacionadas con ella. Se analizará un Corpus de preguntas y respuestas, determinando semejanza entre preguntas utilizando técnicas como LSA y Coseno. También se aplicará una heurística para hacer "bolsas de palabras" que ocurren significativamente (haciendo test de hipótesis o frecuencias básicas).

Darío Garigliotti: Se utilizará una base de conocimiento para caracterizar entidades en un dominio de biografías de la Wikipedia y, asumiendo heurísticas simples para asociar texto (respuestas) a esas estructuras características, obtendremos preguntas que permitan, por ejemplo, enriquecer un set de preguntas predeterminadas.