Demuestra tus habilidades en IA

Participa en el Hackathon 2020








¿Eres el mejor Data Scientist
en NLP?


Demuestra tus habilidades como Data Scientist en el reto de Procesamiento del Lenguaje Natural


En este reto no se pide una simple clasificación, sino la generación del nombre de un producto en base a la descripción del mismo.

Además: ninguno de los nombres del train set aparece en el test set, de manera que no es un problema de clasificación, sino que se pide generar el nombre del producto.

Solo una cosa más: Este es el primer hackathon que lanzamos desde Spain AI, por lo que es seguro que hay puntos mejorables, aclaraciones y hasta posiblemente algún ajuste que tengamos que hacer durante la competición, por lo que os pedimos que seáis comprensivos ya que intentamos hacerlo lo mejor posible, aunque queremos avisaros de antemano por si tuviésemos que hacer alguno de estos ajustes durante el reto.

¿Quieres saber más?
Sigue leyendo.
Descárgate los datos
Apúntate al reto

Preguntas Frecuentes


¿Es el típico problema con 80% train 20% test?
No. Además verás que no es una clasificación, sino que tienes que generar los nombres de los productos en base a la descripción. No realizar una clasificación en base a los nombres provistos en el train set.

Cuéntame algo más
Tendrás un dataset de train con dos columnas: los nombres de productos, en la columna "name", y las descripciones asociadas a esos nombres, en la columna "description".

El dataset de test tiene una sola columna, con la descripción de un conjunto de productos, para los que antes no habrás visto el nombre (no están en el train set), y tendrás que generar un nombre asociado a la descripción.

Además: ninguno de los nombres del train set, aparece en el train set, de manera que no es un problema de clasificación, sino que se pide generar el nombre.

Como sabemos que es un reto complicado, puedes enviar diferentes nombres candidatos para cada una de las descripciones asociadas. Eso sí, el fichero que envíes debe respetar el mismo orden de las descripciones del test set provisto, ya que el programa de validación va a mirar si alguno de los nombres candidatos que envíes para la primera descripción corresponde con el nombre real para ese primer producto, mirará si el segundo nombre corresponde con la segunda descripción y así sucesivamente para todas las líneas del fichero que nos envíes.

¿Quiere esto decir que las clases del test set son nuevas?
Sí. Las clases del test set no están incluidas en el train set, por lo que si solo aplicas clasificación tendrás un score de 0.

Parece complicado ¿Algún consejo?
Como sabemos que es un reto complejo, podéis enviar hasta 10 nombres candidatos por cada una de las descripciones. Además, no se van a tener en cuenta mayúsculas ni minúsculas al comprobar los candidatos que envíes. Eso sí, buscamos el match perfecto en el string.

¿Entonces puedo enviar los nombres que quiera?
Puedes enviar todos lo que quieras, pero solo se van a tener en cuenta los 10 primeros que envíes por cada descripción. También ten en cuenta que vamos a usar una métrica que puntúa más alto los primeros candidatos de cada línea que envíes en tu fichero, por lo que si tu sistema tiene más seguridad en un nombre para una descripción en concreta, debería ir antes que otro nombre que solo quieras "probar".
Ten también en cuenta que hay un límite máximo de 5 envíos por día, y que durante la duración del reto (~3 meses) se permite un máximo acumulado de 100 envíos (estos 100 envíos se calcularán sumando todos los envíos de todos los días).

¿Cómo es el formato de los datos que tengo que enviar?
Puedes encontrarlo en el ZIP de los datos. Mira el fichero llamado "submission.csv.zip". El programa de evaluación espera recibir un fichero ZIP con el nombre que quieras, pero al descomprimirlo debe haber un fichero llamado "submission.csv", donde la primera fila tendrá el string "name", y después, línea a línea, deberás proveer los nombres candidatos en formato CSV (separados por comas).

¿Qué métrica se va a usar?
La métrica que vamos a usar es DCG (Discounted Cummulative Gain).

Podéis leer más sobre esta métrica en este enlace https://towardsdatascience.com/evaluate-your-recommendation-engine-using-ndcg-759a851452d1.

Para cada línea del fichero que nos envíes, vamos a ver en qué posición está el match exacto entre los candidatos que envíes (en este caso la relevancia será de 1 si hay "match exacto" y 0 si no hay match), y en función de la posición, tendrás una puntuación.

Sumamos todas estas puntuaciones, y calculamos el porcentaje de aciertos obtenidos, donde un score perfecto tendría un resultado del 100% de acierto.

El score perfecto se obtendría si el fichero contiene para cada línea de descripción el resultado exacto para cada una de estas descripciones en la primera posición de esa línea (el primer "name" candidato coincide al 100% con el "name" esperado).

Aclaración: para considerar un resultado como correcto, no buscamos match parcial, sino que todo el string (que puede incluir espacios, guiones, y paréntesis) es correcto.

Aclaración 2: cuando decimos "Matching 100% correcto" queremos decir que si el test set tiene el string long t-shirt y una persona manda t-shirt,t-shirt long, long tshirt se considera que no ha acertado. En la primera posición no ha incluido todas las palabras (no es correcto). En el 2º candidato las palabras son correctas, pero el orden no lo era, por lo que no es match exacto. Igualmente, tampoco se considera como acierto el 3º candidato, ya que no se respeta el guión ("-") en "long t-shirt".

Aclaración 3: Las predicciones se van a validar en el mismo orden del fichero de descripciones, por lo que el "name" asociado a la descripción que aparece en la primera línea del fichero que se envíe, debe corresponder con la primera línea del fichero train_descriptions.csv que proporcionamos, la predicción de la segunda línea de vuestro envío, corresponderá con la segunda línea del fichero de descripciones, etc.

Aclaración 4: En los envíos, la plataforma espera un fichero .zip cuyo contenido sera un fichero llamado "submission.csv". De no ser así, la plataforma no podrá evaluar el envío.

Aclaración 5: El guión se respeta y si la palabra candidata no tiene guión, pero la palabra del test set sí, se considera como que no es exact match. Es decir, si en el texto se espera "t-shirt" o "v-neck" y en el envío solo aparece tshirt o vneck (sin guión), no se considera acierto)


¿Hay algo más que no haya quedado bien explicado?
Si hay cualquier punto que creas que es confuso, puedes escribirnos a info@spain-ai.com


¿Cuales son las bases del hackathon?
Los términos y condiciones generales para participar en el hackathon son muy similares a los de otras plataformas, si quieres leerlas, puedes hacerlo en esta página.
Si no quieres leer todo el documento de términos y condiciones, lo más importante es que no hagas trampas, y que tengas en cuenta que a los ganadores con opción a premio puede que se les solicite el código para validar la solución, aunque este punto dependerá de la empresa que haya compartido el dataset del reto, como condición para reconocerle formalmente ganador.

Nuestros Organizadores y Comité Asesor


Organizadores


Comité Asesor


Patrocinadores


¡Mantente informado!








¡Escríbenos!