cambiar a curso:   2016-17   2018-19


Grado en Ingeniería Informática


TRABAJOS FIN DE GRADO
curso: 2017-18

Detección de preguntas similares en Quora mediante ciencia de datos.


Tecnologías Específicas

Computación
 


Descripcion y Objetivos

Quora es un sitio web para ganar y compartir conocimiento sobre cualquier tema. En la plataforma los usuarios ponen preguntas y otros usuarios las responden. Puesto que unos 100 millones de personas entran a Quora cada mes, es lógico que muchas de ellas pregunten por lo mismo, aunque la pregunta tenga distinta redacción. Por motivos de eficiencia, tanto para el sistema como para los usuarios, Quora prefiere tener preguntas canónicas y, de ahí, que de forma automática intenta detectar si dos preguntas distintas tienen en realidad el mismo significado.

Recientemente Quora ha puesto una base de datos en la página web de data science Kaggle, proporcionando todos los elementos necesarios para plantear un problema de ciencia de datos: conjunto de entrenamiento etiquetado, conjuntos de test, métricas de evaluación, etc. Nuestro objetivo obviamente no es ser competitivos con los ganadores de dicha competición, pero si completar un proceso de minería de datos en el cuál se evalúen distintas alternativas, para detectar las más eficaces.

Para ello describimos los siguientes objetivos:

  1. Estudiar, aplicar y validar técnicas de procesamiento del lenguaje natural que nos permitan transformar las consultas realizadas en lenguaje natural a vectores de términos, es decir, representaciones vectoriales.
  2. A partir de las representaciones estructuradas, completar un ciclo de descubrimiento de conocimiento a partir de bases de datos, con especial enfásis en las etapas de preprocesamiento y minería de datos.
  3. Evaluar los distintos "flujos" de proceso aplicados y realizar comparativa que nos permita seleccionar los modelos más eficientes.

 

 


Metodología y Competencias

Metodología:

  1. Revisar el contexto del problema y la literatura disponible.
  2. Aplicar técnicas de PLN para transformar la información no estructurada (texto) en información estructurada (tabular) que será la entrada de nuestro proceso de minería de datos.
  3. Sobre la partición de datos de entrenamiento diseñar procesos de minería de datos centrados en:
    1. Preprocesamiento de datos (selección de variables, construcción de variables, discretización, etc.)
    2. Identificación de los algoritmos de minería de datos que mejor encajen en el problema objetivo. Aplicar realizando selección de modelos en función de los parámetros.
    3. Validación de los modelos obtenidos.
    4. Iterar refinando los pasos anteriores hasta determinar uno o varios modelos exitosos.
  4. Documentar todo el proceso anterior para que sea repetible.
  5. Estimar la bondad de los modelos finales (seleccionados) sobre el conjunto de datos de test reservado a tal efecto.
  6. Redactar la memoria.

Competencias:

Se trabajarán principalmente (en distinto grado) las siguientes competencias específicas de la tecnología de computación:

  • Capacidad para conocer los fundamentos teóricos de los lenguajes de programación y las
    técnicas de procesamiento léxico, sintáctico y semántico asociadas, y saber aplicarlas para la
    creación, diseño y procesamiento de lenguajes.

  • Capacidad para evaluar la complejidad computacional de un problema, conocer estrategias
    algorítmicas que puedan conducir a su resolución y recomendar, desarrollar e implementar
    aquella que garantice el mejor rendimiento de acuerdo con los requisitos establecidos.

  • Capacidad para conocer los fundamentos, paradigmas y técnicas propias de los sistemas
    inteligentes y analizar, diseñar y construir sistemas, servicios y aplicaciones informáticas
    que utilicen dichas técnicas en cualquier ámbito de aplicación.

  • Capacidad para adquirir, obtener, formalizar y representar el conocimiento humano en una
    forma computable para la resolución de problemas mediante un sistema informático en
    cualquier ámbito de aplicación, particularmente los relacionados con aspectos de
    computación, percepción y actuación en ambientes entornos inteligentes.

  • Capacidad para conocer y desarrollar técnicas de aprendizaje computacional y diseñar e
    implementar aplicaciones y sistemas que las utilicen, incluyendo las dedicadas a extracción
    automática de información y conocimiento a partir de grandes volúmenes de dato.

 

 


Medios a utilizar

Ordenadores personales, compiladores y entornos de programación. Todo disponible en la ESIIAB.

 


Bibliografía

Libros y manuales de aprendizaje automático, procesamiento del lenguaje natural y ciencia/minería de datos. Libros y manuales de lenguajes de programación y librerías específicas (machine learning, pln, etc.). Todo disponible en la ESIIAB y/o en internet.

 


Tutores


GAMEZ MARTIN, JOSE ANTONIO
ARIAS MARTINEZ, JACINTO
 

Alumno


BALLESTEROS ROMÁN, JOSÉ LUIS