Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/anagmrebelo/42_python_tappx_challenge
https://github.com/anagmrebelo/42_python_tappx_challenge
42 python tappx
Last synced: 22 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/anagmrebelo/42_python_tappx_challenge
- Owner: anagmrebelo
- Created: 2023-03-17T20:50:07.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-03-24T15:10:17.000Z (almost 2 years ago)
- Last Synced: 2024-11-08T08:54:44.397Z (2 months ago)
- Topics: 42, python, tappx
- Language: Python
- Homepage:
- Size: 1.36 MB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
42_Python_Tappx_Challenge
Trabajo Grupal: Christian Sitjà, Nil Biescas, Ana Rebelo
Este proyecto tiene como objetivo asignar un conjunto de vídeos a cada artículo en función de su contexto. Para esto, se utiliza un archivo json de artículos y otro archivo json de vídeos, los cuales contienen información relevante acerca de cada uno de ellos.
Para ejecutar el programa, se debe compilar el archivo tappx.py con Python 3 mediante el comando "python3 tappx.py". Una vez finalizado el proceso, se generará un archivo entrega.json con los resultados del emparejamiento.
La lógica utilizada para calcular el score se basa en la similitud vectorial del coseno ('cosine similarity') entre las keywords del artículo y las keywords del video. Para ello, se utilizan dos modelos pre-entrenados: BERT para la creación de vectores y Rake para la obtención de nuevas keywords. Además, se considera el título del artículo en la comparación.
El score tiene un rango entre 0 y 100, siendo 100 la relación más cercana entre el artículo y el video.
El código se encuentra organizado en una clase File, la cual recibe como parámetro el nombre del archivo json y crea un dataframe a partir de los datos. Además, se generan nuevas keywords utilizando el algoritmo Rake y se añaden al dataframe.
Para el procesamiento de los archivos json, se crean dos objetos de la clase File: 'articles' y 'videos'. Luego, se llama a la función 'best_match' del objeto 'articles' para generar el archivo entrega.json con el emparejamiento de artículos y videos.
Se registra las dependencias por pip freeze y se redirecciona el output al archivo requirements.txt para una fácil instalación de las mismas.
Es importante mencionar que debido al tiempo de ejecución del programa, se facilita el archivo entrega.json con los resultados ya obtenidos.